Как использовать пространства имен классов или название классов-моделей (для примера в проекте на Laravel)?
Пусть, только для примера, у нас есть сайт-блог, где есть статьи, категории статей, картинки статей. 1. Как будет правильней размещать и именовать модели сущностей? Вариант 1.
namespace App/Models
Article
ArticleCategory
ArticlePicture Вариант 2.
namespace App/Models/Articles
Article
Category
Picture
но в этом варианте думаю таблицы бд все-равно лучше называть с префиксом article_ 2. Стоить ли в дальнейшем связывать размещение (неймсейсы) моделей и контроллеров? Например, если у меня модель Article в папке Articles, - то нужно ли размещать аналогично контроллер ArticleController в папку Articles? Но ArticleController может быть два, для фронтенда и для бекенда, в соот. неймспейсах, и получается что нужно для каждого создавать еще отдельную папку....
Есть ли какие-рекомендации, подходы и стандарты по этих вопросах, и вообще по правильному разбиению системы? Заранее спасибо!
А ещё есть вариант №3 — раскладывать все классы (в том числе и контроллеры с консольными командами) по разделам бизнес-логики, т.е. что-то типа DDD. И все варианты правильные, и все используются. И, наверное, существуют варианты №4, №5 и т.д.