Php Larvel 4:对如何使用App::make()感到困惑
我试图遵循本文中概述的存储库模式,并尝试使用App::make()在Laravel中实例化一个类(我猜这是Laravel的工厂模式?),我试图解析类的参数,但我不知道如何做 代码: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
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');