• Save
Использование Symfony
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 2,417 views

 

Statistics

Views

Total Views
2,417
Views on SlideShare
2,400
Embed Views
17

Actions

Likes
1
Downloads
0
Comments
0

3 Embeds 17

http://www.slideshare.net 7
http://webcrunch.ru 7
http://www.profyclub.org 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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