Тема 5. Проектирование серверной стороны web-узла
Язык программирования PHP
PHP
PHP - «Hypertext Preprocessor» ранее (Personal HomePage) – это широко используемый язык сценариев общего назначения с открытым исходным кодом. PHP это язык программирования, разработанный для написания web-приложений (сценариев), исполняющихся на Web-сервере. Синтаксис языка берет начало из C, Java и Perl. Преимуществом PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц, так называемых DHTML (Dynamic HTML).
Примеры объявления переменных
$var_int = 1 - целочисленный тип$var_float = 2.45 - вещественный тип$var_string = «string» - строковый тип
Комментарии
// однострочный комментарий/* многострочный комментарий */
Условный оператор и оператор выбора
Оператор ifif (выражение) блок_выполненияОператор elseif (выражение) блок_выполнения_1else блок_выполнения_2Оператор выбора switchswitch (выражение или переменная){ case значение_1: блок_действий_1 break; case значение_2: блок_действий_2 break; default:блок_действий_по_умолчанию}
Циклы
for - цикл который выполняется определенное количество разfor (инициализация счетчика;условие;инкемент/декремент счетчика { ваш код;}while - цикл выполняется пока заданное условие истинно.while (условие истинно) { ваш код;}do...while – цикл выполняется один раз, а затем снова повторяет цикл, пока заданное условие истинно.do { ваш код;} while (условие истинно); foreach – цикл для перебора элементов массива..foreach ($array as $value) { ваш код;}
Вывод списка переменных окружения РНР
<?php phpinfo();?>Либо воспользоваться массивом $_SERVERПример: $_SERVER ["HOSTNAME"]
Фреймворки проектирования
CSS
Адаптивный веб-дизайн — дизайн веб-страниц, обеспечивающий корректное отображение сайта на различных устройствах.Twitter Bootstrap.Foundation и Skeleton - так же CSS фреймворки для создания сайтов с динамической версткой с похожим подходом.
Twitter Bootstrap
Twitter Bootstrap включает в себя HTML и CSS шаблоны оформления для веб-страниц, веб-форм, кнопок, меток, блоков навигации и прочих компонентов веб-интерфейсов, включая JavaScript расширения.
Основные инструменты Bootstrap
Сетки — заранее заданные размеры колонок, которые можно сразу же использовать, например ширина колонки 140px относится к классу .span2, который можно использовать в CSS описании документа.Шаблоны — Фиксированный или резиновый шаблон документа. Типографика — Описания шрифтов, определение некоторых классов для шрифтов таких как код, цитаты и т. п.Медиа — Представляет некоторое управление изображениями и Видео.Таблицы — Средства оформления таблиц, вплоть до добавления функциональности сортировки.Формы — Классы для оформления не только форм, но и некоторых событий происходящих с ними.Навигация — Классы оформления для Табов, Вкладок, Страничности, Меню и Тулбара.Алерты — Оформление диалоговых окон, Подсказок и Всплывающих окон.
MVC
MVC(Model-View-Controller) – шаблон проектировании приложения с помощью которых модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента таким образом Модель(model), Вид(view), Контроллер(controller). Шаблон проектирования обуславливает максимальное обособление этих компонентов, что бы они оказывали друг на друга минимальное воздействие. Так одна модель данных или и бизнес логика могут, к примеру, иметь несколько представлений. Данная архитектура хорошо подходит для создания веб- приложений. MVC фреймоворки: CodeIgniter; Zend framework; Laravel; Ruby onRails; ASP.net; Catalyst; Interchange;Django и др.
Microsoft ASP.MVC
Фреймворк для создания веб-приложения реализующий архитектуру, которая разделяет приложение на 3 основных компонента: Модель (Model), Представление (View), Контроллер (Controller). (Рисунок 1)
Модели
Объекты моделей являются частями приложения, реализующими логику для домена данных приложения. Объекты моделей часто получают и сохраняют состояние модели в базе данных. Например, объект Product может получать информацию из базы данных, работать с ней, а затем записывать обновленные данные в таблицу Products базы данных SQL Server.
Представления
Представления служат для отображения пользовательского интерфейса приложения. Пользовательский интерфейс обычно создается на основе данных модели. Примером может служить представление для редактирования таблицы Products, которое содержит текстовые поля, раскрывающиеся списки и флажки, значения которых основаны на текущем состоянии объекта Product.
Контроллеры
Контроллеры осуществляют взаимодействие с пользователем, работу с моделью, а также выбор представления, отображающего пользовательский интерфейс. В приложении MVC представления только отображают данные, а контроллер обрабатывает вводимые данные и отвечает на действия пользователя. Например, контроллер может обрабатывать строковые значения запроса и передавать их в модель, которая может использовать эти значения для отправки запроса в базу данных.
Создание первого приложения
Для того что тип ASP.MVC 4 проекта поддерживался Visual Studio необходимо установить его с веб-ресурса: https://docs.microsoft.com/en-us/aspnet/mvc/mvc4Далее после перезапуска Visual Studio в главном меню File->New>Project. Выбираем Web-шаблон и в нем ASP.NET MVC 4 Web Applicaton.В созданном нами типе проекта (Web API) по умолчанию два контроллера в каталоге Controllers: · HomeController.cs · ValuesController.csПо умолчанию представление в проекте только одно Views\Home\Index.cshtml.Запустим проект и далее редактируем так, как нам нужно.
Возможные варианты проекта
Возможные варианты проекта:Internet Application. Данный шаблон представляет некоторую базовую функциональность, например, управление учетными записями, которую будет содержать новое приложение.Intranet Application. Данный шаблон похож на шаблон Internet Application. Отличие состоит в том, что в Intranet Application для управления учетными записями используется аутентификация Windows, а не система ASP.NET Membership.Empty. Этот шаблон представляет абсолютно чистое приложение без каких-либо файлов и структуры папок.Basic. Этот шаблон также представляет пустой проект, но он содержит базовые каталоги, CSS, инфраструктуру приложения MVC.Mobile Application. Шаблон предназначен для создания веб- приложений для мобильных платформ.Web API. Предназначен для создания сервисов и для работы с фреймворком Web API.
Структура каталогов проекта
App_Start – в данном каталоге находятся файлы отвечающие за маршрутизацию запросов приходящих в наше приложение, за контроллер и действие (action) по умолчанию, а так же за упаковку статического содержимого, такого как CSS-файлы и javascriptбиблиотеки в один файлы для оптимизации их передачи в ответе на запрос.Content – в данном каталоге содержатся файлы относящиеся к оформлению: CSS-файлы и изображения темы оформления.Controllers – каталог с контроллерами.Images – каталог с изображениями.Models – Каталог с моделями данных.Scripts - Каталог со скриптами javascript.Views – Каталог с представлениями. В обычной практике, для каждого контроллера создаётся отдельный подкаталог, а для каждого действия в контроллере своё представление в виде отдельного файла (.cshtml).
CodeIgniter
Установка
1. Скачиваем с фрэймворк с официального сайтаhttps://codeigniter.com/2. Распаковываем в веб-среду(Денвр, XAMP, LAMP и.т.д.) в созданный нами хост, к примеру example_codeigniter.3. Запускаем браузер и вводим название http://example_codeigniter/4. Получаем приветственное сообщение (Рисунок 2).
aСтруктура каталогов
Application
Application - каталог вашего приложенияСтруктура каталога Application:сache – каталог для кэшаconfig — конфигурационные файлы сайта;controllers —контроллеры;models —модели;views—представления;errors — страницы ошибок;libraries — библиотеки, относящиеся к вашему приложению;hooks — файлы позволяющие изменить поведение ядра, без изменения самого ядра);language – файлы локализации;third_party – компоненты и модули сторонних разработчиков;
System
System – каталог с ядром фреймворка.
User_guide
User_guide – руководство пользователя.
index.php
index.php – стартовый файл.
Схема взаимодействия модулей
Схема взаимодействия модулейIndex.php – представляет собой front-controller, который инициализирует и запускает остальные модули и ресурсы фреймворка.Routing – маршрутизация HTTP-запросов.Caching – если есть файлы кэша для запрашиваемого ресурса, они напрямую отправляются пользователю.Security - перед загрузкой контроллеров, HTTP-запросы проходят стадию фильтрации на предмет безопасности.Application controller – контроллер загружающий модель, библиотеки, плагины, хэлперы и т. д.View – в конце происходит рендеринг представления запрашиваемой страницы. Если включен кэш, страница сначала сохраняется в кэш, а после передаётся пользователю.
Настройка конфигурационных файлов
В каталоге application/config в файл config.php:Путь к нашему веб-сайту. К примеру http://example_codeigniter/$config['base_url'] = ''; Для использование сессий необходимо, прежде всего, задать ключ шифрования «encryption_key»$config['encryption_key'] = ''; Язык по умолчанию.$config['language'] = 'english'; Разрешение на использование сокращенного синтаксиса для php$config['rewrite_short_tags'] = FALSE;
aРабота фреймворка по умолчанию
Так как в запросе не задан конкретный контролер, сработал контроллер по умолчанию, этот параметр указан в фале config/routes.phpпараметр: $route['default_controller'] = 'welcome'; контроллер по умолчанию указан 'welcome' расположенный в файле application/controller/welcome.php.В коде контроллера представлен класс с функцией Index (action по умолчанию). В нем запускается рендеринг представления командой $this->load->view('welcome_message') В данном случае 'welcome_message' – это название представления расположенного в application/views/welcome_message.php .
Создание собственного контроллера и обработчика
В каталоге Controllers создадим файл MyFirstController.php. Добавим в него 2 действия: по умолчанию (index) и действие для отображения и редактирования (edit).В каталоге views создадим подкаталог MyFirstController и 2 файла отвечающих за отображение для обоих действий из контроллера: default.php и enterValue.php.В HTML коде представлена форма с возможностью ввода одного параметра.В данное представление мы передаем значение из контроллера которое получаем из POST-запроса и выводим его в нужном месте просто вызвав имя параметра которые мы указали в контроллере $data[‘param1’]
MWM
Model-View-View-Model (MVVM) — применяется при проектировании архитектуры приложения, в основе лежит событийная модель которая использует “связывание данных”, разделение данных от интерфейса.Шаблон проектирования MVC предполагает разделение исходного кода вашего приложения на 3 части:1. Данные (model)2. Бизнес-логика (controller)3. Представление (view)Используется двойное связывание: интерфейс меняется через оповещения Модели представления, и Модель представления и модель данных меняется через интерфейс.MVVM фреймоворки: AngularJS, KnockoutJS, VPF и.др.