Часто крупные приложения разделяются на модули, что позволяет повторно использовать части приложения в других проектах, а так же распространять их. Так, удобно для своего проекта установить систему управления пользователями (авторизация, бан, восстановление пароля), чем писать ее с нуля. Проект с таким решением должен иметь модульную архитектуру, каждый модуль которого можно представить в виде набора классов, содержащихся в одном каталоге. Часто модуль включает класс инициализации, который используется при старте приложения и отвечает за загрузку и подготовку модуля к использованию.
Пакет ModuleManager реализует простой механизм загрузки и инициализации модулей приложения. Конструктор класса Manager этого пакета принимает адрес каталога, в котором будут содержаться модули, а так же массив имен загружаемых модулей. После инстанциации этого класса, необходимо вызвать метод init, передав ему имя вызываемого у модуля метода для инициализации и массив параметров:
use Bricks\ModuleManager\Manager;
$manager = new Manager('modules', ['App', 'Auth', 'Forum']);
$manager->init('run');
Пример позволяет инициализировать приложение вида:
modules/
App/Module.php
Auth/Module.php
Forum/Module.php
Каждый из перечисленных модулей должен включать класс Module, метод run которого будет вызван при инициализации.
Архив с примером