полностью устраивает, просто говорят ее скоро удалят( у ф-и есть недостатки, но не везде они проявляются. Я знаю только еще через spl_autoload_register, какие есть еще методы?
deniska_kuzmenko: я пользуюсь spl_autoload_register поскольку нужно иметь несколько загрузчиков.
проблема __autoload в том, что он может быть объявлен только один. если это не ваш случай, пользуйтесь спокойно.
PS а инфы об удалении __autoload я не встречал. не поделитесь?
spl_autoload_register() предоставляет более гибкую альтернативу для автоматической загрузки классов. По этой причине использовать __autoload() не рекомендуется, а сама функция в будущем может перестать поддерживаться или быть удалена.
deniska_kuzmenko: ну то такое. я просто хотел сказать что до момента выпила __autoload (если он вообще случится) пройдет неизвестно сколько времени, и к тому моменту код будет либо не актуален, либо неоднократно переписан.
в общем заморачиваться этим сейчас вовсе не стоит.
DevMan: есть также вариант, что софт в один прекрасный день будет запускаться на HHVM вместо PHP. Что в этом случае делать? Сильно сомневаюсь, что в HHVM заморачиваются поддержкой deprecated функций. Посему spl_autoload_register и без вариантов. Future-proof, так сказать.
Игорь Воротнёв: > есть также вариант, что софт в один прекрасный день будет запускаться на HHVM вместо PHP. Что в этом случае делать?
заменить __autoload на spl_autoload_register (или что будет актуальным на тот момент) в одном единственном месте.
есть также вариант, что софт через год вообще никому нафиг не нужен будет, и spl_autoload_register от этого не убережет. что в этом случае делать?
разумеется spl_autoload_register более функционален, я и сам им пользуюсь, но банить на этом основании __autoload пока он справляется со своими задачами я не могу.
DevMan: Так то оно так, но лично я предпочитаю через год в код не лазить без действительно весомой на то причины, поэтому, если в мануале написано "using __autoload() is discouraged" и есть альтернатива получше - я именоо ею и воспользуюсь изначально. Если бы __autoload() имел какие-то ощутимые преимущества - другой разговор, а так - код изначально должен быть future-proof.
1. Потому что он не поддерживает пространства имен (классы под namespace)
2. Потому что, нельзя зарегистрировать несколько автозагрузчиков. Только один.
SilverSlice: __autoload() использовался за долго до появления spl_autoload_register(), во времена когда еще не было namespace'ов. Где-то в начале 2013 года на оф. сайте был warning о том что __autoload() не поддерживает namespace, сейчас его убрали и поддержку вроде снова добавили, наверное для поддержки старых проектов.