SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов

Правильная ли архитектура?

Делаю сайт-магазин, одностраничник. Надо сделать без сторонних фреймворков. Получилась такая архитектура:
папки
controllers
models
lib
static
views
Классы загружаются через автозагрузку по namespace
Вход через index.php, запрос обрабатывает роутер, который загружает соответствующий запросу контроллер, например, controllers/main.php, в котором для простоты не класс, а несколько анонимных функций типа
$router->map('GET','/',function() { ... });
$router->map('GET','/test',function() { ... });

(второй аргумент тут - это не абсолютный путь, а относительно текущего контроллера)
или правильней это называть middlewares?
в функциях идет обращение к моделям, например
$items = App\Models\Items::getAll();
модели - классы наследующиеся от класса Model, со статическими методами, содержащими запросы через mysqli или pdo
рендерится это все просто через
require "../views/index.php"
а корзина хранится в localStorage.
Вопрос: насколько правильно так делать, что можно улучшить?
  • Вопрос задан
  • 2433 просмотра
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Надо сделать без сторонних фреймворков.

Зачем? То, что вы делаете - silex + web коммерция. Для autoload давно есть PSR-4.

static имеет смысл перенести в отдельный каталог web | www | public | как назовете, и там же единая точка входа: index.php
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы