Включить пользовательские функции рекомендуется в Symfony2
Я новичок в Symfony2, и я не могу понять, где я должен сделать включает в себя мои пользовательские функции кросс-проектов (например,array_merge_overwrite
, array_last
, etc.)? Я использую оба типа приложений: web (MVC) и console (extends ContainerAwareCommand
).
или есть другой "правильный путь" для этого?
2 ответов
создать сервис и поместите в него свою общую функциональность. Например, вы можете назвать его ArrayService
и зарегистрируйте его в контейнере как array.service
. Затем вы можете получить доступ к этой службе с контроллеров через
$this->get('array.service');
и от команды с помощью
$this->getContainer()->get('array.service');
Итак, ваш код будет выглядеть примерно так:
$element = $this->get('array.service')->last($array); // or ->arrayLast($array)
Если вам нужна одна и та же функциональность в нескольких проектах, сделайте пакет с этой услугой и добавьте его в каждого проекта. Затем он будет установлен при запуске bin/vendors install
сценарий.
вы можете преобразовать свои функции в статические методы некоторого класса, чтобы сделать их автоматически загружаемыми. Или... что ж... Поместите их туда, где вы хотите и требуете (), откуда они вам нужны каждый раз.