SlideShare a Scribd company logo
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

More Related Content

What's hot

Александр Трищенко: Phalcon framework
Александр Трищенко: Phalcon frameworkАлександр Трищенко: Phalcon framework
Александр Трищенко: Phalcon framework
Oleg Poludnenko
 
Telegram Bot
Telegram BotTelegram Bot
Telegram Bot
Andrey Ivanov
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
Sergey Skvortsov
 
флеш и сервер
флеш и серверфлеш и сервер
флеш и сервер
Владимир Кожаев
 
Symfony как микрофреймворк
Symfony как микрофреймворкSymfony как микрофреймворк
Symfony как микрофреймворк
Ruslan Hanov
 
Браузеры
БраузерыБраузеры
Браузеры
Ekaterina Mandik
 
живу в Google Chrome #1
живу в Google Chrome #1живу в Google Chrome #1
живу в Google Chrome #1vdas us
 
JS Lab2017_Сергей Селецкий_System.js и jspm
JS Lab2017_Сергей Селецкий_System.js и jspmJS Lab2017_Сергей Селецкий_System.js и jspm
JS Lab2017_Сергей Селецкий_System.js и jspm
GeeksLab Odessa
 
Best Browser
Best BrowserBest Browser
Best Browser
Alexandra Goryachkina
 
Знакомство с WebAssembly
Знакомство с WebAssemblyЗнакомство с WebAssembly
Знакомство с WebAssembly
Nikita Zimin
 
Flex Data Access
Flex Data AccessFlex Data Access
Flex Data Access
sergiy
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времени
Andriy Samilyak
 
Browsers. Description
Browsers. DescriptionBrowsers. Description
Browsers. Description
Anton Darmadzekhin
 
Streaming media servers: FMS/Wowza
Streaming media servers: FMS/WowzaStreaming media servers: FMS/Wowza
Streaming media servers: FMS/WowzaArtem Paschenko
 
Обзор популярных плагинов WordPress
Обзор популярных плагинов WordPressОбзор популярных плагинов WordPress
Обзор популярных плагинов WordPressAnatoly Yumashev
 
Фронтенд разработка без боли
Фронтенд разработка без болиФронтенд разработка без боли
Фронтенд разработка без боли
Anton Piskunov
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendenciesDarkestMaster
 

What's hot (17)

Александр Трищенко: Phalcon framework
Александр Трищенко: Phalcon frameworkАлександр Трищенко: Phalcon framework
Александр Трищенко: Phalcon framework
 
Telegram Bot
Telegram BotTelegram Bot
Telegram Bot
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
 
флеш и сервер
флеш и серверфлеш и сервер
флеш и сервер
 
Symfony как микрофреймворк
Symfony как микрофреймворкSymfony как микрофреймворк
Symfony как микрофреймворк
 
Браузеры
БраузерыБраузеры
Браузеры
 
живу в Google Chrome #1
живу в Google Chrome #1живу в Google Chrome #1
живу в Google Chrome #1
 
JS Lab2017_Сергей Селецкий_System.js и jspm
JS Lab2017_Сергей Селецкий_System.js и jspmJS Lab2017_Сергей Селецкий_System.js и jspm
JS Lab2017_Сергей Селецкий_System.js и jspm
 
Best Browser
Best BrowserBest Browser
Best Browser
 
Знакомство с WebAssembly
Знакомство с WebAssemblyЗнакомство с WebAssembly
Знакомство с WebAssembly
 
Flex Data Access
Flex Data AccessFlex Data Access
Flex Data Access
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времени
 
Browsers. Description
Browsers. DescriptionBrowsers. Description
Browsers. Description
 
Streaming media servers: FMS/Wowza
Streaming media servers: FMS/WowzaStreaming media servers: FMS/Wowza
Streaming media servers: FMS/Wowza
 
Обзор популярных плагинов WordPress
Обзор популярных плагинов WordPressОбзор популярных плагинов WordPress
Обзор популярных плагинов WordPress
 
Фронтенд разработка без боли
Фронтенд разработка без болиФронтенд разработка без боли
Фронтенд разработка без боли
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendencies
 

Viewers also liked

SymfonyConf IV.2016 - Реанимация проектов на Symfony
SymfonyConf IV.2016 - Реанимация проектов на SymfonySymfonyConf IV.2016 - Реанимация проектов на Symfony
SymfonyConf IV.2016 - Реанимация проектов на Symfony
Serge Velikanov
 
Symfony and SSL
Symfony and SSLSymfony and SSL
Symfony and SSL
symfony_bcn
 
PaymentSuite
PaymentSuitePaymentSuite
PaymentSuite
symfony_bcn
 
Marcos quesada caching_sf2
Marcos quesada caching_sf2Marcos quesada caching_sf2
Marcos quesada caching_sf2
symfony_bcn
 
Advanced symfony Techniques
Advanced symfony TechniquesAdvanced symfony Techniques
Advanced symfony Techniques
Kris Wallsmith
 
Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012
symfony_bcn
 
30 Symfony Best Practices
30 Symfony Best Practices30 Symfony Best Practices
30 Symfony Best Practices
Nicolas Perriault
 

Viewers also liked (7)

SymfonyConf IV.2016 - Реанимация проектов на Symfony
SymfonyConf IV.2016 - Реанимация проектов на SymfonySymfonyConf IV.2016 - Реанимация проектов на Symfony
SymfonyConf IV.2016 - Реанимация проектов на Symfony
 
Symfony and SSL
Symfony and SSLSymfony and SSL
Symfony and SSL
 
PaymentSuite
PaymentSuitePaymentSuite
PaymentSuite
 
Marcos quesada caching_sf2
Marcos quesada caching_sf2Marcos quesada caching_sf2
Marcos quesada caching_sf2
 
Advanced symfony Techniques
Advanced symfony TechniquesAdvanced symfony Techniques
Advanced symfony Techniques
 
Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012
 
30 Symfony Best Practices
30 Symfony Best Practices30 Symfony Best Practices
30 Symfony Best Practices
 

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

Внедрение компонента templating в существующий проект
Внедрение компонента templating в существующий проектВнедрение компонента templating в существующий проект
Внедрение компонента templating в существующий проект
Stanislaw Smetanin
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Александр Егурцов
 
Symfony2 Best Practices
Symfony2 Best PracticesSymfony2 Best Practices
Symfony2 Best Practices
Mikhail Prosalov
 
1_symfony_introduction.pptx
1_symfony_introduction.pptx1_symfony_introduction.pptx
1_symfony_introduction.pptx
rdninc
 
Automation Flex Applications with Selenium rc
Automation  Flex Applications with Selenium rcAutomation  Flex Applications with Selenium rc
Automation Flex Applications with Selenium rcautomated-testing.info
 
12 reasons to love symfony2
12 reasons to love symfony212 reasons to love symfony2
12 reasons to love symfony2
Alexei Smolyanov
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
chaykaborya
 
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
SpbDotNet Community
 
[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)
Evgeny Kaziak
 
FFCMS - вводная для пользователя
FFCMS - вводная для пользователяFFCMS - вводная для пользователя
FFCMS - вводная для пользователя
zenn1989
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
 
компоненты E learn для Plone
компоненты E learn для Ploneкомпоненты E learn для Plone
компоненты E learn для PloneSergey Greger
 
Symfony 3
Symfony 3Symfony 3
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Alexey Kachayev
 
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
GeeksLab Odessa
 
Highload2009 Rybak Badoo Os
Highload2009 Rybak Badoo OsHighload2009 Rybak Badoo Os
Highload2009 Rybak Badoo OsHighLoad2009
 
Микрофреймворки PHP
Микрофреймворки PHPМикрофреймворки PHP
Микрофреймворки PHP
Ekaterina Giganova
 
стек сетевых сервисов на базе спо
стек сетевых сервисов на базе спостек сетевых сервисов на базе спо
стек сетевых сервисов на базе споEkaterina Morozova
 
Разработка проекта в CMS Plone
Разработка проекта в CMS PloneРазработка проекта в CMS Plone
Разработка проекта в CMS PloneSergey Greger
 

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

Внедрение компонента templating в существующий проект
Внедрение компонента templating в существующий проектВнедрение компонента templating в существующий проект
Внедрение компонента templating в существующий проект
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
Symfony2 Best Practices
Symfony2 Best PracticesSymfony2 Best Practices
Symfony2 Best Practices
 
1_symfony_introduction.pptx
1_symfony_introduction.pptx1_symfony_introduction.pptx
1_symfony_introduction.pptx
 
Automation Flex Applications with Selenium rc
Automation  Flex Applications with Selenium rcAutomation  Flex Applications with Selenium rc
Automation Flex Applications with Selenium rc
 
12 reasons to love symfony2
12 reasons to love symfony212 reasons to love symfony2
12 reasons to love symfony2
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
 
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
 
[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)
 
php frameworks
php frameworksphp frameworks
php frameworks
 
FFCMS - вводная для пользователя
FFCMS - вводная для пользователяFFCMS - вводная для пользователя
FFCMS - вводная для пользователя
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
компоненты E learn для Plone
компоненты E learn для Ploneкомпоненты E learn для Plone
компоненты E learn для Plone
 
Symfony 3
Symfony 3Symfony 3
Symfony 3
 
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)
 
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
 
Highload2009 Rybak Badoo Os
Highload2009 Rybak Badoo OsHighload2009 Rybak Badoo Os
Highload2009 Rybak Badoo Os
 
Микрофреймворки PHP
Микрофреймворки PHPМикрофреймворки PHP
Микрофреймворки PHP
 
стек сетевых сервисов на базе спо
стек сетевых сервисов на базе спостек сетевых сервисов на базе спо
стек сетевых сервисов на базе спо
 
Разработка проекта в CMS Plone
Разработка проекта в CMS PloneРазработка проекта в CMS Plone
Разработка проекта в CMS Plone
 

More from Alex Demchenko

Kонструируем микросервисную архитектуру на Symfony и связываем с Kong
Kонструируем микросервисную архитектуру на Symfony и связываем с KongKонструируем микросервисную архитектуру на Symfony и связываем с Kong
Kонструируем микросервисную архитектуру на Symfony и связываем с Kong
Alex Demchenko
 
Symfony + GraphQL
Symfony + GraphQLSymfony + GraphQL
Symfony + GraphQL
Alex Demchenko
 
How to choose Chatbot platform & wtf is ML, DL, NLP, NLU, CA
How to choose Chatbot platform & wtf is ML, DL, NLP, NLU, CAHow to choose Chatbot platform & wtf is ML, DL, NLP, NLU, CA
How to choose Chatbot platform & wtf is ML, DL, NLP, NLU, CA
Alex Demchenko
 
Auto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalkAuto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalk
Alex Demchenko
 
Symfony2 start
Symfony2 startSymfony2 start
Symfony2 start
Alex Demchenko
 
Twig, что за..
Twig, что за..Twig, что за..
Twig, что за..
Alex Demchenko
 
Symfony camp ua 2010 stats
Symfony camp ua 2010 statsSymfony camp ua 2010 stats
Symfony camp ua 2010 statsAlex Demchenko
 
Routing System In Symfony 1.2
Routing System In Symfony 1.2Routing System In Symfony 1.2
Routing System In Symfony 1.2
Alex Demchenko
 
Symfony Project Publication
Symfony Project PublicationSymfony Project Publication
Symfony Project Publication
Alex Demchenko
 

More from Alex Demchenko (10)

Kонструируем микросервисную архитектуру на Symfony и связываем с Kong
Kонструируем микросервисную архитектуру на Symfony и связываем с KongKонструируем микросервисную архитектуру на Symfony и связываем с Kong
Kонструируем микросервисную архитектуру на Symfony и связываем с Kong
 
Symfony + GraphQL
Symfony + GraphQLSymfony + GraphQL
Symfony + GraphQL
 
How to choose Chatbot platform & wtf is ML, DL, NLP, NLU, CA
How to choose Chatbot platform & wtf is ML, DL, NLP, NLU, CAHow to choose Chatbot platform & wtf is ML, DL, NLP, NLU, CA
How to choose Chatbot platform & wtf is ML, DL, NLP, NLU, CA
 
Auto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalkAuto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalk
 
Symfony2 start
Symfony2 startSymfony2 start
Symfony2 start
 
Twig, что за..
Twig, что за..Twig, что за..
Twig, что за..
 
Symfony2 – reload?
Symfony2 – reload?Symfony2 – reload?
Symfony2 – reload?
 
Symfony camp ua 2010 stats
Symfony camp ua 2010 statsSymfony camp ua 2010 stats
Symfony camp ua 2010 stats
 
Routing System In Symfony 1.2
Routing System In Symfony 1.2Routing System In Symfony 1.2
Routing System In Symfony 1.2
 
Symfony Project Publication
Symfony Project PublicationSymfony Project Publication
Symfony Project Publication
 

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

Editor's Notes