РекомендуетсяPHP

PHP: именование и границы PSR-1

Для нового PHP-пакета выберите именование и применяйте его последовательно. PSR-1 задает имена классов, методов и констант, но это соглашение совместимости, а не синтаксическое требование PHP.

Опубликовано Проверено Изменено

Плохо

namespace Project\Order;
class order_service {
    public const retryLimit = 3;
    public function Get_order($Order_ID) { /* ... */ }
}

Хорошо

<?php
namespace Project\Order;
 
final class OrderService
{
    public const RETRY_LIMIT = 3;
 
    public function formatOrderId(int $orderId): string
    {
        return 'order-' . $orderId;
    }
}

Почему это важно

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

Когда применять

Новый код, для которого проект принял PSR-1: классы StudlyCaps, методы camelCase, константы класса UPPER_SNAKE_CASE. Для переменных и свойств пример выбирает camelCase как соглашение проекта: PSR-1 намеренно не навязывает стиль свойств.

Имена отражают назначение: OrderService и formatOrderId, а не случайные сокращения. Уточняйте единицы и смысл там, где они важны, например timeoutSeconds. Выбор английских идентификаторов и доменных терминов фиксируется командой; это не ограничение языка.

Для WordPress применяйте его coding standards и префиксы/namespace плагина. В Bitrix сохраняйте контрактные имена классического API, установщика, событий и существующих расширений. Новый изолированный PSR-пакет может жить рядом с legacy через адаптер; глобальное переименование старых hooks или методов из этого правила не следует.

Файл объявления класса не должен сам выводить HTML, создавать соединение или запускать импорт. Bootstrap платформы и исполняемая точка входа отделяются от объявления; PSR-1 формулирует это как SHOULD, а шаблон с PHP/HTML имеет другой контекст.

Кто что делает

Человек

Выбирает стандарт именования по границам пакета и владеет словарем домена.

AI-агент

Не выдает предпочтения проекта за требования PHP/PSR; сохраняет публичные legacy-имена.

Как проверить у себя

Вход и действиеОжидаемый результатСвидетельство
Новый класс/метод/константа в PSR-пакетеСоответствуют принятому стилю и назначениюDiff и настроенный ruleset приложения
Свойство camelCase, которое анализатор ошибочно считает не-PSRНет ложного требования от PSR-1; применяется локальное соглашениеКонфигурация проверки
Адаптер к legacy hook/классу WordPress или BitrixКонтрактное имя сохраненоИнтеграционный вызов
Autoload класса без вызова методовНет вывода и внешнего I/OПроверка подключения файла

Стиль не измеряется числом исправленных имен; публичные переименования требуют отдельной миграции.

ПервоисточникиИстория изменений на GitHub

Дата проверки отражает содержательную сверку. Синхронизация сайта не обновляет её автоматически.