SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
goo.gl/iczYR




  Создание
custom модуля
 yulia.tsyba@volcanoideas.com
2/21

1. Структура модуля
2. Способы создания
3. Стандарты кодирования
4. Настройка редактора, систем управления
версиями файлов для автоматического
контроля стандартов.
5. Подготовка к публикации модуля
на drupal.org
3/21
ИДЕЯ        ПОИСК



СОЗДАНИЕ    АВТО
 МОДУЛЯ


           ПРОВЕРКА
 РУЧНОЕ
             КОДА



               SANDBOX
1. Структура модуля                         4/21

                                 css
                      .install
 .module     .info


                                            PHP
                                       js
1.                5/21
modulename.info
1.                   6/21
modulename.install
2. Создание модуля   7/21
2.   8/21
2. Способы создания                                  9/21




    Module Builder          +       DRUSH
  $ drush mbdl
  $ drush mb-list
  $ drush mb my_module menu --name="My module" --dep=
  “views“ --write
  $ drush mb my_module --name="My module" --noi --
  write --yes
3. Стандарты кодирования                   10/21




      http://drupal.org/coding-standards
3. Стандарты кодирования                     11/21




 Настрой свою IDE!


            http://drupal.org/node/723470


            http://drupal.org/node/1019816
4. Coder   12/21
4. DRUPAL CODE SNIFFER                                            13/21


          PHP_CodeSniffer + Drupal Coding Standards
$ phpcs /path/to/code/my_dir

$ phpcs --standard=Drupal --report=xml --report-file=rep.xml --
extensions=php,module,inc,install /path/to/test

$ alias drupalcs='phpcs --standard=/path/to/drupalcs/Drupal/ruleset.
xml --extensions=php,module,inc,install,test,profile,theme'

$ drupalcs /path/to/test > log.log
4. DRUPAL CODE SNIFFER                                                                                                                                   14/21

FILE: ...unk/sites/all/modules/contrib/coder/coder_review/coder_review.
drush.inc
--------------------------------------------------------------------------------
FOUND 14 ERROR(S) AFFECTING 14 LINE(S)
--------------------------------------------------------------------------------
  22 | ERROR | String concat is not required here; use a single string instead
  25 | ERROR | String concat is not required here; use a single string instead
  26 | ERROR | String concat is not required here; use a single string instead
  53 | ERROR | Missing function doc comment
  85 | ERROR | BREAK statements must be followed by a single blank line
  93 | ERROR | BREAK statements must be followed by a single blank line
  98 | ERROR | BREAK statements must be followed by a single blank line
 108 | ERROR | If the line declaring an array spans longer than 80 characters,
      |           | each element should be broken into its own line
 247 | ERROR | Concat operator must be surrounded by spaces
.......................................................................................................................................................
--------------------------------------------------------------------------------
4. PAREVIEW.SH                                                     15/21

 Install:
git clone --branch 7.x-1.x http://git.drupal.org/project/pareviewsh.git
sudo ln -s ${HOME}/${DDD}/pareviewsh/pareview.sh /usr/local/bin

Usage:
cd /path/to/drupal
pareview.sh GIT-URL [BRANCH]
pareview.sh DIR-PATH

Online review:
http://ventral.org/pareview
4. SVN PRE-COMMIT REVIEW                                16/21

Копируем файл шаблона хука:
  cd $REPO/hooks/
  mv pre-commit.tmpl pre-commit
Редактируем:
  #!/bin/sh
  REPOS="$1"
  TXN="$2"
  /usr/bin/scripts/phpcs-svn-pre-commit "$REPOS" -t "$TXN"
--standard=Drupal >&2 || exit 1
  exit 0
Даем права на выполнение:
  chmod +x pre-commit
4. SVN PRE-COMMIT REVIEW       17/21

Результаты:




И уже знакомый вывод ошибок:
4. GIT PRE-COMMIT REVIEW                            18/21

phpcs-pre-commit
git clone https://github.com/s0enke/git-hooks.git
Копируем файл шаблона хука:
.git/hooks/pre-commit
Редактируем:
PHPCS_BIN = /usr/bin/phpcs
PHPCS_CODING_STANDARD = Drupal
5. Публикация модуля на drupal.org                          19/21
1. http://drupal.org/user таб Edit->Git access (Desired Git
username)
2. http://drupal.org/node/add/project-project можно создать проект
  - Project categories (модуль, тема, ... ; Категория - Content,
Mobile, ...)
 - Vocabularies (Maintenance status, Development status)
 - Project information (title, description)
 - Project resources
 - Revision information
3. release-ready
4. Project application checklist
5. Открыть новый вопрос в http://drupal.
org/project/issues/projectapplications
5. Публикация модуля на drupal.org                             20/21
 Review bonus

- Issues for Drupal.org Project applications ( выбрать >= 3)
- Reviews of other projects: и дать прямую ссылку на
комментарии
- Issue tags: PAReview: review bonus
Вопросы




yulia.tsyba

yulia.tsyba@volcanoideas.com

Weitere ähnliche Inhalte

Was ist angesagt?

Как быть с большими сайтами на Word press
Как быть с большими сайтами  на Word pressКак быть с большими сайтами  на Word press
Как быть с большими сайтами на Word pressvovasik
 
Drupal -organizaciya_razrabotki
Drupal  -organizaciya_razrabotkiDrupal  -organizaciya_razrabotki
Drupal -organizaciya_razrabotkidrupalconf
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressIgor Sazonov
 
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИСTARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС2ГИС Технологии
 
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Andrey Taritsyn
 
02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиентыRoman Brovko
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
 
Василий Устинов - Drupal + Drush
Василий Устинов - Drupal + DrushВасилий Устинов - Drupal + Drush
Василий Устинов - Drupal + DrushDrupalSPB
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.DrupalForumZP2012
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
 

Was ist angesagt? (13)

Как быть с большими сайтами на Word press
Как быть с большими сайтами  на Word pressКак быть с большими сайтами  на Word press
Как быть с большими сайтами на Word press
 
Drupal -organizaciya_razrabotki
Drupal  -organizaciya_razrabotkiDrupal  -organizaciya_razrabotki
Drupal -organizaciya_razrabotki
 
Drupal Do
Drupal DoDrupal Do
Drupal Do
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPress
 
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИСTARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
Drupal Vs Other
Drupal Vs OtherDrupal Vs Other
Drupal Vs Other
 
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
 
02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
 
Василий Устинов - Drupal + Drush
Василий Устинов - Drupal + DrushВасилий Устинов - Drupal + Drush
Василий Устинов - Drupal + Drush
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
 

Andere mochten auch

Kernel-Based_Retrieval_of_Atmospheric_Profiles_from_IASI_Data.pdf
Kernel-Based_Retrieval_of_Atmospheric_Profiles_from_IASI_Data.pdfKernel-Based_Retrieval_of_Atmospheric_Profiles_from_IASI_Data.pdf
Kernel-Based_Retrieval_of_Atmospheric_Profiles_from_IASI_Data.pdfgrssieee
 
operations strategy_1
operations strategy_1operations strategy_1
operations strategy_1midhunraj007
 
5_IGARSS-2011-Joint-TSM-TDM-Mission-Planning-System_final.ppt
5_IGARSS-2011-Joint-TSM-TDM-Mission-Planning-System_final.ppt5_IGARSS-2011-Joint-TSM-TDM-Mission-Planning-System_final.ppt
5_IGARSS-2011-Joint-TSM-TDM-Mission-Planning-System_final.pptgrssieee
 
FR4.L10.2: A MICROWAVE SCATTERING MODEL OF VEGETATED SURFACES BASED ON BOR/DD...
FR4.L10.2: A MICROWAVE SCATTERING MODEL OF VEGETATED SURFACES BASED ON BOR/DD...FR4.L10.2: A MICROWAVE SCATTERING MODEL OF VEGETATED SURFACES BASED ON BOR/DD...
FR4.L10.2: A MICROWAVE SCATTERING MODEL OF VEGETATED SURFACES BASED ON BOR/DD...grssieee
 
FR2.L09 - PROCESSING AND ANALYSIS OF AIRBORNE SYNTHETIC APERTURE RADAR IMAGER...
FR2.L09 - PROCESSING AND ANALYSIS OF AIRBORNE SYNTHETIC APERTURE RADAR IMAGER...FR2.L09 - PROCESSING AND ANALYSIS OF AIRBORNE SYNTHETIC APERTURE RADAR IMAGER...
FR2.L09 - PROCESSING AND ANALYSIS OF AIRBORNE SYNTHETIC APERTURE RADAR IMAGER...grssieee
 
Các vấn đề xuất nhập khẩu việt nam
Các vấn đề xuất nhập khẩu việt namCác vấn đề xuất nhập khẩu việt nam
Các vấn đề xuất nhập khẩu việt namTantrung Nguyenquoc
 

Andere mochten auch (8)

Ilmu warren buffett
Ilmu warren buffettIlmu warren buffett
Ilmu warren buffett
 
F.study bin h
F.study bin hF.study bin h
F.study bin h
 
Kernel-Based_Retrieval_of_Atmospheric_Profiles_from_IASI_Data.pdf
Kernel-Based_Retrieval_of_Atmospheric_Profiles_from_IASI_Data.pdfKernel-Based_Retrieval_of_Atmospheric_Profiles_from_IASI_Data.pdf
Kernel-Based_Retrieval_of_Atmospheric_Profiles_from_IASI_Data.pdf
 
operations strategy_1
operations strategy_1operations strategy_1
operations strategy_1
 
5_IGARSS-2011-Joint-TSM-TDM-Mission-Planning-System_final.ppt
5_IGARSS-2011-Joint-TSM-TDM-Mission-Planning-System_final.ppt5_IGARSS-2011-Joint-TSM-TDM-Mission-Planning-System_final.ppt
5_IGARSS-2011-Joint-TSM-TDM-Mission-Planning-System_final.ppt
 
FR4.L10.2: A MICROWAVE SCATTERING MODEL OF VEGETATED SURFACES BASED ON BOR/DD...
FR4.L10.2: A MICROWAVE SCATTERING MODEL OF VEGETATED SURFACES BASED ON BOR/DD...FR4.L10.2: A MICROWAVE SCATTERING MODEL OF VEGETATED SURFACES BASED ON BOR/DD...
FR4.L10.2: A MICROWAVE SCATTERING MODEL OF VEGETATED SURFACES BASED ON BOR/DD...
 
FR2.L09 - PROCESSING AND ANALYSIS OF AIRBORNE SYNTHETIC APERTURE RADAR IMAGER...
FR2.L09 - PROCESSING AND ANALYSIS OF AIRBORNE SYNTHETIC APERTURE RADAR IMAGER...FR2.L09 - PROCESSING AND ANALYSIS OF AIRBORNE SYNTHETIC APERTURE RADAR IMAGER...
FR2.L09 - PROCESSING AND ANALYSIS OF AIRBORNE SYNTHETIC APERTURE RADAR IMAGER...
 
Các vấn đề xuất nhập khẩu việt nam
Các vấn đề xuất nhập khẩu việt namCác vấn đề xuất nhập khẩu việt nam
Các vấn đề xuất nhập khẩu việt nam
 

Ähnlich wie Creating custom module

#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...JSib
 
Телепортация MODX - MODX Meetup Minsk
Телепортация MODX - MODX Meetup MinskТелепортация MODX - MODX Meetup Minsk
Телепортация MODX - MODX Meetup MinskMODX Беларусь
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ciАлександр Сигачев
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"oelifantiev
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
 
От Make к Ansible
От Make к AnsibleОт Make к Ansible
От Make к AnsibleIvan Grishaev
 
Web deployment
Web deploymentWeb deployment
Web deploymentGetDev.NET
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Ontico
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)Ontico
 
NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложенияDenis Latushkin
 
Пакетирование для Debian/Ubuntu
Пакетирование для Debian/UbuntuПакетирование для Debian/Ubuntu
Пакетирование для Debian/Ubuntusamsolutionsby
 
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Andriy Yun
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17MoscowJS
 
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...Омские ИТ-субботники
 
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модулиАндрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модулиAlbina Tiupa
 
Moscow js 26 webpack
Moscow js 26   webpackMoscow js 26   webpack
Moscow js 26 webpacklgordey
 

Ähnlich wie Creating custom module (20)

#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
 
Телепортация MODX - MODX Meetup Minsk
Телепортация MODX - MODX Meetup MinskТелепортация MODX - MODX Meetup Minsk
Телепортация MODX - MODX Meetup Minsk
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
 
Устройство фреймворка 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 2
Zend framework 2Zend framework 2
Zend framework 2
 
От Make к Ansible
От Make к AnsibleОт Make к Ansible
От Make к Ansible
 
Web deployment
Web deploymentWeb deployment
Web deployment
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
 
RequireJS і Magento 2
RequireJS і Magento 2RequireJS і Magento 2
RequireJS і Magento 2
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
 
DC/OS more than PAAS
DC/OS more than PAASDC/OS more than PAAS
DC/OS more than PAAS
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
 
NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложения
 
Пакетирование для Debian/Ubuntu
Пакетирование для Debian/UbuntuПакетирование для Debian/Ubuntu
Пакетирование для Debian/Ubuntu
 
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
 
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
 
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модулиАндрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
 
Moscow js 26 webpack
Moscow js 26   webpackMoscow js 26   webpack
Moscow js 26 webpack
 

Creating custom module

  • 1. goo.gl/iczYR Создание custom модуля yulia.tsyba@volcanoideas.com
  • 2. 2/21 1. Структура модуля 2. Способы создания 3. Стандарты кодирования 4. Настройка редактора, систем управления версиями файлов для автоматического контроля стандартов. 5. Подготовка к публикации модуля на drupal.org
  • 3. 3/21 ИДЕЯ ПОИСК СОЗДАНИЕ АВТО МОДУЛЯ ПРОВЕРКА РУЧНОЕ КОДА SANDBOX
  • 4. 1. Структура модуля 4/21 css .install .module .info PHP js
  • 5. 1. 5/21 modulename.info
  • 6. 1. 6/21 modulename.install
  • 8. 2. 8/21
  • 9. 2. Способы создания 9/21 Module Builder + DRUSH $ drush mbdl $ drush mb-list $ drush mb my_module menu --name="My module" --dep= “views“ --write $ drush mb my_module --name="My module" --noi -- write --yes
  • 10. 3. Стандарты кодирования 10/21 http://drupal.org/coding-standards
  • 11. 3. Стандарты кодирования 11/21 Настрой свою IDE! http://drupal.org/node/723470 http://drupal.org/node/1019816
  • 12. 4. Coder 12/21
  • 13. 4. DRUPAL CODE SNIFFER 13/21 PHP_CodeSniffer + Drupal Coding Standards $ phpcs /path/to/code/my_dir $ phpcs --standard=Drupal --report=xml --report-file=rep.xml -- extensions=php,module,inc,install /path/to/test $ alias drupalcs='phpcs --standard=/path/to/drupalcs/Drupal/ruleset. xml --extensions=php,module,inc,install,test,profile,theme' $ drupalcs /path/to/test > log.log
  • 14. 4. DRUPAL CODE SNIFFER 14/21 FILE: ...unk/sites/all/modules/contrib/coder/coder_review/coder_review. drush.inc -------------------------------------------------------------------------------- FOUND 14 ERROR(S) AFFECTING 14 LINE(S) -------------------------------------------------------------------------------- 22 | ERROR | String concat is not required here; use a single string instead 25 | ERROR | String concat is not required here; use a single string instead 26 | ERROR | String concat is not required here; use a single string instead 53 | ERROR | Missing function doc comment 85 | ERROR | BREAK statements must be followed by a single blank line 93 | ERROR | BREAK statements must be followed by a single blank line 98 | ERROR | BREAK statements must be followed by a single blank line 108 | ERROR | If the line declaring an array spans longer than 80 characters, | | each element should be broken into its own line 247 | ERROR | Concat operator must be surrounded by spaces ....................................................................................................................................................... --------------------------------------------------------------------------------
  • 15. 4. PAREVIEW.SH 15/21 Install: git clone --branch 7.x-1.x http://git.drupal.org/project/pareviewsh.git sudo ln -s ${HOME}/${DDD}/pareviewsh/pareview.sh /usr/local/bin Usage: cd /path/to/drupal pareview.sh GIT-URL [BRANCH] pareview.sh DIR-PATH Online review: http://ventral.org/pareview
  • 16. 4. SVN PRE-COMMIT REVIEW 16/21 Копируем файл шаблона хука: cd $REPO/hooks/ mv pre-commit.tmpl pre-commit Редактируем: #!/bin/sh REPOS="$1" TXN="$2" /usr/bin/scripts/phpcs-svn-pre-commit "$REPOS" -t "$TXN" --standard=Drupal >&2 || exit 1 exit 0 Даем права на выполнение: chmod +x pre-commit
  • 17. 4. SVN PRE-COMMIT REVIEW 17/21 Результаты: И уже знакомый вывод ошибок:
  • 18. 4. GIT PRE-COMMIT REVIEW 18/21 phpcs-pre-commit git clone https://github.com/s0enke/git-hooks.git Копируем файл шаблона хука: .git/hooks/pre-commit Редактируем: PHPCS_BIN = /usr/bin/phpcs PHPCS_CODING_STANDARD = Drupal
  • 19. 5. Публикация модуля на drupal.org 19/21 1. http://drupal.org/user таб Edit->Git access (Desired Git username) 2. http://drupal.org/node/add/project-project можно создать проект - Project categories (модуль, тема, ... ; Категория - Content, Mobile, ...) - Vocabularies (Maintenance status, Development status) - Project information (title, description) - Project resources - Revision information 3. release-ready 4. Project application checklist 5. Открыть новый вопрос в http://drupal. org/project/issues/projectapplications
  • 20. 5. Публикация модуля на drupal.org 20/21 Review bonus - Issues for Drupal.org Project applications ( выбрать >= 3) - Reviews of other projects: и дать прямую ссылку на комментарии - Issue tags: PAReview: review bonus