Модела MVC и PHP, част 1

Модела Model-View-Controller (MVC). открит в края на 1970 г., тя е шаблони за дизайн архитектура, чиято основна задача е да се разделят на работните функции с данни от своите постъпки. На теория, една добре проектирана MVC-приложение ще даде възможност част и администраторския панел на разработчиците в хода на работата е да не се намесва в сферата на отговорност един към друг, което е, фронтенд разработчик не е необходимо да знае нищо за "кухнята" на подсистема за колеги и обратното.

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

Модела MVC и PHP, част 1

разбиране MVC

Както вече бе споменато, името на модела идва от съкращението на три думи: Модел (модел), изглед (изглед) и контролер (PLC). Накратко, моделът принцип на работа на може да се илюстрира със схема (оригиналната версия може да се намери в Уикипедия):

Модела MVC и PHP, част 1

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

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

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

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

идея

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

Има някои заблуди по отношение на целта на представянето, особено в средата на уеб разработки, които тепърва започват да изградят свои приложения, използващи MVC. Един от най-често се нарушават правилата е, че идеята не трябва по никакъв начин да общува с модела. и всички данни, получени представителство трябва да идват само от контролера. На практика, разработчиците често пренебрегват тази концепция, стоящи в основата на MVC-модел. Статията Фабио Cevasco на CakePHP рамка: Вашата първа Bite ясно показва, че това е объркващо подход към MVC по примера на рамка CakePHP, един от многото нестандартни MVC-рамки:

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

Освен това, там е често срещано погрешно схващане, че идеята - това е просто файл с шаблон. Както беше отбелязано от Том Бътлър, това погрешно схващане има огромен мащаб се дължи на факта, че много фирми от самото начало, неразбрани MVC структура, а след това започват да се налива "знания" на масите начинаещите програмисти. В действителност, една идея - това е много повече от просто един шаблон, обаче, много рамки, изградени на базата на MVC-модел, така изкривена концепция на идеята, че всеки, вече не ме интересува колко добре са техните приложения по отношение на MVC-модел.

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

контрольор

Контролер - това е последната част от вързопите MVC. Контролерът задача получава данни от потребителя и манипулация на модела. Това е най-контролера, и само той, е, че част от система, която взаимодейства с потребителя.

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

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

Аз предлагам да се опитат да въведат по-горе описаната в малка пристройка. Да започнем с това, че ще се създаде клас модел, да преглеждате и контролер: