Здравствуйте. Сейчас у меня имеется проект, для которого пишется приложение, поэтому передо мной встал вопрос реализации API. Сам проект имеет MVC-архитектуру, на каждый запрос пользователя выбирается нужный контроллер из папки modules(ну а там уже вид и контроллер). Отмечу, что при создании модулей допускается неограниченная вложенность, то есть в папке module можно разместить папку api(в большинстве модулей здесь уже и находится контроллер), в ней папку user и т.д. Итак, моя идея реализации заключается в следующем: Есть один глобальный модуль - api В этом модуле есть подмодули(папки): user, serach и т.д. Каждый подмодуль работает как обычный модуль в MVC архитектуре(только без представления) Как только в api приходит запрос, то в контроллере выбранного подмодуля api подключается модель одного из модулей системы, в которой выполняется необходимая функция, возвращающая некие данные Данные преобразуются в массив и возвращаются контроллеру, который отправляет их клиенту в JSON Пожалуйста, скажите, стоит ли так делать или есть более красивые способы реализации API?
Дык, вопрос про каноничную архитектуру RESTful API или про архитектуру приложения? Как бы это разные вещи.
Изи, пишешь абстрактный синглтон ядра, экстендишь от него всякие плюхи вида DB, Redis, Model, Controller, Route и понеслась! Я бы тебе прям скинул бы реализацию апи с шифровкой в бд, но вот не могу. Но ты можешь спросить меня как, прежде чем окунаться в какое-то другое серьёзное говно.
Так а в чем проблема ? Под понятием MVC он имеет ввиду что-то типа /another/cool/url/format Где будут контроллеры и сабконтроллеры и вот эта шляпа - MVC, ещё забыл корованы из моделек
Ну почему. К примеру, API возвращает JSON, чем не вьюха? А с моделями и контроллерами всё и так понятно
Зачем два экземляра если на уровне обёртки PDO можно установить свитчер подключений ? Другой нужды не вижу. Модель не может быть синглтоном и у нас демократия, можешь сам решать что будет синглтоном, а что нет, просто модель экстендит кору для получения доступа к глобальным переменным, конфигам, алиасам и прочему, __construct не final.
Дык это уже не синглтон, если он хранит в себе глобальные переменные, конфиги, алиасы и прочее - самый настоящий god object получается.
Что-то типа того, но по сути этот год обжэкт позволяет как и запускать инстансы, так и просто экстендить себя, предлагая доступ ко всему