首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5堆芯结构的最佳方案

Laravel 5堆芯结构的最佳方案
EN

Stack Overflow用户
提问于 2014-10-09 15:01:31
回答 3查看 4.9K关注 0票数 3

因此,Laravel 5提供了一个新的文件夹结构,我正在努力找到管理我的自定义类的最佳方法(记住PhpSpec测试)。

以前我做过这样的事

  • app
    • 猿类(我的定制课程是在那里举办的)
    • 模型
    • 控制器

使用新的结构,我是否应该尝试分割类以适应新的目录结构?现在应用程序中有一个Http文件夹,我应该在该目录中添加相关的自定义类吗?

  • app
    • Http
        • SomeHttpClass

代码语言:javascript
复制
    - Controllers
    - Middleware

代码语言:javascript
复制
- Providers 
    - Apes 
        - MyServiceProvider

代码语言:javascript
复制
    - AppServiceProvider.php

我知道这可能是个人偏好的问题,等等,但我一直在思考如何设计一个新的L5项目的最佳实践方法时遇到了一些小麻烦。

任何建议都值得赞赏。

更新

经过一段时间的修补后,我决定了一种对我来说很好的方法(这是一个小应用程序。

  • app
    • 控制台
    • 操作者
    • 帮助者
    • Http
      • 控制器
        • 管理员
        • 公共的

代码语言:javascript
复制
    - Middleware
    - Requests

代码语言:javascript
复制
- Providers
- Repositories 
    - AbstractDbRepository.php
    - ClientRepositoryInterface.php
    - DbClientRepository.php
    - DbScheduleRepository.php
    - ScheduleRepositoryInterface.php

代码语言:javascript
复制
- Schedules 
    - Exceptions
    - Schedule.php
    - ScheduleCalculator.php
    - ScheduleInputTransformer.php
    - ScheduleTimes.php

代码语言:javascript
复制
- Traits
- SimpleModel.php

我决定,如果一个模型相当简单,我将把它放在app的根中,但是对于需要更广泛测试的更复杂的模型,我将使用存储库模式。

我只是把控制器放在原来的位置,但把它们细分为管理/公共。我们可能也会为此构建一个小API,我可能会将与API相关的所有内容都放在app/Api中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-09 23:27:36

在这个阶段,L5仍在经历着巨大的变化。目前还没有最佳的方法来解决这个问题,在L5真正发布之前,答案会随着时间的推移而改变。

事实上,你可以采取多种不同的方法,一切都会好起来的。泰勒总是说,构建一个应用程序是为了你想要它的表现--而不是因为别人让你这么做。

票数 2
EN

Stack Overflow用户

发布于 2014-11-11 01:53:12

泰勒·奥特威尔在一篇博文中概述了用户替身的结构:http://blog.userscape.com/post/organizing-snappy

虽然它是基于Laravel4.x的,但肯定值得一读。

另外,Laravel.io的源代码有一个有趣的域分离结构:https://github.com/LaravelIO/laravel.io

票数 0
EN

Stack Overflow用户

发布于 2015-09-09 16:35:47

您甚至不需要坚持放置控制器、视图或模型的标准方法,因为大多数控制器、视图或模型只需要在App文件夹中的一个文件中只需一行即可更改。我在文件中做了一个简单的搜索,查找我想要更改的目录的引用,很快就找到了以下内容:

在app/Providers/RouteServiceProvider.php中设置了默认控制器目录:

代码语言:javascript
复制
protected $namespace = 'App\Http\Controllers';

在同一个文件中,您可以更改routes.php文件的路径:

代码语言:javascript
复制
public function map(Router $router)
{
    $router->group(['namespace' => $this->namespace], function ($router) {
        require app_path('Http/routes.php');
    });
}

要更改模型的路径,只需更改引用,以便在其他文件中使用正确的命名空间。例如,在这些文件中引用了用户模型:

config/auth.php

config/services.php

数据库/工厂/模型工厂

当然,您需要更改所有已移动文件中的命名空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26281749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档