ERP Core:
Просто. Единообразно. Хорошо.
Финальная архитектура системы, построенная на принципах модульной независимости и единого интерфейса взаимодействия.
1. Архитектура общих модулей (Core Stack)
1. Entity
Центральный реестр моделей. Избавляет от длинных имен классов и жестких путей.
2. Event
Шина событий. Позволяет модулям «общаться», оставаясь независимыми.
3. ACL
Проверка прав через «способности» (permissions) вместо жестких ролей.
4. Storage
Единый интерфейс для загрузки и получения ссылок на файлы.
5. Notify (Слой связи)
Универсальный курьер: Email, Telegram, Browser в одном вызове.
6. Audit (Слой истории)
Автоматический «черный ящик» системы через прослушку Event.
Реализация
class Controller_Tasks extends Controller_Base { public function action_complete() { // 1. Сущность $task = Entity::factory('task', $id); // 2. Права if (!$this->can('task.complete')) { throw new Exception_403; } $task->status = 'done'; $task->save(); // 3. Событие Event::fire('task.completed', $task); $this->_json_response(['ok']); } }
Преимущества
Почему это работает?
Система становится модульной. Вы можете полностью заменить реализацию Notify (например, сменить почтовый сервис), и вам не придется править ни одного бизнес-контроллера. Это архитектура, которая не превращается в "спагетти" через год.