有人可以给我一个定义"类型提示"对于Laravel 5框架

时间:2016-06-16 16:33:31

标签: php laravel-5 frameworks

我已阅读过Laravel文档,但仍然不清楚。由于它对我来说很模糊,每当这个词与另一个概念有关时,也很难理解这个新概念。

2 个答案:

答案 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