В 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
каталоги.
То, что вы видите в своем собственном проекте, может быть аналогом "запаха кода", но для архитектуры приложения. Это может быть признаком того, что вы выдвигали логику приложения в контроллерах, где это не должно быть.