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

Създаване - красива - CNC връзки (URL) към сайта, от yii2 помощта на класните правила urlmanager

За тези, които не знаят - CNC (съкр на "chelovekoponyatny URL», английски приятелски URL ..) - URL е път, състояща се от ясни думи, вместо идентификаторите, и отразява структурата на файловете на сайта.

В тази статия ще обсъдим как да се направи "красиви" връзки (или това, което трябва да се) към вашия сайт чрез създаване yii2 им класни правила Yii2 urlManager компонент. Трябва да се отбележи, че създаването на един клас и отделна таблица в базата данни за него - той е доста радикален подход, а може би ще се създаде само още полета за "охлюв" и да зададете правила urlManager както тук.

Ето няколко примера за това, което получаваме в крайна сметка:

Тук можем да предпише няколко правила, чието използване yii2 не трябва да използва базата данни. Ние ги сложете да се свърже нашия клас SefRule на масите "правила", според когато тяхната програма се използва, преди да достигнат следващите редове. И това е така:

Също така в urlManager конфигурационния компонент деактивираме изхода на входна точка - index.php страницата и други официални надписи (маршрути задача) и да се забрани рамки за неспазване на правилата ни доброволно да се търси начин за отваряне на заявената страница (премахване на дублиращите страници).

Създаване на правила CNC клас.

Както може да се види от правилата urlManager. клас ще се намира в общи \ компоненти. По-долу е пълен код SefRule.php файла.


SefRule нашия клас наследява методите на класа на обекта, и прилага UrlRuleInterface интерфейс. Тя се състои от две основни техники, едната от които createUrl () - показва URL адреса на базата данни във формата, в която се нуждаем, а вторият parseRequest () преобразува въображението ни под формата на стандартен за Yii2. Това означава, че съответства на URL от всякакъв вид с базата данни, връщане на нормалния URL. Всички тези методи - стандарт, те не могат да се преименува.

createUrl на метод () Имам контролери (мината е PostController и SiteController), извличането на страници, които ще бъдат добавени към .html префикс. което показва, че това е статична страница.

Създаване - красива - CNC връзки (URL) към сайта, от yii2 помощта на класните правила urlmanager

Сега за базата данни.

За тези, които използват Yii миграция за работа с базата данни, публикувайте съответния код:

Можете да създадете ръчно. А именно - на масата се обадих SEF. има само 3 области:

  • ID (primaryKey, auto_increment);
  • връзка (VARCHAR (255));
  • link_sef (VARCHAR (255)).
маса в PhpMyAdmin попълнено данни може да изглежда така:

Създаване - красива - CNC връзки (URL) към сайта, от yii2 помощта на класните правила urlmanager

След контролера е необходимо да се уточнят действията, в който се посочва файла за показване на страницата. За справки, които са взети от базата данни, имам тази гледна точка. Допълнително посочените номер специално за влизане / колона / етикет, върху които вземане на проби от базата данни.

Това е всичко, сега имаме кратка, ясна URL адрес. И на страниците на нашия блог, няма да бъдат наречени 1,2,3 и имат свой собствен URL-име. За удобство, можете да свържете автоматично прехвърляне на URL-псевдоним в сайта на администратор при създаване / редактиране на постове и други неща. Но това е материал за друга статия.

Приемам поръчки за създаването на сайтове и уеб-приложения, използващи най-популярните на PHP-рамки Yii2 и Laravel-5.
Подкрепете проекта - споделете линка, благодаря!