как правильно использовать автолоад?

weregod

unserializer
Re: Re: Re: Re: как правильно использовать автолоад?

Автор оригинала: AmdY
двойной клик по 'что-то там', выделилось слово, теперь ctrl+o мгновенно находим нужный класс.
это у Вас о чём-то IDE-зависимом

Автор оригинала: AmdY
можно
/* @var $foo Resource_Class */
$foo = Mage::getResource('что-то там');
$foo->->метод1(..)->метод2(..)->метод3(..)->метод4(..);
я не упоминал, как можно, я упоминал о сложностях анализа кода уже существующего приложения
в частности как раз из-за пагубной привычки писать
Mage::getResource('что-то там')->метод1(..)->метод2(..)->метод3(..)->метод4(..)
вместо примера, приведённого Вами и, как следствие, ручного протыкивания множества папок в поисках классов
 

craz

Нестандартное звание
weregod
вам трудно?
чушь, ваще не используйте пхп и вам станет тогда очень легко

не видели вы сложностей...

P.s. atonator.com - плужата для amiro.cms - я знаю вы достойны уважения наверное, пишете плагины для какой то кмс я даже смотрел и кмс и плагины когда-то, но блин надо делать как проще тебе, а не как проще тем кто блин в фаре прогит.
 

weregod

unserializer
craz
если хочется обсудить меня, пиздуйте в личку или оффтопик

по автолоаду - проще всего, когда все классы/интерфейсы лежат в одной папке и имена классов совпадают с именами классов/интерфейсов
 

craz

Нестандартное звание
craz
если хочется обсудить меня, пиздуйте в личку или оффтопик
не этого ради я писал... да и написано было не в окем случае не с целью обидеть

просто есть стандарт и он вполне правомерен, а лежат в одной папке... ну сами подумайте что нибудь серьезное можно сложить в одну папку? как искать тупо один класс? той же ИДЕ?
 

weregod

unserializer
пардон, был не сдержан, пришлось в выходной день очень рано в 0 градусов выносить своё бренное тело из дома

я не противник ZF-стиля организации папок и имён файлов, но попробую описать подробно несколько подводных камней из своего опыта:

1. однажды впечатлился ZF-ом и повторил подход к организации структуры папок и именованию файлов при допиливании некоторого интернет-магазина на неизвестном мне движке.
сразу замечу - доступ к серверу был только по FTP (ни каких систем контроля версий с коммитом-деплойментом и прочего).

изначально у движка была следующая структура папок:
/admin/*.php - админка.
/inc/*.php - всякие либы, "модели"

я добавил
/inc/App/DataExchange/Driver/Import/Catalogue/XML...
/inc/мой зачаточный framework/....

далее пришлось регулярно вносить изменения в код с разных компов, поднимать проект в IDE с выкладкой на FTP не было возможности. каждый раз приходилось открывать FTP и скакать по своим же папкам, это немало напрягало

из этого был сделан вывод, что не все общепринятые стандарты годны в некоторых вполне часто встречающихся условиях


2. однажды решил посмотреть, как устроен Magento. из-за вышеописанных конструкций (getResource($переменная)->m1()->...) оффлайн анализ кода оказался очень затруднён, так как у разработчиков Magento далеко не везде было принято оставлять хотя бы док-блоки с типами объектов, опять же приходилось скакать по папкам в поисках "подходящих" классов

3. представьте, что Вы сидите терминалом на сервере и отлаживаете код в 10-ти классах, если файлы находятся в одной папке, не нужно будет скакать хотя бы по папкам, только по файлам


> ну сами подумайте что нибудь серьезное можно сложить в одну папку? как искать тупо один класс? той же ИДЕ?

можно, скажем не в одну, а в 5 папок, но не 50 или 150 ;)
в одной папке искать файл можно всегда по имени класса:

Foo_Abstract.php
PHP:
<?php

abstract class Foo_Abstract
{
...
Foo.php
PHP:
<?php

class Foo extends Foo_Abstract
{
...
> той же ИДЕ?
IDE-хой можно искать всегда, но в том же терминале её как бы нет ;)
 

korpus

злой бобёр
а чем плох способ "ПУТЬ/ЕЩЁ_ПАПКА/ЕЩЁ_ОДНА/ИМЯ_КЛАССА"?
По сравнению с таким: "ПУТЬ_ПАПКА_ПАПКА2_ПАПКА3_ИМЯКЛАССА"
 

tenshi

Новичок
не проще было бы поискать фтп клиент с поддержкой синхронизации?

слить весь код себе и проанализировать в иде - не такая уж и проблема
 

CatManZero

Новичок
Мне нравится лимбовский подход с их lmb_require, которым и пользуюсь.
А вот в php 5.3 всё намного проще. Если классы распихать по неймспейсам, а структуру директорий организовать как в Java, то вопрос именования классов и их автолоада как-то сам решается.
 
Сверху