Есть ли у этой структуры каталогов для организации классов, таких как Zend Framework, имя? - PullRequest
0 голосов
/ 05 марта 2011

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

function __autoload($class_name) {
    require_once $class_name . '.php';
}

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

Некоторые компании используют префиксы для всех своих классов ... например, "class.MyClass.php", чтобы убрать беспорядок на одном уровне.

Некоторые организуют их в каталогах.Но все они должны быть добавлены, чтобы включить путь с замедлением приложения или должны быть изменены перед использованием.Код может стать сложным и странным.

PHP представил пространства имен начиная с версии 5.3, хотя я пока не совсем уверен в их функциональности.

Однако это стандарт, который я видел все чаще и чаще, который я думаю, что получил популярность из-за того, что Zend Framework является следующим:

function __autoload($className){
    require_once  str_replace('_','/',$className).'.php';
}

Этот тривиальный автозагрузчик уже выражает концепцию.

Именам классов предшествует их путь с подчеркиванием какразделитель.

Например, компонент «Сервис» содержит apis для различных поставщиков услуг.

Zend/Service/Amazon.php содержит класс Zend_Service_Amazon.

Более специализированный API дляAmaozn s3 можно найти в Zend/Service/Amazon/S3.php, где живет класс Zend_Service_Amazon_S3.

Я думаю, что эта концепция очень проста в обслуживании, интуитивно понятна, в настоящее время достаточно распространена и адаптируется к большинству потребностей.

Но как это называется?У него есть имя?

Ответы [ 2 ]

1 голос
/ 02 сентября 2011

Наконец-то нашел правильный ответ. Он называется PSR-0 и является руководством по соблюдению для автозагрузки:

http://groups.google.com/group/php-standards/web/psr-0-final-proposal

1 голос
/ 05 марта 2011

Предложения. У него нет имени, но Zend Framework использует его первым или более, чем другие, его можно назвать структурой Zend Style, например Zend Coding Style

...