2017-01-02 2 views
1

Я смотрел на некоторые Laravel кода для некоторых новых идей для моей структуры, и я обнаружил, что они заявляют о своих экземпляры классов, как:Создание экземпляров класса как Laravel

Request $request; 

Который затем выступает в качестве ссылки на Request класса, я также заметил, что в коде Laravel добавлено пространство имен.

Я смотрел все вокруг PHP Manual, перечитайте OOP Manual, а также перечитать раздел namespace, а также, некоторый код, я пробовал:

// Includes a class called PSM 
PSM $psm; 
$psm->version(); 

Я понимаю, что это было бы под " альтернативный синтаксис ", а также не мог найти ничего под этим именем.

Я понял, что это было похоже на C# Syntax, тогда как при объявлении переменных или экземпляров класса вы даете им определенный тип данных, который с экземплярами является их собственным именем класса. (Может быть неправильное определение, главное, чтобы взять из этого был C# Сходство этого синтаксиса)

Как это может сбивать с толку, я говорю о создании экземпляра $request от просто набрав:

Request $request; 

Которая затем возвращает экземпляр класса в область действия Контроллера.

+0

Посмотрите на [зависимость] (https://laravel.com/docs/5.3/container) – devk

ответ

1

Речь идет о IoC. Вы можете связать любой класс, используя Laravel контейнер, а затем использовать этот синтаксис для решения этого класса:

function index(Request $request) 

Контейнер Сервис Laravel является мощным инструментом для управления зависимостями класса и выполнения инъекции зависимостей. Инъекционная инъекция - это причудливая фраза, которая по существу означает это: зависимости классов «вводятся» в класс через конструктор или, в некоторых случаях, методы «setter».

+0

Я понимаю это; мне интересно, как «Request $ request» связан с базовым синтаксисом PHP, чтобы это работало. :-) – Jek

+0

@jek Я думаю, что это не базовый синтаксис php! Laravel просто разбирает его и переводит его перед запуском! –

+0

@Jek google для 'зависимой инъекции' и' type hint php'. Я думаю, [это] (http://php-di.org/doc/best-practices.html) будет полезно читать. –

Смежные вопросы