【问题标题】:In MVC where do you put a custom class? [closed]在 MVC 中,您将自定义类放在哪里? [关闭]
【发布时间】:2016-04-13 16:06:59
【问题描述】:

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

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

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

【问题讨论】:

  • Imo,这取决于这个自定义类实际上在做什么。
  • 模型是最合适的,但你可以进一步分开它,即 /classes/helpers/MyHelper.php
  • 你可以在库中使用bisnes逻辑并在你的类中使用这个库,但是你需要调用这个类作为框架,因为你有库文件夹,并且你的框架有加载类的实现算法并保存在注册表中,并实现从库目录自动加载类。例如,您在生成自动加载类后运行 composer update 和 composer 将库下载到供应商,以便在您的项目中引导这些类。

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


【解决方案1】:

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

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

我还有两个用于基础设施级类的位置(例如各种工厂/构建器和一些用于数据结构的抽象类)。那些最终出现在/src/components
/src/applications/<app>/components 目录。

您在自己的项目中看到的可能是“代码气味” 类似物,但适用于应用程序架构。这可能表明您一直在控制器中推送应用程序逻辑,这是不应该的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多