Laravel artisan 初始化中代码的含义
Meaning of code in Laravel artisan initialization
我决定查看 artisan 是如何在 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);
这是 link 的来源
https://github.com/laravel/framework/blob/4.2/src/Illuminate/Console/Application.php
with
方法是一种辅助方法 (Laravel helper methods),它允许您进行方法链。 es专门在PHP5.3.X环境
来自文档
$value = with(new Foo)->doWork();
这会在 class Foo 上创建一个新实例并在 Foo
上调用方法 do
来源
if ( ! function_exists('with'))
{
/**
* Return the given object. Useful for chaining.
*
* @param mixed $object
* @return mixed
*/
function with($object)
{
return $object;
}
}
当你向它提供一个对象的实例时 -> 它会 return 这个实例。现在您可以调用此对象的方法或属性了。
这与执行以下操作相同:
$foo = new Foo();
$value = $foo->doWork();
来自代码注释:
Create a new Console application.
我想你会问更多关于如何做的事情。
- 它调用class 构造函数来创建一个新实例。查看 symfony class 以获取有关构造函数的更多详细信息。
- 使用
with()
允许链接调用其他方法 setLaravel()
、setExceptionHandler()
等,最终设置 Laravel 应用程序实例。
要了解有关 new static
的更多信息,请查看此问题:New self vs. new static。
我决定查看 artisan 是如何在 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);
这是 link 的来源 https://github.com/laravel/framework/blob/4.2/src/Illuminate/Console/Application.php
with
方法是一种辅助方法 (Laravel helper methods),它允许您进行方法链。 es专门在PHP5.3.X环境
来自文档
$value = with(new Foo)->doWork();
这会在 class Foo 上创建一个新实例并在 Foo
上调用方法 do来源
if ( ! function_exists('with'))
{
/**
* Return the given object. Useful for chaining.
*
* @param mixed $object
* @return mixed
*/
function with($object)
{
return $object;
}
}
当你向它提供一个对象的实例时 -> 它会 return 这个实例。现在您可以调用此对象的方法或属性了。
这与执行以下操作相同:
$foo = new Foo();
$value = $foo->doWork();
来自代码注释:
Create a new Console application.
我想你会问更多关于如何做的事情。
- 它调用class 构造函数来创建一个新实例。查看 symfony class 以获取有关构造函数的更多详细信息。
- 使用
with()
允许链接调用其他方法setLaravel()
、setExceptionHandler()
等,最终设置 Laravel 应用程序实例。
要了解有关 new static
的更多信息,请查看此问题:New self vs. new static。