Отображение имен пакетов на соответствующий путь к каталогу в Symfony2 - PullRequest
0 голосов
/ 25 июля 2011

Я не уверен, как задать этот вопрос.Это немного нечетко, но если вы столкнулись с Corpus Delicti, вы поймете, что я имею в виду.

Когда я впервые столкнулся с тем, как Symfony2 отображает связки на пути, несколько дней назад я уже был несколько озадачен тем, почемуони решили отобразить имя пакета

AxxBxxBundle на .../Axx/BxxBundle/...

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

Теперь я только что натолкнулся на эту цитату в Книге :

BundleName:ControllerName: TemplateName

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

/ path / to / BundleName / Resources / views / ControllerName / TemplateName

И это неправильно, я думаю, что между Bundle и Name должна быть косая черта.

Но эта цитата показывает, что даже во внутреннем кругу Symfony2 некоторые люди ненайтина интуитивном уровне.

Так что же такое «философия», связывающая эту связку и ее логику отображения?

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Исходя из Zend Framework, это не так уж плохо для меня.Все эти классы начинаются с Zend_, думая об этом, так как имя владельца / создателя облегчает задачу.В java большинство библиотек начинаются с com.foobar

Цитата Фабьена: «Symfony2 опирается на хорошо известные шаблоны проектирования и лучшие практики из мира Java».

Ваше утверждение на самом деле не делаетСмысл или я упускаю вашу точку зрения:

И это неправильно, я думаю, что между Bundle и Name должно быть косое место.

Вы имели в виду: МеждуAcme и DemoBundle?Это похоже на дублирование, но

Цитата Фабьена: «Пакет - это структурированный набор файлов, который реализует одну функцию и может легко передаваться другим разработчикам».

Я могу использоватьнабор блогов от Acme, затем я нахожу аналогичный комплект от Emca.Скорее всего, их пакеты будут иметь одинаковую модель, контроллер и названия маршрутов.Использование их обоих: таким образом, ничто не может быть переопределено при использовании другой библиотеки.Таким образом, первое имя для создателя / владельца, чтобы предотвратить дублирование.

Поскольку это неудобно, я всегда называю мой Мой / DemoBundle для более быстрого использования: p Или вы можете дать ему свое имя во время генерации консольного пакета (если вы ненравится)

Также:

Все базовые пакеты обрабатываются точно так же, как ваши пакеты, и все является пакетом.Связки легко переносимы и настраиваются.Они действительно являются ключом к реальной силе Symfony2.Пакет может расширить другой пакет.Он может распространяться независимо от своего приложения.

Поскольку веб-ресурсы находятся в комплекте, я считаю, что им удалось сделать это правильно.Это позволит легко конфигурировать и использовать повторно, например, можно сделать более крупные (расширенные) улучшения в ядре Symfony, не влияя на ваше приложение.

2 голосов
/ 25 июля 2011

Этот не совсем отвечает на вопрос о рассуждениях, но он предоставляет дополнительную информацию по теме Bundle.Чтобы получить ответ на вопрос почему , вам, возможно, следует обратиться к Фабьену Потенциру , который написал класс Symfony\Component\HttpKernel\Kernel, основанный на этом соглашении.

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