В Prologue-Framework для разработки сложных систем используется workspace.
workspace - это область в которой работает функционал определенной части проекта. К примеру есть крупный портал и у этого портала есть сущность пользователь. У пользователя есть стена, поиск по другим пользователям, настройки профиля и многое другое. Такой функционал можно реализовать двумя способами.
Первый способ - вы делаете все как для типичного проекта, то есть располагаете все контроллеры, модели, компоненты, файлы представлений и др. в папке /Project/ и все будет работать. Но при таком подходе у нас будет слишком много контроллеров в одном месте, хотелось бы это все инкапсулировать и разнести по модулям.
Второй способ - вы скачиваете воркспейс, копируете его в корень (на уровне с папкой Prologue). В корне появляется папка workspace. Мы её переименовываем в users и открываем файл /users/index.php
/**
* Загрузка workspace
*/
include 'starter.php';
/**
* Установка workspace
*/
$workSpace = new PrologueFrameworkWorkspace('/users/');
/**
* Задаем правила подключения контроллеров
*/
$workSpace -> url('/users/') -> controllerName('MainController');
/**
* Получаем и подключаем контроллер
*/
PrController::get($workSpace -> controller, ['cache' => 'N']);
Нам необходимо в конструктор передать путь к нашему воркспейсу. В нашем случае это /users/. Потом следует настроить подключение контроллеров. Для этого вызовем цепочку методов url() -> controllerName() В методе url() необходимо указать адрес по которому будет подключаться определенный контроллер. Имя контроллера указывается в методе controllerName()
После этой настройки можно продолжать разрабатывать ваше приложение так же как и всегда, но уже оно лежит в своей папке, а это значит что поддержка приложения станет проще.
Стоит отметить то, как работает загрузка контроллеров, моделей, компонентов и языковых файлов в воркспейсе. Сначала система ищет к примеру файл контроллера в папке воркспейса, если не находит, то потом в папке /Project/ и если и здесь нет, то в папке ядра.