ПредишенСледващото

В предишните постове, ние сме разработили минимална структура на рамката. В тази статия, ние се движат малко гланц - добавете една проста тема с bootstrap'om, менюта, и по-отблизо работата на шаблон и рутер (сайт на рутера).

В последната статия, ние създадохме рутер. който е с помощта на логиката на регулярни изрази признава входящо SEF връзка и насочва желания контролер и неговия метод.

Т.е. на такава линия

Router прави масив

Ние не за последен път да се напише един пример за използването на такива решения. За да се оправят, но преди това ще се промени рутера.

Носим редица правила в рамките на рутера конфигурационен файл. Този масив ще запълни разработчиците, които ще пишат на нашия сайт рамка. Поради това следва да бъде възможно най-достъпно.

Също така, можете да видите, че сме се променили от дясната страна на масива.

Направете промени в кода на рутер. и след това се анализира ефективността му.

Първо попълнете масив от стойности за umolchantyu изходни данни, които ние вземат от нашия config.php. Тогава ние разбор пътя на въвеждане $ за наличие на получите променливи. Ако е така, тогава те просто трябва да добавите към изхода на масив. parse_url - споделя адреса в компоненти. Един от тези компоненти е заявка. Това е всичко, което е в него след въпросителния знак

Този ключ = стойност параметър низ от своя страна прави разбор на функция parse_str

С низ на заявката част разбрах, сега с помощта на правилата на регулярни изрази, изберете пътя на необходимите данни.

На линия 12, можем да видим през всички правила от довереник. На 13 проверка - дали друго правило съвпада. Ако отговорът е да, тогава ние се масива резултати и последователно замени неговите елементи - от дясната страна на правилото.

Обикновено работи "([а-Z0-9 + _ \ -] +) / ([а-Z0-9 + _ \ -] +) / ([0-9] +) '=>' $ контролер / $ действие / $ номер ",

След това, масив на резултатите от прилагането й към лявата страна на входния низ / потребител / профил / 15 ще бъде масив

Разглеждане на този масив започвайки с втория елемент се заменя от дясната страна на правило $ контролер / $ действие / $ бутоните ID $ ([A-Z] +)

Т.е. по линия 14, всеки път, когато на мястото на дясната ръка на правилото се променя непрекъснато, така че

На пръв поглед - това е безсмислено актове. Какво ред е празен входния / потребител / профил / 15 а и да се прилагат правилата за излизане

Но това е само на пръв поглед. На изхода сме стандартизиран на URI, които се взривят прилагане операция, ние получаваме в първия елемент от името на контролера, а вторият - на метода в настърган - ID

За по-голяма яснота, за да добавите към края на масива на правилата в config.php, обикновено

В резултат на това правило, нашият рутер lyubuy искане HTML страница (например /about.html без контролер и метод), изпрати на страница контролер и начин за четене на, и в параметъра номер ще се подредят около

Ние използваме този пример, за да създадете блог на базата на нашата рамка. Въпреки това, на първо място, за да се подобри шаблона

темплейт

За да започнете да си направите шаблон за нашата рамка, ние potrbuetsya налага никакъв HTML страница. Например, вземете безплатен тема с butsrapa сайт

Натиснете Ctrl + U в браузъра си и просто да копирате всички от изходния код в viws / 'main.php' файла - това е шаблон. Но тя все още трябва да бъде финализирана. Изтриване на всички стилове на връзката и скриптове, чрез HTML код. Ние ще се свърже с необходимите скриптове чрез PHP. Това дава известна увереност, че във всеки шаблон винаги ще бъде набор от вашите рамкови файлове, независимо от това дали им програмист използва в оформлението.

За стилове и скриптове в основата на проекта създадете папка. Често по-нататък активи. и подпапки - CSS - за стилове, JS - за скриптове и изображения - за изображения. В този случай, последната папка, която искате да използвате само тези изображения, които са участвали в проектирането на обекта, а не в пълненето му. За плънката е по-добре да се разпределят отделна директория - медийни / изображения в схемата на сайта.

Ние пропуснете фърмуера свеж и последна JQuery. Сложете ги в папка активи / JS / LIBS /. Други стилове нишки трябва да си изтеглите.

Всички стилове и скриптове са в техните папки, но как да ги свързват. В нашия шаблон двигател не разполага с такива практики. Те трябва да се напише. Добавете ги ние ще бъдем в идеална / класове / controller.php файл. Добавете следните методи

  • частен функция addAsset ($ връзка, $, където = 'главата', $ актив = 'скрипт ", $ тип =" URL ")
  • обществена функция addScript ($ връзка, $, където = 'главата')
  • обществена функция addStyleSheet ($ връзка, $, където = 'главата')
  • обществена функция addScriptDeclaration ($ връзка, $, където = 'главата')
  • обществена функция addStyleSheetDeclaration ($ връзка, $, където = 'главата')

Ние трябва да се напише код за метод addAsset, като всички други методи - предизвикателство addAsset с различни параметри, и са направени повече за удобство.

Добави в клас следващото поле

Тя ще се съхранява информация за всички свързани стилове и скриптове. Следваща addAsset код

$ Hash - се изчислява само за да не се свържете със страницата на един и същ скрипт два пъти. $ Къде - е място, където се свързваме скриптове. преди или преди т.е. в началото или в края на документа.

Допълнителни методи за

AddAsset само метод изпълва активи данни масив $, но данните все още трябва да бъдат приложени. Ето защо, ние пренапише метода направи. Преди това той е изведен 'main.php'. Това не е напълно вярно. Ще направя за тази цел е друг метод renderPage

Метод с използване на данни от активите, генерира връзката необходимата маркер за скриптове (или отдалечен файл, или инлайн) и ги добавя към желаното място в документа,

Методът ще се нарича по метода започне App клас след стартиране и тестване на контролера.

Методът за старт на идеални / класове / App.php

Тук ние използвахме нашия наскоро рутер priisvoiv резултат на неговата работа на полето URI. Сега, където и да е в нашата рамка, ние може да получи следната информация

  • App :: GI () -> uri-> контролер - името на контролера
  • App :: GI () -> uri-> действие - името на метода на контролер
  • App :: GI () -> uri-> ID - идентификатор

И всички други променливи, заявките ще бъдат dostapny чрез тази област. Тя може да се използва например за определяне на активна позиция в менюто.

След това е познатата комбинация ob_start - обадете се на метода на управление - ob_get_clean, и на изхода на контролера се предава на renderPage

Дори и вие трябва да сте забелязали връзката на някои скриптове и стилове на линии 10 и 19. Това са външни стилове и скриптове, които ще бъдат свързани чрез config.php. И за да го направи по-просто за удобство на използване на рамката. Например, ние може да направи връзката и JQuery фърмуера "клин" в config.php и те ще бъдат свързани с някой от нашата тема и да е страница, генериран от нашата рамка. Удобен е, нали?!

Като се има предвид структурата на папките, които организирахме по-високо в config.php ние добави следното два масива

Тъй като рамка вече е приличен външен вид, то тогава може да се постави на обществен показ. Сега работата му могат да се внесат тук

контролер страница

При добавянето на още едно правило в нашия рутер, аз се позова на страница контролер и неговия начин на четене. Това е доста проста, създайте го в приложение контролери / PageController.php папка /

там създават още изгледи папа / страница / страници. и в него желаните страници. Например about.php

Изходният код на крайната рамка за преглед и изтегляне

Как да се разработи рамка

Свързани статии

Подкрепете проекта - споделете линка, благодаря!