2015-04-18 8 views
1

После прочтения PSR-4, я думаю, что он будет просто соответствовать небольшим пакетам, в которых есть несколько каталогов.
Если пакеты большие, у него будет так много функций автозагрузки для загрузки из подпакетов. (Потому что мы должны сказать функцию базовый каталог первой)
Рассмотрим CMS или Framework
Является ли PSR-4 только для небольшого пакета?

  • администратора
  • расширения
  • Lib
    • рамочные
      • абстрактные
      • базы данных
      • DateTime
      • функции
      • Интерфейс
    • комментарий
    • сообщение
    • пользователя

ли PSR-0 лучше для этого пакета CMS, чем PSR-4?
Является ли моя структура каталогов хорошей?
Должны ли интерфейсные и абстрактные классы иметь свой собственный каталог?

+1

Зависит, если вы используете пространство имен или нет; хотя для большинства современных пакетов/библиотек рекомендуется использовать пространство имен, чтобы избежать риска столкновений в именах классов. –

+0

@MarkBaker Я использую пространство имен. Имя пространства имен, которое я даю, такое же, как в каталоге. Итак, лучше ли использовать PSR-0 или PSR-4? –

+0

Если вы используете пространства имен, используйте PSR-4 –

ответ

1

Есть ли PSR-4 только для небольшой упаковки?

Нет, PSR-4 предназначен не только для небольших упаковок. Стандартные структуры, такие как Zend и Symfony, тоже используют его.

PSR-4 описывает спецификацию для автозагрузки классов из путей к файлам. Он не делает никаких предположений о размере вашего проекта. Он полностью совместим и может использоваться в дополнение к любой другой задаче автозагрузки. Это означает, что вы также можете использовать PSR-0.

Является ли PSR-0 лучше для этого пакета CMS, чем PSR-4?

Это зависит. Если ваша система использует пространства имен, чтобы избежать столкновений классов с другими поставщиками, то правильный выбор PSR-4. Но в целом: автозагрузчику все равно, он просто ест уроки PSR-0 и PSR-4 на завтрак.

Если вы действительно хотите знать: выполните тест A/B и сравните скорость автозагрузки.

Является ли моя структура каталогов хорошей?

Это зависит: если вы и пользователи вашей CMS или Framework похожи на структуру, то да. Если вы работаете с Composer для управления зависимостями, то, вероятно, lib\ framework - мертвая лошадь, потому что все пакеты живут внутри папки vendor. Если вы разрабатываете CMS, то структура является зависимой от поставщика.

Должны ли интерфейсные и абстрактные классы иметь свой собственный каталог?

Я предлагаю сохранить интерфейс или абстрактный базовый класс в том же каталоге.

Это сохраняет одну папку,) только для одного или двух файлов.

 Смежные вопросы

  • Нет связанных вопросов^_^