Это плохо для использования автозагрузки в PHP?

Спрашивают Tom относительно разбиения на страницы и очень, очень полезные аналитические функции.

Это - выборка от той страницы:

select * from (
    select /*+ first_rows(25) */
     object_id,object_name,
     row_number() over
    (order by object_id) rn
        from all_objects)
    where rn between :n and :m
        order by rn;

6
задан Andrew Barber 22 October 2012 в 20:17
поделиться

4 ответа

Плохо? Нет. __ autoload () - одно из моих любимых дополнений к PHP 5. Оно снимает ответственность (и раздражение), связанное с необходимостью вручную включать / требовать файлы классов, необходимые для вашего приложения. При этом вы как разработчик должны убедиться, что загружены только «соответствующие классы». Это легко сделать с помощью структурированной схемы именования и структуры каталогов. В Интернете есть множество примеров того, как правильно использовать __autoload (), выполнить поиск в Google, и вы найдете много информации.

9
ответ дан 8 December 2019 в 04:54
поделиться

Единственная опасность для __autoload () - это определение плохой функции автозагрузки. Как правило, все, что вы получите с точки зрения производительности, - это несколько поисков диска, поскольку PHP ищет правильные файлы, содержащие ваши классы. Положительным моментом является избавление от всех этих надоедливых вызовов include () .

Если вас беспокоит производительность на этом уровне, то вы уже должны использовать кэш опкодов, такой как APC.

3
ответ дан 8 December 2019 в 04:54
поделиться

Теперь я хочу знать, является ли плохой практикой использование только __autoload для загрузки соответствующих классов на динамический сайт?

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

Есть одна важная проблема, которую следует рассмотреть. Автозагрузка и Zend Guard плохо работают вместе, потому что Zend Guard имеет тенденцию переименовывать вещи, а это будет означать, что соглашение об именах, которое вы решили использовать, скорее всего, будет другим. Если вы будете использовать Zend Guard (или любой другой обфускатор, если на то пошло), вам, скорее всего, придется вручную включать все файлы.

Вот цитата из руководства пользователя Zend Guard:

Классы автозагрузки будут не работает, так как имя файла на диске не будет сопоставить имя скрытого класса.

4
ответ дан 8 December 2019 в 04:54
поделиться

Автозагрузка - хороший способ загрузить только те классы, которые необходимы.

В PHP 5> = 5.1 .2,

8
ответ дан 8 December 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: