Допустим, вам нужно создать собственный класс, который будет использоваться вашим контроллером.
class mycontroller extends main_controller
{
public function __construct ()
{
$c = new my_custom_class();
}
}
my_custom_class
это не модель / вид / контроллер, это отдельный класс. Какова лучшая практика, где (в какую папку) поместить файл my_custom_class.php
? Должно ли оно быть просто помещено в произвольную папку (т.е. /custom_classes/
) или есть лучшая практика при использовании MVC?
Это зависит от того, для чего эти «пользовательские классы» на самом деле. В одном из последних проектов моя структура каталогов выглядела так: http://i.stack.imgur.com/YGVI9.png
Пользовательские классы, с которыми взаимодействовали контроллеры, обычно представляли собой различные сервисы и входили в /src/model/services
каталог.
У меня также было два места для классов инфраструктуры (например, различные фабрики / сборщики и некоторые абстрактные классы для структур данных). Те, кто в конечном итоге в /src/components
или же /src/applications/<app>/components
каталоги.
То, что вы видите в своем собственном проекте, может быть «кодовый запах» аналог, но для прикладной архитектуры. Это может быть признаком того, что вы выдвигали логику приложения в контроллерах, где это не должно быть.
Других решений пока нет …