我想写一些像(laravel使用):
View::make('FooBarView')->with('foo', $foo)
->with('bar', $bar);
我的知识和想象力让我使用了新的自我实例。但我不认为这是最好的想法,我无法处理它。
由于我认为我的关键字不好,谷歌无法帮助我。我不想让你为我编写代码,但这个设计模式的名称是什么?或者其他什么?在laravel的源代码中,功能使用
return $this;
但是如何在make之后使用它?
顺便说一下,在这个例子中; with method可帮助您为视图的渲染设置变量。
答案 0 :(得分:4)
要调用函数返回的内容,函数必须返回可以调用的内容。
在这种情况下,您可以返回“this”:
class View {
/**
* @returns View
*/
public static function make($foo) {
/* do stuff, return new View instance */
return new View();
}
/**
* @returns View
*/
public function with($foo, $bar){
/* do stuff */
return $this;
}
}
这样,无论何时调用with
,都会返回类实例,而后者又可以调用:
View::make("foo")->with("foo")->with("bar");
// Will be same as:
$v = View::make("foo");
$v = $v->with("foo");
$v = $v->with("bar");