В MVC, где вы кладете пользовательский класс?

Допустим, вам нужно создать собственный класс, который будет использоваться вашим контроллером.

class mycontroller extends main_controller
{
    public function __construct ()
    {
        $c = new my_custom_class();
    }
}

my_custom_class это не модель / вид / контроллер, это отдельный класс. Какова лучшая практика, где (в какую папку) поместить файл my_custom_class.php? Должен ли он просто быть помещен в произвольную папку (т.е. /custom_classes/) или есть лучшая практика при использовании MVC?

1 ответ

Это зависит от того, для чего эти "пользовательские классы" на самом деле. В одном из недавних проектов моя структура каталогов выглядела так:

Пользовательские классы, с которыми взаимодействовали контроллеры, обычно представляли собой различные сервисы и входили в /src/model/services каталог.

У меня также было два места для классов инфраструктуры (например, различные фабрики / сборщики и некоторые абстрактные классы для структур данных). Те, кто в конечном итоге в /src/components
или же /src/applications/<app>/components каталоги.

То, что вы видите в своем собственном проекте, может быть аналогом "запаха кода", но для архитектуры приложения. Это может быть признаком того, что вы выдвигали логику приложения в контроллерах, где это не должно быть.

Другие вопросы по тегам