49
⽇本語ではじめる Drupal Console in Sapporo

日本語ではじめるDrupal Console in Sapporo

Embed Size (px)

Citation preview

Page 1: 日本語ではじめるDrupal Console in Sapporo

⽇本語ではじめるDrupalConsolein

Sapporo

Page 2: 日本語ではじめるDrupal Console in Sapporo

⻘⼭義万

(あおやまよしかず)

Aboutme

Facebook:Twitter:Drupal.org:

ANNAIIncDrupalJapanUserGroupDrupalさっぽろ

https://www.facebook.com/yoshikazu.aoyama@blauerberg

blauerberg

Page 3: 日本語ではじめるDrupal Console in Sapporo

ExperienceDrupalcontributor(Core,Views,Console,etc)

MauticcontributorDrupalsite&systemInternetofThingsWebapplication(RubyonRails,Java,Node.js,etc)Cloud/Serversidedesignandadministration(InfrastructureasCode,DevOps)EmbeddedLinuxNetworkstackfortelecommunicationnetwork(xDSL,3G,3.5G)TCP/IPNetworkstack

MaintainerofDrupalConsole(⽇本語ドキュメント)

Page 4: 日本語ではじめるDrupal Console in Sapporo

TopicsDrupalConsoleとはインストール⽅法ローカル上にサイトを⽴ち上げて基本的な使いかたを覚える

Page 5: 日本語ではじめるDrupal Console in Sapporo

AboutDrupalConsole

Page 6: 日本語ではじめるDrupal Console in Sapporo

AboutDrupalConsoleThenewCLIforDrupal.TheDrupalConsoleisatooltogenerateboilerplatecode,interactand

debugDrupal8.https://github.com/hechoendrupal/DrupalConsole

Page 7: 日本語ではじめるDrupal Console in Sapporo

DrupalConsoleとはDrushのようにCLIでDrupalを操作するためのツールです。

Drupalのサイトをインストールしたり、モジュールのインストールやアップデート、キャッシュのクリアなど、サイトを構築、運⽤するため

に必要な⼀連の機能を提供します。

Page 8: 日本語ではじめるDrupal Console in Sapporo

Drushとの違いボイラープレートコードの⽣成機能を持っている点がDrushとの⼤きな

違いです。

要するにrailsコマンドとかplay(activator)コマンドみたいなscaffoldingしてくれるやつです。

コマンド名はそのまま「drupal」です。

Page 9: 日本語ではじめるDrupal Console in Sapporo

なぜDrupalConsoleを使うのかhttps://hechoendrupal.gitbooks.io/drupal-

console/content/ja/about/why-should-you-care-about.html

Page 10: 日本語ではじめるDrupal Console in Sapporo

なぜDrupalConsoleを使うのか(超意訳)

「D8ってSymphony⼊ってすごい開発しやすくなったけど、その分覚える事多いしコード量も増えたじゃん。⾯倒だしミスりやすいから⾃動

⽣成よね?」

Page 11: 日本語ではじめるDrupal Console in Sapporo

github上で公開、開発されています

https://github.com/hechoendrupal/DrupalConsole

Page 12: 日本語ではじめるDrupal Console in Sapporo

ものすごく活発に開発が進められています。

ここ1年間のコミット数DrupalCore:2118DrupalConsole:2526Drush:622

なにげにcoreよりコミット多かったり..

$ git log --since=2015-07-01 --until=2016-06-30 --oneline --no-merges | wc -l

Page 13: 日本語ではじめるDrupal Console in Sapporo

メンテナーのEduardoGarcia(enzo)さんが来⽇してセッションを開催してくれました

Page 14: 日本語ではじめるDrupal Console in Sapporo

https://groups.drupal.org/node/509188http://enzolutions.com/talks/enzotour16-tokyo

Page 15: 日本語ではじめるDrupal Console in Sapporo

https://groups.drupal.org/node/509190http://enzolutions.com/talks/enzotour16-osaka

Page 16: 日本語ではじめるDrupal Console in Sapporo

⽇本語のドキュメントを公開しました!

https://drupalconsole.com/docs/japanese

Page 17: 日本語ではじめるDrupal Console in Sapporo

railsで新しいアプリを作成してサーバーを起動する

$ rails new myapp$ cd myapp$ bundle install$ rake db:migrate$ rails server$ open http://localhost:3000

# titleとcontentフィールドを持つblogの Model, View, Controllerを⽣成$ rails generate scaffold blog title:string content:text

Page 18: 日本語ではじめるDrupal Console in Sapporo

DrupalConsoleで新しいサイトを作成して⽴ち上げる

RailsのノリでDrupalの開発ができます。

(みなさんコードなんて⾃動⽣成したいですよね?)

$ drupal site:new mysite --latest$ cd mysite$ drupal site:install$ drupal server$ open http://localhost:8088

# blogモジュールを作成し、Model, View, Controllerを⽣成$ drupal generate:entity:content --module blog

Page 19: 日本語ではじめるDrupal Console in Sapporo

DrupalConsoleのインストール⽅法

Page 20: 日本語ではじめるDrupal Console in Sapporo

Mac&Linux$ composer global require drupal/console:1.0.0-beta5$ drupal init --override

https://hechoendrupal.gitbooks.io/drupal-console/content/ja/getting/project.html

Page 21: 日本語ではじめるDrupal Console in Sapporo

注意点(2016/8/20時点)@stableがちょっと古いので1.0.0-beta5に読み替えてください。「インストーラーを使ってローカルマシン上でプロジェクトを取得する⽅法を推奨します」となっていますが、1.0.0以降はComposerでのインストールが推奨です(というか、Composerで⼊れないと動きません)。

Page 22: 日本語ではじめるDrupal Console in Sapporo

Windows

の内容がちょっと古い(マージが間に合わず..)ので、を⾒てください。

$ composer global require drupal/console:1.0.0-beta5$ drupal init --override

公式ドキュメントPullRequest中のドキュメント

Page 23: 日本語ではじめるDrupal Console in Sapporo

注意点(2016/8/20時点)@stableがちょっと古いので1.0.0-beta5に読み替えてください。Windowsサポートのためのパッチを1.0.0-beta5のリリース後に⼊れましたが、次のリリースがまだなのでパッチを当てる必要があります。この⼿順は1.0.0-rcがリリースされれば不要になります。

$ cd ~/AppData/Roaming/Composer/vendor/drupal/console/$ curl https://patch-diff.githubusercontent.com/raw/hechoendrupal/DrupalConsole/pull/2507.patch | patch -p1$ curl https://patch-diff.githubusercontent.com/raw/hechoendrupal/DrupalConsole/pull/2567.patch | patch -p1

Page 24: 日本語ではじめるDrupal Console in Sapporo

注意点その2(2016/8/20時点)GNUtar1.29以上の場合にtarの展開に失敗するバグがあります。GitforWindowsの最新版だとこれに当たるので、 をお使いください。SETXする時のコマンドプロンプトは管理者として実⾏してください(Windowsキー+x+Aで起動できます)php.iniでphp_curl.dllとphp_openssl.dllも有効にしてください(ごめんなさい、ドキュメント直します。。)

2.9.0

Page 25: 日本語ではじめるDrupal Console in Sapporo

なぜかWindowsサポートを頑張るハメに..

(メインのメンテナーがみんなWindows機を持っていないのは秘密)

supportGitBashonwindowspreventtimeoutofserverprocessonwindowsupdatesetupinstructionsforWindowsTranslateja/getting/windows.md

Page 26: 日本語ではじめるDrupal Console in Sapporo

⽇本語表⽰に切り替える$ drupal settings:set language ja$ drupal

Drupal Console (1.0.0-beta4) | 現在のDrupalのバージョン (8.1.3)===============================================================

設定ファイルをユーザーのホームディレクトリにコピーする

drupal init --override

Drupalをダウンロード、インストールしてサーバーを起動する

drupal chain --file=~/.console/chain/quick-start.yml

Drupalプロジェクトを新規作成する

drupal site:new drupal8.dev --latest...

Page 27: 日本語ではじめるDrupal Console in Sapporo

使ってみましょう

Page 28: 日本語ではじめるDrupal Console in Sapporo

今回やってみることローカルマシン上にDrupalのサイトをインストールするモジュールをインストールしてみるテーマをインストールして差し替えてみるダミーのコンテンツを⽣成するBootstrapのサブテーマを作成するオリジナルのモジュールを作成する

Page 29: 日本語ではじめるDrupal Console in Sapporo

新しいサイトを作ってサーバーを起動するまで

$drupalchain--file=~/.console/chain/quick-start.ymlコマンドを1回叩くだけ、1,2分でサイトが⽴ち上がります。

Drupal8をダウンロード、インストールして起動する

Page 30: 日本語ではじめるDrupal Console in Sapporo

$ drupal chain --file=~/.console/chain/quick-start.yml

// site:new drupal 8.1.7 をダウンロードしています

[OK] Drupal 8.1.7 は /private/tmp/drupal8.dev にダウンロードされました

// site:install Drupal 8のインストールプロセスを開始しています。

[OK] Drupal 8のインストールが正常に完了しました。

// server

[OK] Executing php from /Users/aoyama/.phpenv/versions/7.0.2/bin/php.

PHP 7.0.2 Development Server started at Sat Jul 30 00:22:43 2016Listening on http://127.0.0.1:8088Document root is /private/tmp/drupal8.dev

Page 31: 日本語ではじめるDrupal Console in Sapporo

drupalchainの中⾝を覗いてみるcommands:# Download Drupal - command: site:new arguments: directory: 'drupal8.dev' options: latest: 'true'# Install Drupal - command: site:install options: langcode: en db-type: sqlite db-file: sites/default/files/.ht.sqlite site-name: 'Drupal 8 Quick Start' site-mail: [email protected] account-name: admin account-mail: [email protected] account-pass: admin arguments: profile: standard# Start php built-in server - command: server

Page 32: 日本語ではじめるDrupal Console in Sapporo

chainは複数のコマンドの組み合わせ

~/.console/chainにサンプルが⼊ってます。うまく活⽤すればセキュリティ更新など⾊々な作業が⾃動化が可能。

https://github.com/hechoendrupal/DrupalConsole/blob/master/config/dist/chain/quick-start.yml

Page 33: 日本語ではじめるDrupal Console in Sapporo

DrupalConsoleでできること$ drupal list

https://hechoendrupal.gitbooks.io/drupal-console/content/ja/commands/available-commands.html

Page 34: 日本語ではじめるDrupal Console in Sapporo

モジュールをインストールしてみる$ drupal module:install devel$ drupal module:install admin_toolbar --latest$ drupal module:install admin_toolbar_tools

Page 35: 日本語ではじめるDrupal Console in Sapporo

テーマをインストールして差し替えてみる$ drupal theme:download bootstrap$ drupal theme:install bootstrap --set-default

Page 36: 日本語ではじめるDrupal Console in Sapporo

ダミーのユーザーやタクソノミー、コンテンツを⽣成する

$ drupal create:users$ drupal create:terms$ drupal create:nodes

Page 37: 日本語ではじめるDrupal Console in Sapporo

Bootstrapのサブテーマを作成する$ drupal generate:theme --theme=my_bootstrap_subtheme --base-theme=bootstrap$ drupal theme:install my_bootstrap_subtheme --set-default

Page 38: 日本語ではじめるDrupal Console in Sapporo

カスタムモジュールのスケルトンを作成する$ drupal generate:module --module=mymodule

Page 39: 日本語ではじめるDrupal Console in Sapporo

カスタムモジュールにentity(モデル)のCRUD機能を追加

$ drupal generate:entity:content --module=mymodule --has-bundles --is-translatable

⽣成または更新されたファイル サイトのパス: /Users/aoyama/drupal8.dev 1 - modules/custom/mymodule/mymodule.permissions.yml 2 - modules/custom/mymodule/mymodule.links.menu.yml 3 - modules/custom/mymodule/mymodule.links.task.yml 4 - modules/custom/mymodule/mymodule.links.action.yml 5 - modules/custom/mymodule/src/DefaultEntityAccessControlHandler.php 6 - modules/custom/mymodule/src/DefaultEntityTranslationHandler.php 7 - modules/custom/mymodule/src/Entity/DefaultEntityInterface.php 8 - modules/custom/mymodule/src/Entity/DefaultEntity.php 9 - modules/custom/mymodule/src/DefaultEntityHtmlRouteProvider.php 10 - modules/custom/mymodule/src/Entity/DefaultEntityViewsData.php 11 - modules/custom/mymodule/src/DefaultEntityListBuilder.php 12 - modules/custom/mymodule/src/Form/DefaultEntitySettingsForm.php 13 - modules/custom/mymodule/src/Form/DefaultEntityForm.php 14 - modules/custom/mymodule/src/Form/DefaultEntityDeleteForm.php 15 - modules/custom/mymodule/default_entity.page.inc 16 - modules/custom/mymodule/templates/default_entity.html.twig 17 - modules/custom/mymodule/templates/default-entity-content-add-list.html.twig 18 - modules/custom/mymodule/mymodule.module 19 - modules/custom/mymodule/mymodule.module

Page 40: 日本語ではじめるDrupal Console in Sapporo

どれくらいのコードが⽣成されたか⾒てみる

1000⾏のモジュールをバグやtypoなしに1分で書けますか?

$ find modules/custom/mymodule -type f| xargs wc -l | tail -n 1 1161 total

Page 41: 日本語ではじめるDrupal Console in Sapporo

D8からは開発スタイルを変えましょう

D7のようにモジュールをスクラッチから書くのは結構⼤変複雑な機能を実現しようとすると、なんだかんだでSymphonyの知識は必須でもSymphonyのおかげでインターフェースが統⼀され、コードの⾃動⽣成はしやすくなった他の開発フレームワークに習って、⾃動⽣成できるものはしていきましょう

Page 42: 日本語ではじめるDrupal Console in Sapporo

よく使うかもしれないコマンド集$ drupal cache:rebuild # キャッシュクリア

$ drupal module:update {module} # コアやモジュールをアップデート

$ drupal module:install {module} # モジュールをインストール

$ drupal module:uninstall {module} # モジュールをアンインストール

$ drupal theme:download {theme} # テーマをダウンロード

$ drupal theme:install {theme} # テーマをインストール

$ drupal database:connect # DBに接続

$ drupal database:dump # DBをバックアップ

$ drupal database:restore # バックアップからDBをリストア

$ drupal cron:extcute # cront taskを実⾏

$ drupal generate:***** # いろいろ⾃動⽣成

Page 43: 日本語ではじめるDrupal Console in Sapporo

まとめ

Page 44: 日本語ではじめるDrupal Console in Sapporo

DrupalConsoleとは今、⼀番簡単に早くD8を試すことができるツールインストールはすごく簡単MacやWindows上で動くローカルサイトを3分で⽴ち上げ可能PHPのビルドインサーバーとsqliteだけでも動くので、apacheとかmysqlは不要。サーバー苦⼿な⼈でも使える。railsのようなCLIでdrupalの開発ができる、⾃動⽣成最⾼!Drushにしかできないこと、DrupalConsoleにしかできないことがあるので併⽤がおすすめ⽇本語のドキュメントを公開したよ!

Page 45: 日本語ではじめるDrupal Console in Sapporo

おまけ

Page 46: 日本語ではじめるDrupal Console in Sapporo

ThinkITでDrupal8の⼊⾨記事を連載中!

初⼼者でも挫折しないゼロから始めるDrupal8⼊⾨

Page 47: 日本語ではじめるDrupal Console in Sapporo

ANNAIではエンジニアを絶賛募集中です!

Page 48: 日本語ではじめるDrupal Console in Sapporo

リモートワーク可能です!

Page 49: 日本語ではじめるDrupal Console in Sapporo

Contactus

https://annai.co.jp/recruit