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

Zend_Controller_Front прилага "модел Front Controller. се използва в приложения »MVC. Неговата цел е да се инициализира искане околната среда, маршрут на входящия искането, а след това изпраща всякакви открити действия. Той обобщава коментарите и ги връща, когато процесът е завършен.

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

Zend_Controller_Front регистрира брокер плъгини (плъгин брокери), които позволяват използването на плъгини проследяват събитията, инициирани пред контролер. В повечето случаи, това дава възможност да се приспособят процеса на изпращане на сайта без удължаване на предната контролера, за да добавите функционалност.

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

Забележка. Поведението по подразбиране
По подразбиране, предната контролер зарежда ErrorHandler плъгин и помощник за действие ViewRenderer. Това се прави, за да се опрости обработката на грешките и оказване на вашите контролери, съответно.
За да забраните ErrorHandler. да се обадя в метода на следващата експедиция ().

// Деактивиране на ErrorHandler приставката:

$ Front -> setParam # 40; "NoErrorHandler". вярно # 41; ;

За да забраните ViewRenderer. Следвайте тези стъпки, за метода на повикване изпращане ().

$ Front -> addControllerDirectory # 40; "../modules/foo/controllers". "Foo" # 41; ;

Забележка. Ако използвате addControllerDirectory (), без името на модула, той ще създаде директория за модула по подразбиране. Ако директорията, вече съществува, то ще бъде презаписан.

Можете да получите текущите настройки за директорията на контролера с помощта getControllerDirectory () ;. Тя ще се върне множество двойки единица => директория.

Един от най-предната контролер е, че може да се определи с модулна структура от директории за създаване на самостоятелни компоненти, които се наричат ​​"модули".

Всеки модул трябва да се намира в директорията си и да отразява структурата на директориите на модула по подразбиране - т.е. тя трябва да съдържа най-малко под-директория "контрольори"; с нея, като правило, не е "видяна" поддиректория поддиректория и друго приложение.

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

Ако искате да получите по пътя към конкретен модул или текущия модул, можете да използвате наричаме getModuleDirectory (). име предаване модул, той се връща на пътя към него, в противен случай тя ще показва пътя към текущия модул.

изпращане (Zend_Controller_Request_Abstract $ поискване = нула, Zend_Controller_Response_Abstract $ отговор = нула) е "работен кон" пред контролера. Тя може по избор да вземе предмета на заявката и / или обект отговор. който дава възможност на разработчиците да прехвърлят своите обекти.

Ако методът на изпращане () не е заявка или отговор обект се предава, тя ще проверява обектите и използвайте такива, които или конкретни примери версия подразбиране (и в двата случая, ароматът на HTTP ще се използва по подразбиране) са били регистрирани преди.

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

Процесът на изпращане има три различни събития:

Routing се случва само веднъж, когато се обаждате на изпращане (). чрез стойностите в обекта поискване. Scheduling се извършва циклично. Искането може да показва множество действия, администраторът или плъгин да възстановите искане допълнителен предмет да се позове на други действия. Когато всичко е направено, предната контролер връща отговор.

Zend_Controller_Front :: пробег ($ пътека) - статичен метод, като просто пътека до директория, съдържаща контролери. Тя извлича инстанция на предната контролер чрез getInstance ()), регистрира път през setControllerDirectory (). и край призовава изпращане (метод).

По принцип, тече () е удобен метод, който можете да използвате, когато изграждането на уеб сайт, който не се нуждае от специална настройка на предния контролера.

// конкретни примери пред контролер, настроен контрольор директория и

// график за изпълнение в един разговор:

Zend_Controller_Front. тичам # 40; "../application/controllers" # 41; ;

Допълнение към методите, описани по-горе, има Accessor методи, които могат да бъдат използвани за контрол на конфигурацията на предната контролер - и едновременно класове, към които предните контролер делегатите.

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

(Задаване | GET) DefaultControllerName () нека да посочите различно име на администратора по подразбиране (използва по друг начин # 'Index #') и да получите текущата стойност. Те служат като заместител на диспечера.

(Задаване | GET) DefaultAction () нека да посочите различно име на действието по подразбиране (използвани по друг начин # 'Index #') и да получите текущата стойност. Те служат като заместител на диспечера.

(Задаване | GET) Заявка () се указва класа на искане или обекта, за да се използва по време на процеса на изпращане и извличане на текущия обект. При инсталиране на обект заявка, можете да подадете молба името на класа, в който случай методът ще зареди клас файл и да го конкретни примери.

(Задаване | GET) Router () се указва класа рутер или обекта, за да се използва по време на процеса на изпращане и за извличане на текущия обект. При определяне на рутера обекта, можете да предадете името на класа рутер, като в този случай методът ще зареди клас файл и да го конкретни примери.

При отстраняване първата проверка е направена рутер обект представени ако предната контролер такъв обект и ако не, създава обект по подразбиране рутера (Rewrite рутер).

(Задаване | GET) BaseUrl () да даде възможност за задаване на база URL. който ивица при насочване на заявките и да получава сегашното си стойност. Тази стойност се предава искане обект директно на маршрута.

(Задаване | GET) експедитор () ви позволяват да определите диспечер клас или обект, за да се използва по време на процеса на изпращане и извличане на текущия обект. При определянето на диспечер обекта, можете да предадете на името на класа на контролера, като в този случай методът ще зареди клас файл и да го конкретни примери.

Когато сваляте диспечер обект, методът първо проверява дали е представено в предната контролер такъв обект и в нейно отсъствие мениджър създава обект по подразбиране.

(Задаване | GET) отговор () се указва класа на отговор или обекта, за да се използва по време на процеса на изпращане и извличане на текущия обект. При инсталиране на обекта за отговор, може да премине на име на клас отговор, в който случай методът ще зареди клас файл и да го конкретни примери.

registerPlugin (Zend_Controller_Plugin_Abstract $ плъгин, $ stackIndex = нула) дава възможност на приставките да се регистрират обекти. Чрез задаване на опция $ stackIndex. можете да контролирате реда, по който се изпълняват плъгини.

unregisterPlugin ($ плъгин) позволяват да се отпиша плъгин обекти. $ Plugin може да бъде или плъгин обект или низ уточняващи класа на приставка към отмените регистрацията.

throwExceptions ($ флаг) се използват, за да включите / изключите възможността да се хвърлят изключения по време на изпращане. По подразбиране, изключения са уловени и пуснати в обекта за отговор; throwExceptions включване () ще заменят това поведение

returnResponse ($ флаг) се използва, за да разкаже пред контролера - дали да се върне отговор от изпращане () (TRUE), или ако отговорът трябва да бъде автоматично, излъчвана (FALSE). По подразбиране, отговорът е автоматично (чрез обаждане Zend_Controller_Response_Abstract :: sendResponse ()); включване returnResponse () ще замени това поведение.

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

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

setParam ($ име, $ стойност) ви позволява да настроите един единствен параметър от $ име със стойност $ стойност.

setParams (масив $ PARAMS) ви позволява да настроите няколко параметъра в същото време с помощта на асоциативен масив.

getParam (име $) ви позволява да премахнете един параметър в даден момент, като се използва името на име $ като идентификатор.

getParams () ви позволява да изтеглите всички параметри наведнъж.

clearParams () позволява да се премахне един параметър (низ от Предаване на идентификатора), няколко параметри (чрез подаване на масив от низове идентификатори) или цялото параметри стека (без предаване на нещо).

Има няколко предварително дефинирани настройки специално за използване във веригата на изпращане:

useDefaultControllerAlways използват, за да покаже на диспечера. тя трябва да се използва контролер по подразбиране в модула по подразбиране за всяко искане, което не е Dispatchable (т.е., модул, контролер и / или действие не съществуват). По подразбиране тя е изключена.

Вижте. Изключения в MVC, с които можете да се срещнете за повече информация относно използването на тази настройка.

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

noViewRenderer използва за деактивиране на ViewRenderer. Задаване на този параметър, за да е вярно, за да го изключите.

noErrorHandler използва за деактивиране Грешка Хендлър приставката Задаване на този параметър, за да е вярно, за да го изключите.

В поредица от предната контролер, необходимия минимум, замени метод getInstance ().

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