2.2 Автозагрузка в Zend Framework. Цели и архитектура (Goals and Design)

Zend, “Autoloading in Zend Framework. Goals and Design”, public translation into Russian from English More about this translation.

Translate into another language.

Соглашение об именовании классов

Для понимания автозагрузки в Zend Framework, первое что вы должны понять, это зависимость между именами классов и файлами классов.

Zend Framework позаимствовал идею от » PEAR, в соответствии с чем имя класса 1:1 связано с файловой системой. Проще говоря, знак подчеркивания ("_") замещаеться разделителем каталогов чтобы разделить путь к файлу, и в конце добавляеться суффикс ".php". Например, класс "Foo_Bar_Baz" соответствует "Foo/Bar/Baz.php" в файловой системе. Предпологаеться так же, что классы могут быть обнаружены через настройку PHP include_path, которая позволяет и include() и require() находить файлы относительно пути находящегося в include_path.

Кроме того, в PEAR так же как » PHP проектах, используеться и рекомендуеться использовать префикс производителя или проекта для вашего кода. Это означает что все классы, написанные вами, будут иметь общий префикс класса; например, весь код в Zend Framework имеет префикс "Zend_". Это соглашение об именовании помогает предотвратить конфликт имен. Внутри Zend Framework, мы часто обращаемся к этому префиксу как "пространство имен"; будте внимательны и не путайте его с языковой реализацией пространств имен в PHP.

Zend Framework следует этим простым правилам, и наши стандарты кодирования поощряют вас делать подобным образом для всех библиотек кода.

Соглашения и архитектура автозагрузчика (Autoloader Conventions and Design)

Поддержка автозагрузки в Zend Framework, поддерживаеться в основном с посредством Zend_Loader_Autoloader, который имеет следующие цели и элементы архитектуры:

• Обеспечение согласования пространства имени. Если префикса пространства имени класса нет в списке зарегестрированных пространств имен, немедленно возвращается FALSE. Это дает возможность более явного согласования, а как же возврат в исходное состояние других автозагрузчиков.

• Позволяет автозагрузчику выступать в качестве альтернативного (запасного) автозагрузчика. В случае когда команда распределена, или используеться неопределенный префикс пространства имен, автозагрузчик еще может бытьсконфигурирован так что он будет пытаться согласовывать (сопоставлять) любые префиксы пространства имен. Однако, что такая практика не рекомендуется, так как может излишнюю нагрузку при поиске.

• Управление подавлением ошибок. Мы полагаем -- а так же большинство PHP сообщества -- что подавление ошибок есть плохая идея. Эта операция является дорогой, и она маскирует реальные проблемы приложения. Таким образом, по умолчанию, она должна быть выключена. Тем не менее, если разработчик настаивает что бы это было включено, мы даем возможность сделать это.

• Позволяет определить пользовательские вызовы для автозагрузчика. Некоторые разработчики не используют Zend_Loader::loadClass() для автозагрузки, но хотятиспользовать механизм Zend Framework'а. Zend_Loader_Autoloader позволяет определить альтернативные вызовы для автозагрузки.

• Позволяет управлять цепочкой вызовов автозагрузки SPL. Цель этого состоит в разрешении определять дополнительные автозагрузчики -- например, загрузчики ресурсов для классов не имеют соотношение 1:1 с файловой системой -- будут зарегестрированы до или после главного автозагрузчика Zend Framework.

Original (English): Autoloading in Zend Framework. Goals and Design

Translation: © antdmi .

translatedby.com crowd

Like this translation? Share it or bookmark!