Php Larvel 4:对如何使用App::make()感到困惑

Php Larvel 4:对如何使用App::make()感到困惑,php,laravel,laravel-4,factory-pattern,Php,Laravel,Laravel 4,Factory Pattern,我试图遵循本文中概述的存储库模式,并尝试使用App::make()在Laravel中实例化一个类(我猜这是Laravel的工厂模式?),我试图解析类的参数,但我不知道如何做 代码: namespace My; class NewClass { function __construct($id, $title) { $this->id = $id; $this->title = $title; } } $classArgs

我试图遵循本文中概述的存储库模式,并尝试使用App::make()在Laravel中实例化一个类(我猜这是Laravel的工厂模式?),我试图解析类的参数,但我不知道如何做

代码:

namespace My;

class NewClass {
    function __construct($id, $title) 
    {
        $this->id = $id;
        $this->title = $title;
    }
}

$classArgs = [
    'id'    => 1,
    'title' => 'test',
]

$newClass = App::make('My\NewClass', $classArgs);

有谁能举出一个如何使用App::make()的例子,或者说我完全走错了方向,不应该使用App::make()?

App实际上是一个用于自动解析的Laravel IoC容器的facade。理解IoC概念对于复杂的应用程序开发至关重要,但小型项目肯定会受益于良好的体系结构。我建议首先深入研究Laravel,并尝试一些关于服务提供者、绑定和自动解析的示例

谈到你的例子:

namespace My;

class NewClass {

    function __construct($id, $title) 
    {
        $this->id    = $id;
        $this->title = $title;
    }
}


$newClass = App::make('My\NewClass', [1, 'test']);

拉雷维尔论坛的好人帮我回答了这个问题

如果您可以使用App::bind()绑定自定义实例化代码,则这一点非常重要;像这样


谢谢你的回复。因此,您不会使用App::make()传递参数数组,因为这似乎是View::make('SomeView',$args)的功能;当然我想说的是,它更多的是用于构建应用程序和添加一些抽象级别。例如,我使用它来解析接口(绑定在服务提供者中)<代码>应用程序::make('My\ClassInterface')它有什么好处?如果我使用
NewClass(1,'test')
@BrandGuy有什么区别呢使用
NewClass
很好,但是每次都会返回一个新实例<代码>应用程序::make返回相同的实例。@RajaKhoury得到了它,它是一个单例实例。谢谢
App::bind('My\NewClass', function() use ($classArgs) {
    return new My\NewClass($classArgs['id'], $classArgs['title']);
});

// get the binding
$newClass = App::make('My\NewClass');