如何构建MVC应用程序作曲家风格?

Cam*_*all 5 php composer-php

我正处于制作MVC Web应用程序的最初阶段.我想尝试做作曲家风格的事情.到目前为止,这是我的目录结构:

public_html
    |-vendor
    |   |-MyVendorName
    |   |   |-DomainObjectClass.php
Run Code Online (Sandbox Code Playgroud)

这就是我存储域对象的地方.

我也试图尽可能接近MVC来回答这个问题

我有点卡住的地方是模型,控制器,视图,服务,DataMappers等的位置.我应该创建MyVendorName的子目录(例如MyVendoreName/DomainObjects/DomainObjectClass.php和MyVendorName/Services/SomeServiceClass.php等)或者它是否更明智地将目录与供应商称为类或src或其他东西分开并在那里做MVC的东西?

编辑:每个人都说供应商是第三方库,我明白了.但是我编写域对象的方式与MVC方面非常分离.事实上,他们甚至不知道他们是MVC应用程序的一部分.它们很容易在其他项目中重复使用(我打算这样做).所以把它放在src /或app /中似乎不合逻辑

dec*_*eze 4

这是一个极具争议性的话题,没有正确的答案。不过,我会给出以下提示:

  • vendor目录用于第三方依赖项,您不应该在其中编写自己的代码
  • 将自己的代码放在一个src或目录中,该目录lib旁边vendor
  • 这些目录都不应该位于公共 webroot 文件夹中;webroot 应该是一个单独的目录,仅包含公共服务的文件,例如 CSS 和 JS 文件,其他任何内容都位于 webroot 之外
  • 在命名空间中构造类名
  • 命名空间遵循目录结构
  • 明确具有 aMyVendorName\ControllerMyVendorName\Model是有道理的
  • 结构尽可能深入,有意义,例如MyVendorName\Model\DomainObjects\Foobar\Subclass有意义