21
Создание custom модуля [email protected] goo.gl/iczYR

Creating custom module

Embed Size (px)

Citation preview

Page 2: Creating custom module

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

2/21

Page 3: Creating custom module

ИДЕЯ ПОИСК

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

АВТО

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

SANDBOX

3/21

Page 4: Creating custom module

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

.module .info.install

css

jsPHP

Page 5: Creating custom module

1. modulename.info

5/21

Page 6: Creating custom module

1. modulename.install

6/21

Page 7: Creating custom module

2. Создание модуля 7/21

Page 8: Creating custom module

8/212.

Page 9: Creating custom module

$ 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

9/212. Способы создания

DRUSHModule Builder +

Page 10: Creating custom module

http://drupal.org/coding-standards

10/213. Стандарты кодирования

Page 11: Creating custom module

3. Стандарты кодирования 11/21

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

http://drupal.org/node/1019816

http://drupal.org/node/723470

Page 12: Creating custom module

4. Coder 12/21

Page 13: Creating custom module

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 13/21

Page 14: Creating custom module

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.......................................................................................................................................................--------------------------------------------------------------------------------

14/214. DRUPAL CODE SNIFFER

Page 15: Creating custom module

Install:git clone --branch 7.x-1.x http://git.drupal.org/project/pareviewsh.gitsudo 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

15/214. PAREVIEW.SH

Page 16: Creating custom module

Копируем файл шаблона хука: 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

16/214. SVN PRE-COMMIT REVIEW

Page 17: Creating custom module

Результаты:

И уже знакомый вывод ошибок:

17/214. SVN PRE-COMMIT REVIEW

Page 18: Creating custom module

phpcs-pre-commitgit clone https://github.com/s0enke/git-hooks.git

Копируем файл шаблона хука: .git/hooks/pre-commit

Редактируем:PHPCS_BIN = /usr/bin/phpcsPHPCS_CODING_STANDARD = Drupal

18/214. GIT PRE-COMMIT REVIEW

Page 19: Creating custom module

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-ready4. Project application checklist5. Открыть новый вопрос в http://drupal.org/project/issues/projectapplications

19/215. Публикация модуля на drupal.org

Page 20: Creating custom module

Review bonus

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

20/215. Публикация модуля на drupal.org