【问题标题】:Laravel folder structuresLaravel 文件夹结构
【发布时间】:2014-02-18 04:58:41
【问题描述】:

在决定将文件夹放置到app\ 文件夹中的资源的哪个位置时,我经常发现它有问题。

我应该在哪里放置诸如model observersvalidatorsform macrosrepositories...之类的东西。目前我执行以下操作

\app
   \models
   \controllers
   \repositories
   \observers
   \interfaces
   \validators 
   \views

虽然我看到有些人这样做:

\app
   \models
   \controllers
   \views
   \YourAppNameHere
      \Services
         \validators
         \...

\Acme 文件夹与实际应用程序相同时,我不明白其背后的原因?

【问题讨论】:

  • 两个都不错,选最适合自己的。真的,不要担心这个,坚持一个,你就可以了。
  • 有人看 Laracast :)

标签: php architecture laravel laravel-4 directory


【解决方案1】:

掌握 Laravel 文件夹结构的最佳方法是将 app 目录视为 框架的前端。如果你看一下git repository,你会发现它们是分开的——你可以克隆核心库,也可以单独克隆 laravel 应用程序。应用程序及其子文件夹仅代表可以使用框架的一种方式。当然,它的设计涉及最佳实践。还可以查看核心框架 tests 目录 - Laravel 开发人员将库视为“无头” - 没有应用程序。对我来说,这是掌握 Laravel 所需要的一切。

因此您可以随意修改现有结构,但请记住,有些更改需要您composer dump-autoload - 主要是因为命名空间。

【讨论】:

  • 谢谢,这是一个非常好的开始寻找的地方。我想我的核心问题是我经常看到网络上的人在 /lib/validators ... /lib/macros ... 下构建他们的文件夹,而我认为“应用程序域”的所有内容都应该位于 @987654322 下@ 并创建了适当的名称空间。我只是在寻找最好、最清晰、最“雄辩”的结构。
【解决方案2】:

总的来说,Laravel 可以以最适合您的方式构建。有些人更喜欢默认架构,而另一些人则喜欢基于域的架构。

我目前的两个项目都偏离了这一点,使用了类似的东西:

/app
  /database
  /controllers
  /bin
  /views
  /config
  /storage

尽管我在bin/ 中有一些通用助手以及我的路由和过滤器,但我将很多自定义功能保留在服务提供商中。

您可以做任何您想做的事,只要确保您相应地更新您的composer.jsonapp/start/global.php 以确保自动加载正确的类。并确保您正确命名所有内容!

下面是我的 composer.json 和 global.php 的相关部分的示例,仅供参考:

composer.json:

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/database/models",
        "app/database/migrations",
        "app/database/seeds"
    ]
},

app/start/global.php:

ClassLoader::addDirectories(array(

app_path().'/commands',
app_path().'/controllers',
app_path().'/bin',
    app_path().'/database/models',
    app_path().'/database/seeds',

));
require app_path().'/bin/filters.php';
require app_path().'/bin/helpers.php';
require app_path().'/bin/events.php';

【讨论】:

    【解决方案3】:

    简而言之,这完全取决于您和您的团队如何看待它的可读性,这完全是一个偏好问题,也就是说,在您的所有项目中保持一致性是件好事。

    【讨论】:

    • 对任何结构如此开放的主要问题是......这并没有真正的帮助
    猜你喜欢
    • 1970-01-01
    • 2019-01-15
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2020-10-08
    • 2021-11-18
    • 2021-04-11
    相关资源
    最近更新 更多