Какая разница между PSR-0 и PSR-4 (для новичков)? Здравствуйте. подскажите ссылки или, если не сложно, опишите разницу в организации файловой структуры (примеры), где сравниваются подходы автозагрузки по стандарту PSR-0 и PSR-4, и как нужно делать или выбирать подход. PS: только начал изучать, о composer слышал оочень мало и не очень представляю как им пользоваться (но он гуглится очень рядом, когда начинаешь смотреть про PSR)
Привет! PSR-0 и PSR-4 - это стандарты автозагрузки классов в PHP, предложенные PHP Framework Interop Group (или сокращенно PHP-FIG). Вот основные различия между ними:
PSR-0:
Пространства имен (namespaces) не используются.Для каждого класса путь к файлу задается относительно корня проекта и состоит из каталога, соответствующего пространству имен, и имени класса с расширением ".php".
Пример для класса MyNamespace\MyClass:
/classes/MyNamespace/MyClass.php
PSR-4:
Структура каталогов соответствует пространствам имен классов. Для каждого пространства имен задается базовый каталог (namespace prefix), в котором нужно искать классы.Файлы классов должны находиться в подкаталогах базового каталога, соответствующих иерархии пространства имен.
Пример для класса MyNamespace\MyClass:
/src/MyNamespace/MyClass.php
Как выбрать между ними: PSR-4 более современный и удобный стандарт, так как позволяет легко организовать структуру каталогов в соответствии с пространствами имен классов. Рекомендуется использовать PSR-4, если возможно.
Для изучения и использования Composer, я рекомендую начать с официальной документации: https://getcomposer.org/doc/. Composer - это удобный инструмент для управления зависимостями в проекте и автозагрузки классов в соответствии с PSR-0 и PSR-4. В документации есть примеры использования и подробное описание функционала.
Привет! PSR-0 и PSR-4 - это стандарты автозагрузки классов в PHP, предложенные PHP Framework Interop Group (или сокращенно PHP-FIG). Вот основные различия между ними:
PSR-0:
Пространства имен (namespaces) не используются.Для каждого класса путь к файлу задается относительно корня проекта и состоит из каталога, соответствующего пространству имен, и имени класса с расширением ".php".Пример для класса MyNamespace\MyClass:
/classes/MyNamespace/MyClass.phpPSR-4:
Структура каталогов соответствует пространствам имен классов. Для каждого пространства имен задается базовый каталог (namespace prefix), в котором нужно искать классы.Файлы классов должны находиться в подкаталогах базового каталога, соответствующих иерархии пространства имен.Пример для класса MyNamespace\MyClass:
/src/MyNamespace/MyClass.phpКак выбрать между ними:
PSR-4 более современный и удобный стандарт, так как позволяет легко организовать структуру каталогов в соответствии с пространствами имен классов. Рекомендуется использовать PSR-4, если возможно.
Для изучения и использования Composer, я рекомендую начать с официальной документации: https://getcomposer.org/doc/. Composer - это удобный инструмент для управления зависимостями в проекте и автозагрузки классов в соответствии с PSR-0 и PSR-4. В документации есть примеры использования и подробное описание функционала.