SlideShare uma empresa Scribd logo
1 de 27
Кастомизация генераторов в  Symfony 1.3/1.4. Управление функционалом и структурой плагинов. Николай Зык ( relo_san ) [email_address]
Краткое содержание: ,[object Object],[object Object],[object Object],[object Object],[object Object]
Зачем нужна генерация ?
Зачем нужна генерация ? ,[object Object],[object Object],[object Object]
Основные направления генерации в  Symfony ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Как сделать плагин универсальнее? ,[object Object],[object Object],[object Object],[object Object]
Управление генерацией моделей ,[object Object],[object Object],[object Object]
Практически это должно выглядеть примерно так: lib/config/YourPlugin/model.yml: enabled_models: -  ‘Model_1’ -  ‘Model_2’ models: Model_1: disabled_relations: [ ‘RelationName’ ] disabled _ columns: [ ‘anonce’ ,***] relation: NewRelation: ***
При этом мы можем задать общие для всех моделей настройки примерно так: lib/config/model.yml: disabled_behaviors: -  ‘I18n’ options: collate:  ‘utf8_unicode_ci’ charset:  ‘utf8’ И нам не придется указывать это в конфигах моделей плагинов.
[object Object],[object Object],[object Object],[object Object]
Управление генерацией форм и фильтров ,[object Object],[object Object],[object Object]
Практически это должно выглядеть примерно так: lib/config/YourPlugin/model.yml: disabled_forms: -  ‘Model_1’ disabled_filters: -  ‘Model_1’ forms: Model_2: field_name: widget:  ‘yourCustomWidget’ other_field_name:  false
Настройки по умолчанию для плагина вы можете задать в конфиге плагина: yourPlugin/config/model.yml: enabled_forms: -  ‘Model_1’ forms: Model_2: field_name:  false Это позволит включить в плагине по-умолчанию самое необходимое, чтобы не указывать одно и тоже в каждом проекте.
Управление генерацией модулей ,[object Object],[object Object],[object Object],[object Object],[object Object]
Как и в случае с моделями, мы конфигурируем модуль   примерно так: lib/config/YourPlugin/module.yml: all:  #all apps or appname Module1: child: module: ‘Module2’ key: ‘category_id’ label: ‘label1’ filter:  false i18n_catalogue:  ‘catalogue1’
И для всех модулей указываем общие параметры: lib/config/module.yml: all:  #all apps or appname UI: ‘jquery’ theme: ‘default’ actions_base_class: ‘dinActions’ ipp: 20  #items per page
Текущая версия плагина поддерживает  jQuery UI , сортировку  i18n  полей в списках и другие мелкие доработки.
В самом ближайшем будущем планируется имплементация существующих расширений модулей (например древовидные списки).
Как не заблудиться в конфигурационном лесу?
Структура конфигурации генераторов: /lib/config/model.yml /lib/config/module.yml plugins/yourPlugin/config/model.yml plugins/yourPlugin/config/module.yml /lib/config/yourPlugin/model.yml /lib/config/yourPlugin/module.yml Конфиги указаны в порядке перекрытия.
[object Object],[object Object],[object Object],[object Object],[object Object]
Опубликованные плагины: Общие надстройки над фреймворком: svn://dinecat.com/dinSymfonyExtraPlugin Надстройки над  Doctrine :  svn://dinecat.com/dinDoctrineExtraPlugin Генерация административной панели: svn://dinecat.com/dinAdminStdPlugin
Постепенно мной будут публиковаться также другие плагины, в том числе «универсальные» плагины с общим для большинства проектов функционалом. Плагины публикуются под лицензией  MIT . Я приглашаю всех, заинтересованных в разработке этих и других плагинов, к совместной работе в этом направлении.
В ближайшее время в сети появится два ресурса, использующих эти плагины: http://maitavr.org/ Ассоциация разработчиков http://aristotel.ua/ Благотворительный аукцион
Доклад подготовил: Николай Зык ( relo_san ) [email_address] http://dinecat.com/ http://relo-san.com/

Mais conteúdo relacionado

Semelhante a Кастомизация генераторов в Symfony 1.3/1.4

Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPmikhailshurgulaya
 
[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
 
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Алексей Горобец - Building Drupal Distributions. Why? When? and How?Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Алексей Горобец - Building Drupal Distributions. Why? When? and How?LEDC 2016
 
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...FMTeam
 
Создание дистрибутивов Drupal. Почему, зачем и как?
Создание дистрибутивов Drupal. Почему, зачем и как?Создание дистрибутивов Drupal. Почему, зачем и как?
Создание дистрибутивов Drupal. Почему, зачем и как?Alexei Gorobets
 
Умный фильтр 1С-Битрикса
Умный фильтр 1С-БитриксаУмный фильтр 1С-Битрикса
Умный фильтр 1С-БитриксаVladimir Zavertaylov
 
Symfony2 practice
Symfony2 practiceSymfony2 practice
Symfony2 practiceSkorney
 
Web осень 2013 лекция 8
Web осень 2013 лекция 8Web осень 2013 лекция 8
Web осень 2013 лекция 8Technopark
 
WordCamp Russia 2015: Фильтры и события в WordPress.
WordCamp Russia 2015: Фильтры и события в WordPress.WordCamp Russia 2015: Фильтры и события в WordPress.
WordCamp Russia 2015: Фильтры и события в WordPress.Igor Zinovyev
 
C# Desktop. Занятие 08.
C# Desktop. Занятие 08.C# Desktop. Занятие 08.
C# Desktop. Занятие 08.Igor Shkulipa
 
C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6Technopark
 
ППП (Пишем Плагины Правильно)
ППП (Пишем Плагины Правильно)ППП (Пишем Плагины Правильно)
ППП (Пишем Плагины Правильно)Anatoly Yumashev
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7Technopark
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basicsRoman Brovko
 
Joomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruhotwebstudio.ru
 

Semelhante a Кастомизация генераторов в Symfony 1.3/1.4 (20)

Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
Zend Framework и Doctrine
Zend Framework и DoctrineZend Framework и Doctrine
Zend Framework и Doctrine
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAP
 
[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)
 
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Алексей Горобец - Building Drupal Distributions. Why? When? and How?Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
 
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...
Шичко И. Вопросы практического применения СУБД FileMaker при решении повседне...
 
Symfony 3
Symfony 3Symfony 3
Symfony 3
 
Symfony2 Best Practices
Symfony2 Best PracticesSymfony2 Best Practices
Symfony2 Best Practices
 
Создание дистрибутивов Drupal. Почему, зачем и как?
Создание дистрибутивов Drupal. Почему, зачем и как?Создание дистрибутивов Drupal. Почему, зачем и как?
Создание дистрибутивов Drupal. Почему, зачем и как?
 
Умный фильтр 1С-Битрикса
Умный фильтр 1С-БитриксаУмный фильтр 1С-Битрикса
Умный фильтр 1С-Битрикса
 
Symfony2 practice
Symfony2 practiceSymfony2 practice
Symfony2 practice
 
Web осень 2013 лекция 8
Web осень 2013 лекция 8Web осень 2013 лекция 8
Web осень 2013 лекция 8
 
WordCamp Russia 2015: Фильтры и события в WordPress.
WordCamp Russia 2015: Фильтры и события в WordPress.WordCamp Russia 2015: Фильтры и события в WordPress.
WordCamp Russia 2015: Фильтры и события в WordPress.
 
Text
TextText
Text
 
C# Desktop. Занятие 08.
C# Desktop. Занятие 08.C# Desktop. Занятие 08.
C# Desktop. Занятие 08.
 
C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6
 
ППП (Пишем Плагины Правильно)
ППП (Пишем Плагины Правильно)ППП (Пишем Плагины Правильно)
ППП (Пишем Плагины Правильно)
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
 
Joomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ru
 

Кастомизация генераторов в Symfony 1.3/1.4

  • 1. Кастомизация генераторов в Symfony 1.3/1.4. Управление функционалом и структурой плагинов. Николай Зык ( relo_san ) [email_address]
  • 2.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Практически это должно выглядеть примерно так: lib/config/YourPlugin/model.yml: enabled_models: - ‘Model_1’ - ‘Model_2’ models: Model_1: disabled_relations: [ ‘RelationName’ ] disabled _ columns: [ ‘anonce’ ,***] relation: NewRelation: ***
  • 11. При этом мы можем задать общие для всех моделей настройки примерно так: lib/config/model.yml: disabled_behaviors: - ‘I18n’ options: collate: ‘utf8_unicode_ci’ charset: ‘utf8’ И нам не придется указывать это в конфигах моделей плагинов.
  • 12.
  • 13.
  • 14. Практически это должно выглядеть примерно так: lib/config/YourPlugin/model.yml: disabled_forms: - ‘Model_1’ disabled_filters: - ‘Model_1’ forms: Model_2: field_name: widget: ‘yourCustomWidget’ other_field_name: false
  • 15. Настройки по умолчанию для плагина вы можете задать в конфиге плагина: yourPlugin/config/model.yml: enabled_forms: - ‘Model_1’ forms: Model_2: field_name: false Это позволит включить в плагине по-умолчанию самое необходимое, чтобы не указывать одно и тоже в каждом проекте.
  • 16.
  • 17. Как и в случае с моделями, мы конфигурируем модуль примерно так: lib/config/YourPlugin/module.yml: all: #all apps or appname Module1: child: module: ‘Module2’ key: ‘category_id’ label: ‘label1’ filter: false i18n_catalogue: ‘catalogue1’
  • 18. И для всех модулей указываем общие параметры: lib/config/module.yml: all: #all apps or appname UI: ‘jquery’ theme: ‘default’ actions_base_class: ‘dinActions’ ipp: 20 #items per page
  • 19. Текущая версия плагина поддерживает jQuery UI , сортировку i18n полей в списках и другие мелкие доработки.
  • 20. В самом ближайшем будущем планируется имплементация существующих расширений модулей (например древовидные списки).
  • 21. Как не заблудиться в конфигурационном лесу?
  • 22. Структура конфигурации генераторов: /lib/config/model.yml /lib/config/module.yml plugins/yourPlugin/config/model.yml plugins/yourPlugin/config/module.yml /lib/config/yourPlugin/model.yml /lib/config/yourPlugin/module.yml Конфиги указаны в порядке перекрытия.
  • 23.
  • 24. Опубликованные плагины: Общие надстройки над фреймворком: svn://dinecat.com/dinSymfonyExtraPlugin Надстройки над Doctrine : svn://dinecat.com/dinDoctrineExtraPlugin Генерация административной панели: svn://dinecat.com/dinAdminStdPlugin
  • 25. Постепенно мной будут публиковаться также другие плагины, в том числе «универсальные» плагины с общим для большинства проектов функционалом. Плагины публикуются под лицензией MIT . Я приглашаю всех, заинтересованных в разработке этих и других плагинов, к совместной работе в этом направлении.
  • 26. В ближайшее время в сети появится два ресурса, использующих эти плагины: http://maitavr.org/ Ассоциация разработчиков http://aristotel.ua/ Благотворительный аукцион
  • 27. Доклад подготовил: Николай Зык ( relo_san ) [email_address] http://dinecat.com/ http://relo-san.com/