Итак, я только что интегрировал Pimple в проект, и сейчас я нахожусь в том, что у меня есть файл по адресу:
/application/config/pimple.php
400+ из них:
/* Instantiate new Class */
$this->container['Some_class'] = $this->container->factory(function ($c)
{
require_once "application/classes/some/class.php";
return new Class();
});
Мой вопрос: это норма? Должен ли я быть обеспокоен этим? Есть ли лучший способ сделать это?
Должен ли я быть обеспокоен этим?
Ну нет. Вы Можно работать с этим. Рамки кремнезем также использует Pimple в качестве сервисного контейнера. Но прыщ маленький контейнер для инъекций зависимости. Это очень хорошо для небольших проектов, но если ваш контейнер растет, вы можете захотеть что-то другое. Если вы ищете что-то «лучше», ищите внедрение зависимости-х составная часть. С этим вы можете описать свое поведение DIC в файле конфигурации, например:
parameters:
# ...
mailer.transport: sendmail
services:
mailer:
class: Mailer
arguments: ["%mailer.transport%"]
newsletter_manager:
class: NewsletterManager
calls:
- [setMailer, ["@mailer"]]
Заметка: желательно зарегистрировать автозагрузчик, а не включать класс вручную.
Других решений пока нет …