2014-04-04 03 Александр Курочкин. PHP. Ускорение, о котором нет смысла спорить.
Современные платформы (фреймворки) разработки веб- приложений на PHP
1. Современные платформы
(фреймворки) разработки веб-
приложений на PHP
Сергей Шимко
Разработчик Magento Community и Enterprise Editions
2. Современные платформы (фреймворки)
разработки веб-приложений на PHP
Структура доклада
I. Введение IV. Многопользовательские
• Требования к приложения,
платформам разработки разграничение прав
• Преобладание V. События в веб-
парадигмы OOP и
паттерна MVC приложениях (принцип
publish/subscribe)
II. Интернационализация,
локализация VI. Производительность,
кэширование
III. Роутинг/формирование
URL VII. Заключение
3. I. Введение
Основные тезисы
• Долгое время разработка веб-сайтов велась без
использования возможностей ООП
• Web Application Framework – ответ на возросшие
требования к веб-приложениям
• Одна из основных задач фреймворка – реализация
функционала, общего для любого веб-приложения
4. II. Интернационализация и локализация
Интернационализация (i18n) –
адаптация продукта для
потенциального использования
практически в любой точке
земного шара
Локализация (L10n) – «тонкая»
настройка продукта для
использования в конкретном
регионе, который имеет
уникальные языковые и
культурные особенности
5. Параметры интернационализации
• Язык
Текст
Графические элементы, содержащие текст
Мулитимедийный контент, зависящий от языка
Правила сравнения/преобразования строк
• Часовой пояс
• Формат даты и времени
• Формат чисел
• Валюта
• Единицы мер и весов
• Адреса и номера телефонов
6. Интернационализация и локализация
Понятие локали
Локаль (locale) – предустановленный
набор значений для каждого
параметра интернационализации,
имеющих смысл для конкретного
региона
en_US.UTF-8
язык страна charset
ISO 639-1 ISO 3166-1
8. III. Роутинг/формирование URL
Основные вопросы
• Обработка запроса в веб-приложении (без учета ACL)
• Формирование friendly URL
• Разбор friendly URL
9. Процесс обработки запроса без учета ACL
нет да
Request содержит:
• Модуль
• Контроллер
• Action
• Параметры
нет
да
10. Роутинг/формирование URL
Формирование friendly URL
Формирование URL
Параметры Системный URL Friendly URL
Таблица преобразований
Системные Friendly
URL URL
14. Процесс обработки запроса с учетом прав доступа
Routing
Request содержит полную
информацию о
запрошенном ресурсе
да
Access Denied
да
$request->setControllerName(‘error’)
->setActionName(‘forbidden’);
нет
$request->setControllerName(‘auth’)
->setActionName(‘login’);
Controller
15. Многопользовательские приложения,
разграничение прав
ACL – основа систем
с избирательным управлением доступом
ACL (Access Control List) – список
контроля доступа; содержит
информацию о разрешенных и
запрещенных операциях субъекта
над конкретным объектом
16. Многопользовательские приложения,
разграничение прав
Терминология ACL
• Ресурс - объект, к которому необходимо
контролировать доступ
• Субъект - пользователь, который запрашивает доступ
• Разрешения (Permissions) - режимы доступа к ресурсу
• Роль - название, которое определяется при авторизации
• Сеанс - соответствие между Субъектом, Ролью
(Разрешениями)
17. V. События в веб-приложениях
• Проблема зависимостей при модульной архитектуре
приложения
• Избежание жесткой зависимости модулей с помощью
событий
• Принцип publish/subscribe (pub/sub)
• Событие (сообщение)
• Отправитель (издатель)
• Получатель (подписчик)
• Диспетчеризация возникшего события
21. VI. Производительность и кэширование
Кэширование (cache) – сохранение
результатов вычисления с целью
более быстрого получения
результата при выполнении
повторного вычисления
Операции с хранилищем
• Запись в хранилище
• Проверка записи в хранилище
• Чтение из хранилища
• Удаление записи из хранилища
• Инвалидация записей в хранилище