Просмотр поста

.
Delphinum
Менеджер модулей
Часто крупные приложения разделяются на модули, что позволяет повторно использовать части приложения в других проектах, а так же распространять их. Так, удобно для своего проекта установить систему управления пользователями (авторизация, бан, восстановление пароля), чем писать ее с нуля. Проект с таким решением должен иметь модульную архитектуру, каждый модуль которого можно представить в виде набора классов, содержащихся в одном каталоге. Часто модуль включает класс инициализации, который используется при старте приложения и отвечает за загрузку и подготовку модуля к использованию.

Пакет 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 которого будет вызван при инициализации.

Архив с примером