Spi*_*lot 5 php frameworks laravel-5
我已经阅读了Laravel文档,但仍然不清楚.由于它对我来说含糊不清,每当这个术语与另一个概念有关时,也很难理解这个新概念.
mis*_*tin 14
类型提示不是Laravel独有的......这是一个简单的解释.
没有类型提示的示例:
function foo ($arr = array(), $str = '') {
var_dump($arr);
var_dump($str);
}
Run Code Online (Sandbox Code Playgroud)
此函数需要一个数组作为第一个参数,一个字符串作为第二个参数.但没有什么可以强制执行的.我可以foo()用两个字符串调用,没有问题.
类型提示示例:
function foo (array $arr = array(), $str = '') {
var_dump($arr);
var_dump($str);
}
Run Code Online (Sandbox Code Playgroud)
这里唯一的区别是array之前的类型提示$arr.现在尝试用两个字符串调用该函数将返回致命错误,因为第一个参数必须是一个数组.
有关进一步说明以及找出支持的类型提示,请参阅文档.
Ser*_*nyy 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;
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,控制器将自动为您创建App\Repositories\UserRepository实例,这非常方便
您可以在此处详细了解这些功能