Создание CMS на php — 8 урок (Router, Controller ч. 4)

Автор Maksim Inshakov
Создание CMS на php — 8 урок (Router, Controller ч. 4)

Всем привет мы продолжаем писать нашу роутер в прошлом уроке мы почти дописали его мы теперь можем передавать на широты и они обрабатываются.

Ну то есть они определяют какой контроллер нужно запустить и какой метод в нём, но для этого. Давайте создадим наши контроллеры анаши контроля будет лежать внутри папки xemose вот мы уже создавали папу Controller и внутри этой папке создадим какой-то 1 Controller. Пусть — это будет Home Controller и.

Давайте представим примерно как он должен выглядеть с разным Space пропишем тема scontrol также помните мы внутри папки Engine уже создавали контроллер абстрактный и будет передаваться объект то есть где контейнер и.

Вот все наши контроллеры в самой. СМС должны наследовать этот абстрактный контроллер Dance когда мы наследуем какой-то контроллер то нам вот так вот то есть если мы допустим от пятен.. Шторм подсвечивает, что мы можем импортировать этот класс с помощью юсб. Теперь мы можем наследовать использовать юфс — это даже так сказать для красоты кода. Ну Так приятнее читается смотрятся код вот сейчас мы не то чтобы пишем наш контролирую так сказать представляем каким он будет и у него будет конструктор. Витя у нас он уже понял здесь будет параметр передаваться потому, что мы наследуем от нашего абстрактный контроллер и так как мы везде всё до комментируем и так PHP. Шторм довольно-таки ipro2 редактор он сразу понял, что здесь будет передаваться и вы наверное заметили здесь конструктор. Что — это значит. Это значит что. У нашего контроллера абстрактного есть как бы свой конструктор и при наследовании мы должны его тоже вызывать вот этот конструктор потому, что здесь будет создаваться сам этот контейнер. Это значит, что мы хотим потом как использовать конструктор родительского класса и. Давайте перейдём в наш абстрактный контроллер и создадим здесь первая перемена — это естественно protected вторая переменная протектор дебил, но пока мы использовать не будет. Поэтому пока, что упустим в самом конструкторе mail в запишем наш объект на HD контейнер и при передача аргумента. Давайте жёстко укажем правила, что мы на самом деле туда. Передаем предлагает импортировать класс. Ну и. Мы — это сделаем вот таким образом. Ну и пока мы с абстрактным контроллером закончим мы перейдём в home Controller здесь мы получили родительский конструктор ниже создадим метод Index page. Теперь мы перейдём в нашей темы помните мы создаем роутер dispatch вызываем дожди спать. Передаем туда необходимые параметры и здесь мы водим принтер роутер. То есть то, что у нас водятся вот здесь, а здесь нам выводятся тот роутер который сработал по вот этому пути то есть мы сюда вот видишь у нас получается главная страница сработал Home Controller Index и. Нам нужен нужно получить контроллер разбить его на 2 и то есть мы получаем сам контроллер и получаем. Яндекс метод как. Мы — это сделаем все вы знакомы с такой функцией лист получить класс и получить Action, что — это вообще за функция — это функция создает переменные и присваивает им значения из массива по индексу с 0 там. Яндекса и так далее 123. Сейчас я напишу всё и потом объясню как — это всё срабатывает list Class Action который мы всегда. Передаем будет равняться xplod все знают, что — это за функция она и строки создает массив ставим разделитель здесь мы получается в этом объекте метод Get Controller и указываем дымит, что нам нужно всего лишь два. Яндекса вот таким способом и сейчас я вам. Выведи на экран получается переменной класс. И сейчас мы. Выведи на экран, что у нас получается в этих переменных то есть переменные класс и, что внутри переменные Action какой-то разделитель постоянно. Как видите в переменной класса носком контроллер внутри переменной Action Index если допустим у нас будет сюда другой роутер передаваться. Витя изменилось — это то, что она была нужна. Как — это работает то есть мы в эту функцию лист. Передаем две переменные класса Action равно здесь создается массив то есть мы вызываем функция explode делаем разделитель сюда. Передаем строку Get Controller passthrough. А у нас вот этот получается вот он его разбивает — это 0 индекса. Вот — это 1 индекс и получается, что нулевому Yandex присваивается класс 1 индекс переменной Action и вот таким вот образом мы получили наш класс и нас наш Action которая соответствует вот этому работу получили. И теперь мы можем свободно их вызвать и так учитывая, что у нас теперь есть класс есть Action который нужно вызвать. Нам нужно только их вызвать вызвать. Мы можем с помощью Call User Func array, что делает эта функция давайте мы сейчас посмотрим php.net нам точно скажет, что она делает. Как видите есть функция foobar. Вот эта функция Call User function вызывает эту функцию и туда можно передавать параметры аргументы какие-то если допустим нам нужно вызвать как в нашем случае метод внутри какого-то класса находится тоннель. Передаем туда первым первым аргументом массив указываем этот объект и указываю место в котором которые нужно и. Ну — это же самое сделаем у себя сейчас. Передаем сюда массив массив у нас будет квадратные первый аргумент. Это будет наш класс так просто на глаз вызвать не можем 2 — это экшен так просто мы его вызвать не можем потому, что мы его.

0 комментариев
0

Читайте также