Динамическая загрузка файлов и классовКласс Zend_Loader включает в себя методы, помогающие производить динамическую загрузку файлов. Tip
Zend_Loader vs. require_once()
Методы Zend_Loader лучше всего использовать,
когда имя файла для загрузки является переменным - например,
если оно базируется на данных, введенных пользователем,
или аргументе метода.
Если вы загружаете файл или класс, чье имя является постоянным,
то использование Zend_Loader
не дает каких-либо преимуществ по сравнению использованием обычных
функций PHP, таких, как
» Загрузка файлов
Статический метод Example #1 Пример использования метода loadFile()
Аргумент $filename задает имя файла для загрузки, он не должен содержать путь к файлу. В целях безопасности производится проверка $filename. $filename должен содержать только алфавитно-цифровые символы, тире ("-"), знак подчеркивания ("_") и точку ("."). На аргумент $dirs эти ограничения не распространяются.
Аргумент $dirs задает директории, в которых должен
производиться поиск файла. Если его значение равно
NULL, то для поиска используется только
Аргумент $once является значением булевого типа. Если
равен TRUE, то Загрузка классов
Статический метод Example #2 Пример использования метода loadClass()
Строка, задающая класс, преобразуется в относительный путь посредством замены знаков подчеркивания разделителями директорий, используемыми в вашей ОС, и добавления расширения '.php'. В примере выше на Windows будет использоваться путь 'Container\\Tree.php'.
Если $dirs является строкой или массивом, то
Если файл не найден, или класс не существует после загрузки, то
Для загрузки используется метод
Проверка на возможность чтения из файла
Статический метод Example #3 Пример использования метода isReadable()
Аргумент $filename задает имя файла для проверки. Он
может содержать путь к файлу. Этот метод является оберкой к
PHP-функции
» Использование автозагрузчика
Класс Zend_Loader содержит метод, который
можно регистрировать
через автозагрузчик PHP SPL. Example #4 Пример регистрации метода автозагрузки
После регистрации метода автозагрузки вы можете
ссылаться на классы из Zend Framework без их явной загрузки.
Метод
Если вы расширили класс Zend_Loader, то
можете передавать методу Example #5 Пример регистрации метода автозагрузки из расширенного класса
В силу особенностей семантики статических функций в PHP
вы должны реализовать код для обоих методов
Регистрацию метода автозагрузки можно отменить.
Метод
|
|