180 likes | 342 Views
Разработка новостного компонента информационного портала на базе Open Source-фреймворка. МИЭМ, 23.12.08. Горбачев Денис, С-55. Постановка задачи. Панель для управления новостями Отображение новостей для пользователей Возможность комментирования Переносимость и масштабируемость.
E N D
Разработка новостного компонента информационного портала на базе Open Source-фреймворка МИЭМ, 23.12.08 Горбачев Денис, С-55
Постановка задачи • Панель для управления новостями • Отображение новостей для пользователей • Возможность комментирования • Переносимость и масштабируемость
Фреймворк - преимущества Скорость разработки Проверенное решение Структурирование кода 3
Фреймворк - недостатки Деградация скорости приложения Зависимость от чужого кода Жесткая структура 4
Почему symfony? Выбор научного руководителя Достаточно молодой, достаточно старый, архитектура MVC, абстракция от базы данных, интеграция JS, на PHP, конфиги на YAML, использование rsync, поддержка коммерческой компаниии сообщества, Open Source, хорошая книга, примеры использования, апробированность, стабильность, настраиваемость, маленькая буква в названии, все там будем 5
База данных MySQL ORM PDO Propel schema YAML databases Fixtures build-all-load ASDFASFAD 6
MySQL Open Source Enterprise level Usage experience 7
ORM Независимость от производителя БД Работа с объектами напрямую Запросы в OOP-style $c = new Criteria(); $c->add(NewsPeer::ID, 42, Criteria::EQUAL); $currentNews = NewsPeer::doSelect($c); Кода кусок 8
PDO “Родное” решение Установка по умолчанию Широкий набор драйверов 9
Propel Хорошо ложится в MVC Защищает от ряда SQL-атак Легко расширяется 10
schema.yml Вся конфигурация объектов в одном месте Защищает от ряда SQL-атак Использует YAML 11
YAML Легко читается человеком Быстро пишется Поддерживает все типы данных Не допускает табы house: family: name: Doe parents: { John, Jane } children: { Paul, Mark, Simone } 12
databases.yml Все настройки подключения к БД в одном месте Отдельные настройки для каждой из сред исполнения Использует YAML 13
Fixtures Загрузка тестовых записей Поддерживает разделение по файлам Поддерживает внешние ключи User: DShurupov: login: “Dmitry.Shurupov” password: “BritneySpears” News: news1: name: “Access Linux Platform” user_id: DShurupov 14
symfony propel:build-all-load “Все и сразу” Имеет кучу полезных опций Лучше, чем propel:data-load 15
Лучше один раз увидеть И вот как я все это сделал… 16
Посвящается Денису Александровичу… Разработанный мною новостной компонент Вы легко можете использовать для того, чтобы сохранить текущих и привлечь новых пользователей. Этот компонент будет настоящим открытием для пользователя, вызовет в нем любовь к порталу, чувство благодарности и открытости по отношению к его разработчикам. Доказано, что подобные эмоции у пользователей способны привести только к положительным результатам, а именно – гарантированному приумножению ваших доходов 17
Вот и все. Ваши вопросы? 18