我决定看一下工匠如何在Laravel 4.2中初始化并看到函数make($ app)
public static function make($app)
{
$app->boot();
$console = with($console = new static('Laravel Framework', $app::VERSION))
->setLaravel($app)
->setExceptionHandler($app['exception'])
->setAutoExit(false);
$app->instance('artisan', $console);
return $console;
}
我不是PHP的新手,但也不是主人......而且我无法完全理解(从PHP的角度来看)
$console = with($console = new static('Laravel Framework', $app::VERSION))
->setLaravel($app)
->setExceptionHandler($app['exception'])
->setAutoExit(false);
这是源的链接 https://github.com/laravel/framework/blob/4.2/src/Illuminate/Console/Application.php
答案 0 :(得分:2)
with
方法是一种辅助方法(Laravel helper methods),它允许您进行方法链。 Es特别在PHP 5.3.X环境中
来自文档
$value = with(new Foo)->doWork();
这会在类Foo上创建一个新实例,并在Foo上调用方法do
来自消息来源
if ( ! function_exists('with'))
{
/**
* Return the given object. Useful for chaining.
*
* @param mixed $object
* @return mixed
*/
function with($object)
{
return $object;
}
}
当您提供对象的实例时 - >它将返回此实例。现在,您可以在此对象上调用方法或属性。
这与执行以下操作相同:
$foo = new Foo();
$value = $foo->doWork();
答案 1 :(得分:1)
从代码中评论:
创建一个新的控制台应用程序。
我想你会更多地询问如何。
with()
允许链接调用其他方法setLaravel()
,setExceptionHandler()
等,最终确定设置Laravel应用程序实例。要详细了解new static
,请查看以下问题:New self vs. new static。