在MVC中你在哪里放一个自定义类?

时间:2016-04-13 16:06:59

标签: php model-view-controller frameworks directory-structure

假设您需要创建一个将由您的控制器使用的自定义类。

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

my_custom_class不是模型/视图/控制器,它是一个独立的类。放置my_custom_class.php文件的位置(文件夹)的最佳做法是什么?它应该简单地放在任意文件夹中(即/custom_classes/)还是在使用MVC时有最佳做法?

1 个答案:

答案 0 :(得分:2)

这取决于那些"自定义类"实际上是为了。在最近的一个项目中,我的目录结构如下所示:http://i.stack.imgur.com/YGVI9.png

与控制器交互的自定义​​类通常是各种服务,并进入/src/model/services目录。

我还有两个基础架构级别的位置(比如各种工厂/构建器和一些数据结构的抽象类)。那些最终都在/src/components中 或/src/applications/<app>/components目录。

您在自己的项目中看到的可能是&#34;代码味道&#34; 模拟,但对于应用程序架构。这可能表明,您一直在控制器中推动应用程序逻辑,而不应该在那里。