Создание CMS на php — 6 урок (Router ч. 2)

Автор Lyudmila Yeriomenko
Создание CMS на php — 6 урок (Router ч. 2)

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

Ну пока, что нам нет смысла их создавать потому, что у нас нет не контролировали роутер толком не дописан поэтому сейчас я — это всё за комментирую ты. Давай сейчас вместе все подумаем над нашей структурой. У нас есть папка админ.

Мы все знаем, что там будет лежать там будет лежать все файлы которые будут отвечать за административную панель контроллеры модели папки Content у нас лежат плагины темы и атлас.

Но нам нужно куда-нибудь положить контролеры самого движка которые обрабатывать файлы шаблонов. Ну и так далее и чтобы не создавать отдельную папку в корне. Чтобы не платить 10 директории я предлагаю создать папку термос внутри angine то есть этот движок внутреннего будет лежать сама. СМС открываю нажимаю на папку Engine и создаю новую директорию тем nutricia. МАЗ директория контроля также там будет директория модель. Давайте добавим директорию. Ну пока, что думаю нам хватит потом по мере необходимости мы добавим ещё директории дали внутри папки Enjoy мы создадим PHP Class и назовем его контроллер контроллер — это будет. Шторм уже поставил и пока, что он будет пустой. Хотя номер точно уверен, что у нас там будет конструктор. Давайте моего создадим конструктор который будет принимать контейнер пока, что мы ничего писать не будем. То есть у нас будет конструктор который который будет принимать 2 контейнера пока, что нам — это он достаточно мы сейчас его не будем пользоваться контроллер, но чтобы вы знали, что этот файл нас будет обязательно здесь он будет принимать где контейнер и все остальные контроллеры вот здесь будет. Будут следовать и таким образом при наследовании они будут получать все зависимости и во всех остальных мы сможем использовать все эти сервисы которые мы там подключаем. Ну, а теперь мы давайте допишем наши роутер если мы успеем то мы в этом уроке его допишем. Заходим в наш кот роутер открываем его и создадим дисфункцию называться она будет есть по принимать. Она всегда будет два параметра. Первый параметр — это метод второй параметр. Юрий Вадим следующий метод названием. Агент диспетчер и выше нам понадобится приватная переменная диспетчер в этой функции мы будем проверять. Если Азиз диспетчер Ravenol, тогда здесь мы будем делать никакие действия и там ещё всё обдумаем, но в итоге эта функция будет возвращать. ЗИС диспетчер. Знаете нам понадобится ещё один класс называть будет ural. Исфара Чорку. Супермен спросила — это меня радует классе будет приватная переменная метод хранить она будет себе массив с нашими типами методов. То есть — это будет Get и Post для начала потом появится ещё какие-то и здесь ещё одна будет приватная переменная провод с Get пустой массив пост пустой массив то есть где там будут добавляться роботы. Степан Get A Boss типом пост и ещё одна приватная переменная patterns будут пацаны для передачи каких-то там сегментов. Пусть — это будет int следующего на. РСТ какой-то общий. Это Давайте напишем патрон для кента 9 + сейчас я быстро напишу регулярное выражение для строки ошибочка — это тоже самое только у нас там 09 ещё дописывается вот такие вот способом дальше допустим функция будет Public path pattern по какому-то ключу равняться он будет — это мы будем всегда аргументом в общем если нам нужно будет добавить ещё какой-то подарок и так мне здесь очень не хватает блоков писать блоки нужно. Вот так вот когда всё красиво. Доля у нас будет ещё один. МТС патч принимать он будет параметры, что и здесь первым делом в нём нужно получить роутер нас будет храниться в этом массиве приват переменной роутер поэтому. Давайте сразу полученными передадим туда метод. Какие роботы какого метода нужно получить допустим Get туда будут попадать и. Давайте на всякий случай приведём наш метод к верхнему регистру. То есть у нас там ключи в верхнем регистре этот метод привозят строку к верхнему регистру и дальше мы сделаем проверку может быть слышали есть такой array Key exists Method. Существует ли ключ в массиве наш ключ, а то будет курить. А проверять мы будем в массиве роутер который мы вот здесь получим если он существует то здесь нам нужно создавать. Нам нужен ещё один класс. Давайте его создадим dispatched роутер OK если будет тебе приватные переменные — это контроллер и параметры дальше у нас будет куда мы будем их передавать. Если честно я уже то, что я сейчас делаю. Я уже где-то видел этот подход и. Мне он понравился поэтому ничего нового. Я не создаю так будет равняться нашим контролером параметры будет равняться ещё. Давайте здесь укажем, что — это по умолчанию — это массив. Вот такая штука и так давайте мы сейчас уже просто им гетры вот Get Control. Вот для этого нам нужны гетры. Помните я говорил мы будем этим пользоваться и Get параметр вот так вот и. Конструктор В принципе с этим классом. Мы закончили, а дальше мы будем его использовать и вы поймете. Как и где заходим наш. Урал диспетчер и здесь если допустим ключ такое существует мы будем создавать новый объект dispatched роутер вот он и будем передавать туда ваши параметры и собственно какой параметр, тогда будем передавать именно. Тот который мы нашли. Ну в смысле мы нашли если мы допустим нашли какой-то ключ то мы возвращаем True и мы собственно и возвращать которую мы нашли из стали мы в этом массиве вот этот ключ значит мы возвратим этот ключ. Изотова массива и получим то, что она нужна вернем.

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

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