Подтвердить что ты не робот

Что я должен назвать своим файлом класса PHP?

Я видел много разных схем и расширений имен, используемых для файлов PHP, которые в основном являются просто классами. Некоторые примеры:

  • myClass.php
  • myClass.class.php
  • myClass.class

В чем разница, и что лучше?

4b9b3361

Ответ 1

Нет разницы, кроме того, что вы видите. Те, у кого .class, полезны, если вы используете автозагрузку и не имеете определенного каталога, в котором живут ваши файлы классов. В противном случае это совершенно произвольно. (Я использовал ClassName.class.php.)

Ответ 2

Каковы ваши стандарты кодирования?

Его общий для запуска имен классов с большой буквы (например: class MyClass). Если вы это сделаете, то следует, что вы должны назвать файл MyClass.php. И MyClass.class.php тоже работает.

MyClass.class - это плохая идея, которая может позволить кому-то просмотреть исходный код, если он запрашивает этот файл по имени. Использование расширения .php гарантирует, что пользователь увидит только результат после обработки файла с помощью интерпретатора PHP, который для файла, который содержит ничего, кроме класса, - это пустая страница.

Наконец, просмотрите autoload(), что избавит вас от необходимости вызова require_once, чтобы загрузить ваш класс.


Обновление: С стандартом кодирования PHP PSR-4 теперь есть полуофициальный способ назвать ваш класс файлов. Предыдущий совет - назвать свой файл класса так же, как класс с расширением .php, - все еще стоит. Но теперь вы должны поместить этот файл класса в подкаталог, названный в честь вашего пространства имен классов; PSR-4 требует, чтобы все ваши классы содержались в определенном вами пространстве имен.

Что вы получаете за это? Автозагрузка бесплатно! Если вы используете Composer, вы можете указать каталог верхнего уровня для ваши классы и Composer будут автоматически загружать их. Больше инструкций require для загрузки ваших классов.

Если вы не хотите этого делать, вам не нужно: PSR-4 - это рекомендация, а не требование.

Ответ 3

Я предпочитаю MyClass.php - то же имя (включая капиталы) как класс.

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

Ответ 4

Если вы работаете над существующим проектом или платформой, я склоняюсь к документированному набору соглашений, таких как Zend's: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

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

В любом случае, Consistency - это название игры. Это значительно облегчает для других (включая вас через несколько месяцев), чтобы ускорить работу на базе кода.