Включите пользовательские функции в Best Symfony2 - PullRequest
6 голосов
/ 15 ноября 2011

Я новичок в Symfony2, и я не могу понять, где я должен включать в себя мои собственные кросс-проекты (например, array_merge_overwrite, array_last и т. Д.)?Я использую оба типа приложений: веб (MVC) и консоль (расширяет ContainerAwareCommand).

Или есть другой "правильный путь" для этого?

Ответы [ 2 ]

7 голосов
/ 15 ноября 2011

Создайте сервис и добавьте в него свои обычные функции. Например, вы можете назвать его ArrayService и зарегистрировать в контейнере как array.service. Затем вы можете получить доступ к этой услуге с контроллеров через

$this->get('array.service');

и из команд через

$this->getContainer()->get('array.service');

Итак, ваш код будет выглядеть примерно так:

$element = $this->get('array.service')->last($array); // or ->arrayLast($array)

Если вам требуется одинаковая функциональность для нескольких проектов, создайте пакет с этим сервисом и добавьте его в файл deps каждого проекта. Затем он будет установлен при запуске скрипта bin/vendors install.

0 голосов
/ 15 ноября 2011

Вы можете преобразовать свои функции в статические методы некоторого класса, чтобы сделать их автоматически загружаемыми. Или ... ну ... Разместите их там, где вы хотите, и требуйте (), где они вам нужны каждый раз.

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