PHP для маленьких

Хочу запропонувати легкий курс статей, який допоміг би початківцям, а у стареньких викликав би лише теплу посмішку на обличчі за прожиті роки, спрямований на просте освоєння концепції MVC.

Курс статей, покликаний розповісти новачкові про те, як насправді влаштовані такі страшні гіганти, якPHP MVC Фреймворки.

Курс ні в якому разі не претендує на звання«Всеосяжний посібник:„Зроби сам все те, що вже давно винайдено“», але допоможе зрозуміти найменшим і тільки програмістам світу веб, що починають, як усе це написано, та ще й працює. Але перш ніж завантажувати тоннами коду, необхідно розібратися з самим поняттям MVC. Що це таке? І ось, PHP профі вже не можуть терпіти, не вставивши: "Знову ця банальщина про ази, патерни та інше." Заспокойтеся, дорогі мої, не забувайте, що колись і ви не розуміли половину того, що зараз у вас викликає нестримний сміх, колись і вам доводилося сидіти з повним горем очима після чергового "@include( );" і саме ви колись також не знали про повсякденне "Модель-Уявлення-Контролер". Тому давайте не будемо глумитися над маленькими і тільки початківцями PHPшниками і дозволимо їм відчути себе такими ж митцями, або навіть творцями свого коду, якими вже є ви! А також не забувайте, дорогі гуру, що повторення – це мати вчення.

Тепер про насущне.MVC— це всього лише набір шаблонів проектування (патернів) вашої програми, який передбачає поділ вашого коду на три складові:Model(Модель),View(Уявлення),Controller(Контролер). Простіше кажучи, MVC - це набір патернів, що дозволяє розділяти може бути трохи сумбурний код, на три незалежнічастини -дані-вид-логіка. От і все! Можливо ви вже давно використовували таку архітектуру додатків, але не знали такої прекрасної назви. Але тепер ви можете трохи розпрямити плечі, надути груди колесом і задерти голову вгору зі словами: "А я ще нічого!".

Але цього поки мало, слід трохи розібратися з кожним із цих трьох китів, тому давайте швиденько розчистимо поле для уявлень і розгорнемо барвисту і яскраву картину світобудови MVC.

Отже, все що ми бачимо на сторінці, що можна доторкнутися, спонукати - це і є уявлення . Воно може включати HTML розмітку, скрипти, стилі та інші елементи інтерфейсу користувача. Але вистава — це лише сцена нашого театру, яка не має нічого більшого, ніж гарне оформлення. Так, сцена може бути красиво-оформленою, з гарною постановкою світла, декорації можуть бути виконані з приголомшливих матеріалів, але без акторів вона нікому не потрібна, вона - обгортка, що шарудить.

Чинними особами нашого театру виступають актори, які задовго до прем'єри готуються до своєї ролі; годинами репетирують монологи, ставлять мову, грають бровами. Актори, як ніхто інший, знають про свого персонажа все. Ці актори ємоделіконцепції MVC. Кожна модель має набір даних, якими можна оперувати, використовуючи певні методи.

Ось у нас є сцена, є актори... здавалося б, що ще потрібно для захоплюючої вистави? Думаю, не вистачає оригінального сценарію. Сценаристи повинні поставити все на свої місця: вказати акторам де їм грати, розставити гармонійно декорації, підтримувати логічний ланцюжок подій протягом усього спектаклю. Ви, напевно, вже зрозуміли, що йдеться проконтролерів, на плечах яких лежить підтримказв'язку користувача з програмою.

Ось тепер наша вистава готова приймати оплески глядачів, які перебувають у захваті від постановки. Але на практиці досягти такого ефемерного успіху виходить не відразу, тому що концепція MVC виходить далеко за межі цих трьох букв, також далеко як реалізація та застосування цього набору шаблонів проектування. Спочатку «4» складно зв'язати трьох китів, а тим більше лаконічно описати контролер, який не був би схожий на окремий модуль, що містить безмежне число бізнес-логіки, купи перевірок і валідаторів. Додайте до всього цього шепітку "умілих ручок" при роботі з моделями, і вуаля - свіжоспечений шматочок "товстого контролера" подали до столу. У цьому немає нічого страшного, і навіть образливого, дорогі програмісти, адже якщо ви це побачили — то ви ростете!

Тепер повернемося до наших "акторів". Уявіть виставу, в якій усі актори тільки займаються тим, що читають завчені ролі, не прикрашаючи емоціями всю яскравість щастя або глибину трагедії подій, що відбуваються. Похмуро, чи не так. А тепер давайте уявимо моделі, які тільки цим і займаються, що виступають у ролі сумних акторів, не роблячи жодних дій з даними, крім як реалізуючи примітивний доступ до бази даних. Як ви вважаєте, якщо хтось покладе свої обов'язки на іншого, чи добре це буде?Правильна відповідь: ТТУК.Необхідно простопідгодувати моделідо потрібного стану, вирізаючи зайве з контролерів, щоб кожен займався своєю справою.

Що ж до декорацій нашої сцени, дорогі програмісти, то давайте на секунду пригадаємо репліку з доброго радянського мультфільму: "Ви що ж, за мене і їсти будете?"... Не варто перекладати на подання різносольніроботи, не пов'язані з його натурою.

Звичайно ж, дробити концепцію MVC можна з точністю до кожного шаблону, що застосовується у фреймовику, головною ж метою цієї статті булолегке і ненав'язливе донесення короткої, але барвистої інформаціїпро таку повсякденну концепцію якМодель-Уявлення-Контролер.

Ви можете допомогти і перевести небагато коштів на розвиток сайту