Symfony как платформа для
            open-source проектов
         (Sympal, Apostrophe, Diem)



Alex Demchenko
Обо мне

— Технический директор и тим лид
 компании Lazy Ants

—С Symfony уже больше 3х лет
—Активно поддерживаю Украинское
 Symfony community

—Открыто делюсь знаниями и опытом
Какой framework самый лучший?
Какой framework с отличной
документацией, большим живым
коммунити, с кучей сайтов на нем
  и Open Source проектами?
Почему Symfony?
Open Source
Мы тоже не лыком шиты!
Sympal
Идея
что-то похожее на Drupal,
 но с MVC и ORM внутри
Symfony + Drupal = Sympal
        +       =
Разработчик
Jonathan H. Wage
После установки
Dashboard предельно ясен
Состав

- sfSympalPlugin                - sfContentFilterPlugin
- sfSympalAdminPlugin           - sfDoctrinePlugin
- sfSympalAssetsPlugin          - sfFormExtraPlugin
- sfSympalEditorPlugin          - sfThemePlugin
- sfSympalInstallPlugin                   4
- sfSympalMenuPlugin
- sfSympalPluginManagerPlugin
- sfSympalRenderingPlugin
- sfSympalUpgradePlugin
            9
Возможности
Установка
—Установка через браузер
—Либо через командную строку
$ php symfony generate:project sympal --installer=installer.php

—Используется отдельно либо с
   существующим проектом
Мультисайты
Меню
—Отображение это 1 запрос
—Несколько различных меню
—Легко управляемые подменю
—sfSympalMenuPlugin независим
Типы содержимого
          Content types

—2 типа по умолчанию (Старница, Список)
—Легко добавить новый тип
—Генерация плагинов с учетом типа
 содержимого на лету
Менеджер плагинов
—Установка из CLI или через браузер
—Автоматическая загрузка с помощью
 symfony plugin:install или напрямую из svn
А ещё...
—Конфигурирование через yaml и веб
—Интернационализация, вплоть до url
—Мультитемы
—Оптимизация под поисковики
—...
    http://www.sympalphp.org
Но!
Использовать живый проектах
           рано
А почему?

— Основной разработчик в другом проекте, doctrine
— Большое количество багов, низкая скорость решений
— Слабое комьюнити
Король мертв —
да здравствует Король
Apostrophe
Гибкая CMS c
минимальным временем
     на обучение
Основной разработчик

    P'unk Avenue
минутная установка из CLI
$ svn co http://svn.apostrophenow.org/sandboxes/asandbox/branches/1.4
Symfony без CC, как ...
$ php symfony cc
$ php symfony plugin:publish-assets
$ php symfony doctrine:build --all
и... ВОЛШЕБНАЯ команда



$ php symfony apostrophe:demo-fixtures
Wordpress нервно дышит
Почему      стоит
  использовать?
—Удобный интерфейс
—Все редактируется в контексте сайта
—Настраиваемые под любое
 содержание секции в шаблонах
—Ваши клиенты смогут добавлять
 любой контент и не сверлить вам
 мозг
—Управлять медиа контентом
 (изображения, видео, pdf)
—Добавлять и редактировать слайд-шоу
—На лету добавлять записи в блог,
 новые страницы, события ...
—Откатывать назад изменения
—Скрывать / Публиковать любые
 страницы
—Назначать права на любые страницы
—Полнотекстовый поиск




Zend Lucene — требует допила, для работы с русскими символами
—Свободная расширяемость
—Простое добавление своих
 модулей
—Слотов для редактирования в
 контексте
Самое главное...
Все, работает!
Но это же CMS,
   а я хочу
   пилить!
Diem
content management
  framework (CMF)
Детище французской
     компании
     intuiti.net
Как у framework’a ничего
  не предустановленно
Как у CMS
готовая админ панель
   — Конфигурирование
   — Аналитика
   — SEO
   — I18N
   — Медиа
   — Поиск
   — ...
$ php lib/vendor/diem/install
За 5 минут
Пройдя курс молодого бойца
Что внутри?
Что внутри?




Виджеты
Виджеты языком symfony
—Components
—Partials
Отличие в том что
    Виджеты
   таскаются
     (drag&drop)
—Это помогает упростить процесс
—видеть результаты в реальном
 времени
Помимо виджетов
Панель управления
SEO
Ручной и автоматический режимы
Редактирование в
 контексте сайта
Сквозное управление медиа
Максимальная
   производительность

—Использование кеша Symfony, APC
—Автоматическое сжатие и сборка Js
 и Css файлов
Редактор кода
Консоль!
Наш любимый
Zend Search Lucene
А где же гибкость и
 рассширяемость?
Каждая часть Diem
         это Service

Symfony Dependency Injection Container
—Мы можем создать свои
—Расширять либо заменять
 существующие
Deim максимально
     использует
Symfony Event Dispatcher
—Связывает компоненты между
 собой и делает их независимыми
—Позволяет влиять на работу
 компонент не расширяя их
Готовый набор плагинов
Отличная документация
Кроме того:
—Высокие темпы разработки
—порядка 4000 тестов
—живое комьюнити
http://diem-project.org
Что еще из open source?

 http://trac.symfony-project.org/
               wiki/
ApplicationsDevelopedWithSymfony
Вопросы?
Alex Demchenko
alex@lazy-ants.de

  lazy-ants.de
  451f.com.ua

Symfony as the platform for open source projects (sympal, apostrophe, diem)