Php Laravel 4中的精简控制器

Php Laravel 4中的精简控制器,php,model-view-controller,laravel,laravel-4,Php,Model View Controller,Laravel,Laravel 4,我正在尝试在新的Laravel 4应用程序中找到构建控制器/模型的“最佳”方法 显然,我想保持控制器的轻薄。所以我想用回购/服务来分离事物,但是我真的不知道如何在Laravel4中实现这一点。拉威尔3号给了我们,但没有样品 是否有人想出了最简洁的方法来实现这一点,或者有任何示例代码可以让我看一看?我同意这样一个事实,即在Laravel 4中存储这些类的位置并不十分清楚 一个简单的解决方案是在主应用程序/文件夹中创建存储库/服务文件夹,并更新主composer.json文件使其自动加载: {

我正在尝试在新的Laravel 4应用程序中找到构建控制器/模型的“最佳”方法

显然,我想保持控制器的轻薄。所以我想用回购/服务来分离事物,但是我真的不知道如何在Laravel4中实现这一点。拉威尔3号给了我们,但没有样品


是否有人想出了最简洁的方法来实现这一点,或者有任何示例代码可以让我看一看?

我同意这样一个事实,即在Laravel 4中存储这些类的位置并不十分清楚

一个简单的解决方案是在主应用程序/文件夹中创建存储库/服务文件夹,并更新主composer.json文件使其自动加载:

{
    "require": {
        "laravel/framework": "4.0.*"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/tests/TestCase.php",
            "app/repositories",
            "app/services"
        ]
    },
    "minimum-stability": "dev"
}
注意:每次创建新类时,都必须运行
composer dump autoload


对于存储库,您可以让Laravel自动将它们注入控制器。我找到了一个很好的关于这个主题的屏幕广播。

我发现这个教程集是一个很好的介绍,介绍了如何在适当的位置存储您的自定义服务提供商和您希望注入到项目中的其他文件:

这些教程来自本系列:


当我重新安装Laravel时,我要做的第一件事是:

  • 删除“模型”文件夹
  • 创建一个src文件夹
  • 在src下,创建一个应用程序文件夹(或应用程序的名称)
  • 在应用程序文件夹中,创建实体、存储库、服务和测试
因此,在本例中,名称空间将是应用程序\实体、应用程序\存储库和应用程序\服务

在composer.json中:

{
    "require": {
        "laravel/framework": "4.0.*"
    },
    "autoload": {
        "psr-0": {
            "Application": "app/src/"
        },
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/database/migrations",
        ]
    },
    "minimum-stability": "dev"
}
对于其中的每一个,您都需要创建类和服务提供者来将存储库绑定到实体

以下是解释如何创建存储库的教程:


无论如何,我仍然在寻找最好的建筑。如果有人有更好的主意,我很高兴听到

在我看来,这个例子已经足够开始了。也许我遗漏了什么,我只是觉得在哪里存储回购/服务不是很清楚,也不是访问它们的最佳方式。问题是。要理解它,您需要从model==数据库的概念中走出来。这个例子是为了展示设计。你需要改变它以适应你的需要。e、 g.您可以有验证器(用于验证)、数据库(仅查询)、处理器(用于处理来自控制器的请求、计算)、公共(封装许多类共享的公共方法)等。。。。不同的项目需要不同的方法。这个例子是想给出一个想法,而不是直截了当。你需要扩展它,关注你的项目。我的一个问题是,为什么不在存储库中创建静态函数呢?为什么示例使用需要创建存储库实例的普通函数?静态函数往往会导致可测试性问题,这是L4中的一个重点。