Your SlideShare is downloading. ×
Использование  Symfony Башкеев Алексей
CMS и Фреймворки <ul><li>CMS позволяет настроить и кастомизировать стандартное решение («обработка напильником») </li></ul...
Выбор Фреймворка для проекта <ul><li>Ускорение разработки. </li></ul><ul><li>Небольшие накладные расходы. </li></ul><ul><l...
Выбор  OpenSource  Фрейморка <ul><li>Проект должен быть &quot;жив&quot; (выходят новые версии, исправляются баги, актуализ...
Немного о Symfony <ul><li>Первая версия появилась в октябре 2005г.  </li></ul><ul><li>Спонсируется компанией Sensio ( http...
Архитектура Symfony <ul><li>Первая стабильная версия вышла на PHP5 (PHP4 изначально не поддерживался).  </li></ul><ul><li>...
Быстрая  разработка <ul><li>Простота установки, настройки и обновлений (установка на новом сервере в 2 команды). </li></ul...
Документация и поддержка <ul><li>Флеш-ролики и туториалы и пошаговые инструкции на официальном сайте ( http ://www.symfony...
Возможности для масштабирования <ul><li>Многоуровневое кешировние: </li></ul><ul><ul><li>Целых HTML-старниц (sfSuperCache)...
Автоматизированное тестирование <ul><li>Unit-тесты на базе встроенного средства Lime Testing Framework   symfony test-unit...
Пример проекта :  начало <ul><li>Создание БД и ORM-классов для работы с ней. </li></ul><ul><li>Берем и рисуем структуру БД...
Пример проекта: продолжение <ul><li>Доработка модели </li></ul><ul><li>Классы, создаваемые разработчиками, наследуют класс...
Пример проекта: завершение <ul><li>Завершение разработки </li></ul><ul><li>Создание красивых  URL’ ов. </li></ul><ul><li>П...
Спасибо за внимание! Если есть вопросы – пишите на  [email_address]
Upcoming SlideShare
Loading in...5
×

Использование Symfony

1,524

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,524
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Использование Symfony"

  1. 1. Использование Symfony Башкеев Алексей
  2. 2. CMS и Фреймворки <ul><li>CMS позволяет настроить и кастомизировать стандартное решение («обработка напильником») </li></ul><ul><li>Фреймворк позволяет сделать любое решение из небольших компонент («конструктор Lego») </li></ul><ul><li>Наиболее эффективная область применения фреймворков: Решение нетиповых задач, когда модулем к CMS не обойтись. Создание сложных, нестандартных решений. </li></ul>
  3. 3. Выбор Фреймворка для проекта <ul><li>Ускорение разработки. </li></ul><ul><li>Небольшие накладные расходы. </li></ul><ul><li>Наличие актуальной документации. </li></ul><ul><li>Возможности для масштабирования с ростом проекта. </li></ul><ul><li>Наличие средств автоматизированного тестирования. </li></ul><ul><li>Должен быть безопасен в использовании. </li></ul><ul><li>Обратная совместимость. </li></ul>
  4. 4. Выбор OpenSource Фрейморка <ul><li>Проект должен быть &quot;жив&quot; (выходят новые версии, исправляются баги, актуализируется документация). </li></ul><ul><li>Наличие ресурсов у проекта для собственного развития. </li></ul><ul><li>Наличие развитого сообщества (получение консультаций по возникающим вопросам). </li></ul><ul><li>О тсутствие зависимостей от сторонних компонент, не удовлетворяющих этим требованиям. </li></ul>
  5. 5. Немного о Symfony <ul><li>Первая версия появилась в октябре 2005г. </li></ul><ul><li>Спонсируется компанией Sensio ( http:// www.sensio.com / ) </li></ul><ul><li>Последняя версия 1.0.13 вышла 1 апреля 2008. Версия 1.1. в стадии бета-тестирования. </li></ul><ul><li>Есть своя книга с документацией, которую можно купить на amazon.com. </li></ul><ul><li>Комьюнити насчитывает более 5 000 пользователей. </li></ul><ul><li>Есть крупные завершенные проекты: </li></ul><ul><ul><li>Yahoo! Bookmarks </li></ul></ul><ul><ul><li>W3Counter ( http://www.w3counter.com ) </li></ul></ul><ul><ul><li>Еще несколько сотен на сайте </li></ul></ul><ul><ul><li>http://trac.symfony-project.com/wiki/ApplicationsDevelopedWithSymfony </li></ul></ul>
  6. 6. Архитектура Symfony <ul><li>Первая стабильная версия вышла на PHP5 (PHP4 изначально не поддерживался). </li></ul><ul><li>За основу было взята конепция MVC от Mojavi3-DEV ( http:// www.mojavi.org / ) </li></ul><ul><li>Routing и работа с шаблонами - от Ruby on Rails ( http:// www.rubyonrails.com / ) </li></ul><ul><li>В качестве слоя абстракции от БД Propel ( http:// propel.phpdb.org / trac / ) </li></ul><ul><li>Многоязычность - Prado ( http:// www.xisc.com / ) </li></ul><ul><li>Встроенные JavaScript компоненты (Prototype, script.aculo.us, TinyMCE, Dynarch.com). </li></ul><ul><li>Практический любой сторонний компонент Symfony можно заменить , установив соответствующий плагин с помощью команды symfony plugin-install </li></ul>
  7. 7. Быстрая разработка <ul><li>Простота установки, настройки и обновлений (установка на новом сервере в 2 команды). </li></ul><ul><li>Удобство работы для разработчика ( командная строка – symfony … ) . Кодогенераторы. </li></ul><ul><li>Встроенные средства для отладки (debug- панель). </li></ul><ul><li>Модульность: возможность создавать повторно используемые компоненты </li></ul><ul><li>Возможность использовать последние достижения в области пользовательских интерфейсов (AJAX и т.д.) </li></ul><ul><li>Удобная миграция изменений на промышленные сервера, переход более новым версиям Symfony ( symfony sync , symfony upgrade ) . </li></ul>
  8. 8. Документация и поддержка <ul><li>Флеш-ролики и туториалы и пошаговые инструкции на официальном сайте ( http ://www.symfony-project.org/ ) </li></ul><ul><li>Книга в магазине www. amazon.com &quot;The Definitive Guide to symfony« (более 400 страниц). </li></ul><ul><li>Документация актуализируется непрерывно. Есть своя команда по разработке и поддержке документации. </li></ul><ul><li>Документация на сайте в wiki от сообщества разработчиков Symfony . </li></ul><ul><li>Развитое комьюнити: Форум, Google Groups, блоги, IRC, плагины и примеры кода от сообщества разработчиков Symfony . </li></ul>
  9. 9. Возможности для масштабирования <ul><li>Многоуровневое кешировние: </li></ul><ul><ul><li>Целых HTML-старниц (sfSuperCache); </li></ul></ul><ul><ul><li>Внутренней части страницы с/без обрамления (Аction’ов); </li></ul></ul><ul><ul><li>Отдельных частей страниц (Component’ов). </li></ul></ul><ul><li>Оптимизация разработанного кода (sfOptimizerPlugin) symfony optimize </li></ul><ul><li>Оптимизация доступа к БД ( без ORM, sfPropelLoadbalancerPlugin) . </li></ul><ul><li>Кеширование вызовов функций (sfFunctionCache). </li></ul><ul><li>Стандартная оптимизация PHP: (eAccelerator, APC, XCache и т.д.) (sfProcessCache) . </li></ul>
  10. 10. Автоматизированное тестирование <ul><li>Unit-тесты на базе встроенного средства Lime Testing Framework symfony test-unit </li></ul><ul><li>Функциональное автоматизированное тестирование с помощью встроенных средств Symfony (sfTestBrowser , sfDomCssSelector) </li></ul><ul><li>symfony test-functional </li></ul><ul><li>Все тесты обычно выполняются на тестовой базе данных (готовим тестовые данные из файлов с помощью sfPropelData ). </li></ul><ul><li>Для приемочного тестирования используется Selenium ( тестовые случаи пишутся на HTML , запускаются браузером ) , в написании тестов помогает Selenium IDE ( Firefox Selenium Extension ) . </li></ul>
  11. 11. Пример проекта : начало <ul><li>Создание БД и ORM-классов для работы с ней. </li></ul><ul><li>Берем и рисуем структуру БД в каком-либо средстве автоматизированного проектирования. </li></ul><ul><li>Создаем с помощью этого средства DDL для компонент БД (DDL.sql) </li></ul><ul><li>Создаем базу, запускаем DDL.sql - получаем базу с таблицами, индексами, внешними ключами. </li></ul><ul><li>Запускаем symfony propel-build-schema - получаем XML (YAML) описание структуры БД (абстрактно от БД). </li></ul><ul><li>Если нужно правим schema.yml, запускаем symfony propel-build-model - получаем готовый набор PHP-классов, готовый к использованию </li></ul><ul><li>При изменении структуры БД повторяем шаги 4-6, написанный нами код не страдает, т.к. он наследует сгенерированные классы. </li></ul>
  12. 12. Пример проекта: продолжение <ul><li>Доработка модели </li></ul><ul><li>Классы, создаваемые разработчиками, наследуют классы ORM и по сути являются абстрактными от конкретной СУБД. </li></ul><ul><li>При необходимости можно для ускорения разработки использовать «чистый SQL ». </li></ul><ul><li>Создание модулей </li></ul><ul><li>Обычные модули. </li></ul><ul><li>Генерируемые модули на основе таблиц. </li></ul><ul><li>Генерируемые модули, основанные на представлениях. </li></ul><ul><li>Создание шаблонов </li></ul><ul><li>Создание layout’ ов (обрамлений страниц). </li></ul><ul><li>Создание конечных представлений страниц ( Components, templates, slots); </li></ul>
  13. 13. Пример проекта: завершение <ul><li>Завершение разработки </li></ul><ul><li>Создание красивых URL’ ов. </li></ul><ul><li>Проработка визуальных эффектов. </li></ul><ul><li>Оптимизация, добавление кэширования. </li></ul><ul><li>Покрытие тестами </li></ul><ul><li>Создание модульных и функциональных тестов </li></ul><ul><li>Создание приемочных тестов на базе Selenium </li></ul>
  14. 14. Спасибо за внимание! Если есть вопросы – пишите на [email_address]

×