Как насчет соглашения о пути к файлу в классе? - PullRequest
2 голосов
/ 02 мая 2009

Что вы, (особенно PHP) , ребята, думаете о соглашении об именовании классов, в котором имя класса отражает путь к файлу, связанному с каталогом проекта? например:

# /project/Session/Abstract.php
# /project/Session/Database.php

class Session_Database extends Session_Abstract ...

Я уверен, что вы поняли идею. Я также уверен, что некоторые плюсы очевидны ... но как вы думаете - стоит ли удлинять имена классов, чтобы получить довольно красивую структуру каталогов, по которой легко ориентироваться?

Это также допускает однострочное определение __autoload ($ class) в PHP: str_replace ('_', '/', $ class);

Полагаю, некоторые люди сочтут такое соглашение глупым. Мне лично это нравится, но я не видел, чтобы его использовали другие люди, и я не совсем уверен, будет ли он так хорошо работать на практике.

Одним из минусов может быть то, что при удалении вызовов include / require все классы зависят (склеиваются) от функции автозагрузки, что, как некоторые могут утверждать, не соответствует их пониманию слабой связи.

Единственная известная мне на данный момент ссылка на такой подход - http://softwareengineering.vazexqi.com/files/pattern.html

Итак, у вас есть мнение по этому поводу?

Ответы [ 3 ]

5 голосов
/ 02 мая 2009

Тогда ты не искал. PEAR использует этот подход. Как и Zend Framework . Это довольно устоявшийся стандарт в мире PHP. Я не знаю, когда я впервые столкнулся с этим, но я лично использовал его и любил его в течение нескольких лет, как в качестве части моей собственной инфраструктуры, так и в рамках общедоступных структур, таких как ZF.

1 голос
/ 02 мая 2009

Я также использую это соглашение.

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

Когда выйдет PHP 5.3 и, наконец, появятся пространства имен, я все равно буду использовать это соглашение. Единственное, что я сделаю по-другому, это укоротит имена моих классов, преобразует мои префиксы в правильные пространства имен и выполняет настройку в моем автозагрузчике.

1 голос
/ 02 мая 2009

Единственное, что мне не нравится в этом, это то, что, когда мне нужно переместить код, я в конечном итоге перерабатываю множество имен. Тем не менее, Эмиль уже указал, что это в значительной степени нормально для курса, но я хотел бы добавить Правила именования пользователей PHP .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...