Symfony 2 многоразовых пачки

Допустим, я хочу создать блог в Symfony, который живет в BlogBundle, Но этот BlogBundle зависит от других комплектов, таких как FOSUserBundle, комплект KnpPaginator, FMBbCodeBundle или что-то еще, что я в конечном итоге использую. Означает ли это, что я не могу повторно использовать BlogBundle в другом проекте. Лучшие практики для многоразовых комплектов глава поваренной книги Symfony говорит

Пакет не должен встраивать сторонние библиотеки PHP. Вместо этого он должен полагаться на стандартную автозагрузку Symfony.

Но что это значит именно? Не могу ли я использовать что-то, что не запрограммировано мной?

Если это так, мне придется заново изобретать колесо для решения самых основных проблем, с которыми я сталкиваюсь при разработке своего комплекта. Например, мне нужно было бы придумать свой собственный paginator для разбивки на страницы, создать свой собственный менеджер пользователей и так далее …
Я не вижу в этом смысла, так как я трачу свое время на решение проблем, которые уже были сделаны гораздо лучше, чем я мог бы.

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

Меня действительно раздражает, что никто не делал ни одного подобного блога или чего-то подобного, что получило бы хорошие отзывы и упоминалось где-либо в верхних списках. Я знаю, что у Symfony не должно быть решения, которое работает «из коробки», и некоторое кодирование необходимо, но все же. Все пакеты, которые я могу найти, которые кажутся очень популярными, — это те, которые делают что-то вроде разбора BB-кода, заботятся об управлении пользователями и других трудных и утомительных делах, но никогда не являются чем-то большим, чем выполнение только одной задачи.

Я надеюсь, вы понимаете, о чем я, и можете помочь мне с моей проблемой. Заранее спасибо!

3

Решение

Пакет не должен встраивать сторонние библиотеки PHP. Следует полагаться на
вместо стандартного автозагрузки Symfony.

Это означает, что вы не должны копия код других библиотек в ваш Bundle (каталог). Вместо этого вы должны добавить их в качестве зависимостей к вашему composer.json,

5

Другие решения

Других решений пока нет …