我已阅读过Laravel文档,但仍然不清楚。由于它对我来说很模糊,每当这个词与另一个概念有关时,也很难理解这个新概念。
答案 0 :(得分:14)
Laravel服务容器用于解析所有Laravel控制器。因此,您可以在其构造函数中键入提示控制器可能需要的任何依赖项。声明的依赖项将自动解析并注入控制器实例:
<?php
namespace App\Http\Controllers;
use App\Repositories\UserRepository;
class UserController extends Controller
{
/**
* The user repository instance.
*/
protected $users;
/**
* Create a new controller instance.
*
* @param UserRepository $users
* @return void
*/
public function __construct(UserRepository $users)
{
$this->users = $users;
}
}
如您所见,控制器将自动为您创建App \ Repositories \ UserRepository实例,这非常方便
您可以详细了解这些功能here
答案 1 :(得分:13)
类型提示并不是Laravel独有的...这是一个简单的解释。
没有类型提示的示例:
function foo ($arr = array(), $str = '') {
var_dump($arr);
var_dump($str);
}
此函数需要一个数组作为第一个参数,一个字符串作为第二个参数。但没有什么可以强制执行的。我可以用两个字符串调用foo()
,但没有问题。
类型提示示例:
function foo (array $arr = array(), $str = '') {
var_dump($arr);
var_dump($str);
}
这里唯一的区别是array
之前的类型提示$arr
。现在尝试用两个字符串调用该函数将返回致命错误,因为第一个参数必须是数组。
有关进一步说明并找出支持的类型提示,请参阅documentation。