Я создаю действительно минимальную среду MVC, чтобы расширить свои знания PHP и поставить перед собой задачу. Я подошел к тому моменту, когда классы начинают зависеть друг от друга в своей работе. Внедрение зависимостей кажется решением этой проблемы и используется некоторыми большими фреймворками .
Я нашел Bucket на Github и некоторое время возился с ним, чтобы понять основы. Но я не могу понять, когда уместно создать Контейнер?
Создание одного большого контейнера, включающего все возможные классы, которые могут потребоваться , кажется не более чем контрпродуктивным для я и я не могу представить, что это хорошая практика. По крайней мере, это похоже на рецепт плохой производительности.
В качестве альтернативы, которая заключается в создании нескольких контейнеров, я все еще не понимаю, почему вечно вонючие синглтоны больше не нужны.
Допустим, я бы хотел есть следующий код:
$session_container = new bucket_Container();
$session_container->create('Database');
$session_container->create('Database_Sessions');
$log_container = new bucket_Container();
$log_container->create('Database');
$log_container->create('Database_Log');
Итак, у нас есть два контейнера, или в этом случае сегментов для двух совершенно разных применений, которые являются взаимными из-за их зависимости от класса Database
.
Моя логика подсказывает мне, что приведенный выше код создаст два независимых экземпляра класс База данных
, что означает, что мне все равно придется сделать класс База данных
синглтоном, чтобы гарантировать, что одновременные экземпляры подключения к моей базе данных не выполняются?
Это правильно?