CakePHP : Manual11/BasicConcepts

Базовые концепции


Оглавление документа

Введение

Эта глава — короткое введение в концепции MVC а именно как они реализованы в Cake. Если Вы новичок в MVC (Model-View-Controller), то эта глава безоговорочно для вас. Мы начнем с подробного обсуждения основных MVC концепций, перейдем к специфике приложений MVC в Cake PHP, и покажем некоторые простые примеры Cake PHP с использованием MVC.

MVC

Model-View-Controller (Модель-Отображение-Контроллер) — это программный шаблон, который помогает вам логически разделить ваш код, сделать его многократно используемым и подлежащим корректировке, в общем улучшить. Впервые MVC был описан группой авторов единомышленников Gang of Four (Банда Четырех). Dean Helman писал (фрагмент из официального описания Objective Toolkit Pro):
«MVC — это метод разделения приложения, или даже куска его интерфейса на три части: модель, отображение, и контроллер. MVC была изначально разработана для того, чтобы «отразить» роль традиционных приложений в современные реалии графического интерфейса пользователя (GUI).
Ввод -> Обработка -> Вывод
Контроллер -> Модель -> Отображение
«Пользователь вводит данные из внешнего мира, визуальное отображение разделено и управляется моделью, отображением и контроллером. Контроллер интерпретирует введенные пользователем с клавиатуры и мыши данные и преобразовывает эти действия в команды, которые посылаются модели и/или отображают эффект примененных изменений. Модель управляет одним или больше элементами данных, реагирует на запросы о состоянии, и отвечает инструкциям по смене состояния. Отображение управляет прямоугольной областью экрана и ответственно за представление данных пользователю в графическом и текстовом виде.»


В терминологии Cake, Модель означает обычную таблицу/запись в базе данных, а также ее отношения к другим таблицам и записям. Модель также включает в себя правила верификации данных, которые применяются когда данные модели добавляются или обновляются. Отображение — это результат конечный вывод обработанной информации на экран пользователя, т.е. это обычные HTML-файлы, в которые внедрен PHP-код. Контроллер Cake управляет запросами сервера. Такой расклад позволяет пользователю вводить данные (URL и POST), затем применяется Модель для чтения и записи данных В и ИЗ базы данных и других источников, и, в конце-концов, обработанная информация попадает к файлам отображения.

Чтобы максимально упростить это, организовать ваше приложение, Cake использует этот шаблон не только для управления тем как объекты взаимодействуют с вашим приложением, но также и тем как сохранены файлы, более детально об этом дальше.

Обзор схемы размещения файлов Cake


Когда вы распакуете Cake на свой сервер вы увидите там три основных каталога:



В каталоге cake находятся основные библиотеки Cake, вам не понадобится их трогать.

Каталог app будет служить местом хранения ваших приложений и нужных им каталогов и файлов. Разделение между каталогами cake и app позволит вам иметь множество каталогов с приложениями, которые используют те же самый библиотеки Cake. Это также упрощает процесс обновления Cake PHP: вам достаточно только закачать последнюю версию Cake и перезаписать главные библиотеки в папке cake. Нет нужды волноваться, что вы перезапишите что-то, что вы написали для своего приложения.

Вы можете использовать директорию vendors, чтобы хранить там сторонние библиотеки. Вы узнаете больше о вендорах позже, но основная мысль в том, что вы можете получить доступ к классам, которые вы поместили туда, используя функцию vendor().

Давайте взглянем на полную схему размещения файлов: