日本語ではじめるdrupal console in sapporo
Post on 13-Apr-2017
369 Views
Preview:
TRANSCRIPT
⽇本語ではじめるDrupalConsolein
Sapporo
⻘⼭義万
(あおやまよしかず)
Aboutme
Facebook:Twitter:Drupal.org:
ANNAIIncDrupalJapanUserGroupDrupalさっぽろ
https://www.facebook.com/yoshikazu.aoyama@blauerberg
blauerberg
ExperienceDrupalcontributor(Core,Views,Console,etc)
MauticcontributorDrupalsite&systemInternetofThingsWebapplication(RubyonRails,Java,Node.js,etc)Cloud/Serversidedesignandadministration(InfrastructureasCode,DevOps)EmbeddedLinuxNetworkstackfortelecommunicationnetwork(xDSL,3G,3.5G)TCP/IPNetworkstack
MaintainerofDrupalConsole(⽇本語ドキュメント)
TopicsDrupalConsoleとはインストール⽅法ローカル上にサイトを⽴ち上げて基本的な使いかたを覚える
AboutDrupalConsole
AboutDrupalConsoleThenewCLIforDrupal.TheDrupalConsoleisatooltogenerateboilerplatecode,interactand
debugDrupal8.https://github.com/hechoendrupal/DrupalConsole
DrupalConsoleとはDrushのようにCLIでDrupalを操作するためのツールです。
Drupalのサイトをインストールしたり、モジュールのインストールやアップデート、キャッシュのクリアなど、サイトを構築、運⽤するため
に必要な⼀連の機能を提供します。
Drushとの違いボイラープレートコードの⽣成機能を持っている点がDrushとの⼤きな
違いです。
要するにrailsコマンドとかplay(activator)コマンドみたいなscaffoldingしてくれるやつです。
コマンド名はそのまま「drupal」です。
なぜDrupalConsoleを使うのかhttps://hechoendrupal.gitbooks.io/drupal-
console/content/ja/about/why-should-you-care-about.html
なぜDrupalConsoleを使うのか(超意訳)
「D8ってSymphony⼊ってすごい開発しやすくなったけど、その分覚える事多いしコード量も増えたじゃん。⾯倒だしミスりやすいから⾃動
⽣成よね?」
github上で公開、開発されています
https://github.com/hechoendrupal/DrupalConsole
ものすごく活発に開発が進められています。
ここ1年間のコミット数DrupalCore:2118DrupalConsole:2526Drush:622
なにげにcoreよりコミット多かったり..
$ git log --since=2015-07-01 --until=2016-06-30 --oneline --no-merges | wc -l
メンテナーのEduardoGarcia(enzo)さんが来⽇してセッションを開催してくれました
https://groups.drupal.org/node/509188http://enzolutions.com/talks/enzotour16-tokyo
https://groups.drupal.org/node/509190http://enzolutions.com/talks/enzotour16-osaka
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
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
DrupalConsoleのインストール⽅法
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
注意点(2016/8/20時点)@stableがちょっと古いので1.0.0-beta5に読み替えてください。「インストーラーを使ってローカルマシン上でプロジェクトを取得する⽅法を推奨します」となっていますが、1.0.0以降はComposerでのインストールが推奨です(というか、Composerで⼊れないと動きません)。
Windows
の内容がちょっと古い(マージが間に合わず..)ので、を⾒てください。
$ composer global require drupal/console:1.0.0-beta5$ drupal init --override
公式ドキュメントPullRequest中のドキュメント
注意点(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
注意点その2(2016/8/20時点)GNUtar1.29以上の場合にtarの展開に失敗するバグがあります。GitforWindowsの最新版だとこれに当たるので、 をお使いください。SETXする時のコマンドプロンプトは管理者として実⾏してください(Windowsキー+x+Aで起動できます)php.iniでphp_curl.dllとphp_openssl.dllも有効にしてください(ごめんなさい、ドキュメント直します。。)
2.9.0
なぜかWindowsサポートを頑張るハメに..
(メインのメンテナーがみんなWindows機を持っていないのは秘密)
supportGitBashonwindowspreventtimeoutofserverprocessonwindowsupdatesetupinstructionsforWindowsTranslateja/getting/windows.md
⽇本語表⽰に切り替える$ 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...
使ってみましょう
今回やってみることローカルマシン上にDrupalのサイトをインストールするモジュールをインストールしてみるテーマをインストールして差し替えてみるダミーのコンテンツを⽣成するBootstrapのサブテーマを作成するオリジナルのモジュールを作成する
新しいサイトを作ってサーバーを起動するまで
$drupalchain--file=~/.console/chain/quick-start.ymlコマンドを1回叩くだけ、1,2分でサイトが⽴ち上がります。
Drupal8をダウンロード、インストールして起動する
$ 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
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: admin@example.com account-name: admin account-mail: admin@example.com account-pass: admin arguments: profile: standard# Start php built-in server - command: server
chainは複数のコマンドの組み合わせ
~/.console/chainにサンプルが⼊ってます。うまく活⽤すればセキュリティ更新など⾊々な作業が⾃動化が可能。
https://github.com/hechoendrupal/DrupalConsole/blob/master/config/dist/chain/quick-start.yml
DrupalConsoleでできること$ drupal list
https://hechoendrupal.gitbooks.io/drupal-console/content/ja/commands/available-commands.html
モジュールをインストールしてみる$ drupal module:install devel$ drupal module:install admin_toolbar --latest$ drupal module:install admin_toolbar_tools
テーマをインストールして差し替えてみる$ drupal theme:download bootstrap$ drupal theme:install bootstrap --set-default
ダミーのユーザーやタクソノミー、コンテンツを⽣成する
$ drupal create:users$ drupal create:terms$ drupal create:nodes
Bootstrapのサブテーマを作成する$ drupal generate:theme --theme=my_bootstrap_subtheme --base-theme=bootstrap$ drupal theme:install my_bootstrap_subtheme --set-default
カスタムモジュールのスケルトンを作成する$ drupal generate:module --module=mymodule
カスタムモジュールに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
どれくらいのコードが⽣成されたか⾒てみる
1000⾏のモジュールをバグやtypoなしに1分で書けますか?
$ find modules/custom/mymodule -type f| xargs wc -l | tail -n 1 1161 total
D8からは開発スタイルを変えましょう
D7のようにモジュールをスクラッチから書くのは結構⼤変複雑な機能を実現しようとすると、なんだかんだでSymphonyの知識は必須でもSymphonyのおかげでインターフェースが統⼀され、コードの⾃動⽣成はしやすくなった他の開発フレームワークに習って、⾃動⽣成できるものはしていきましょう
よく使うかもしれないコマンド集$ 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:***** # いろいろ⾃動⽣成
まとめ
DrupalConsoleとは今、⼀番簡単に早くD8を試すことができるツールインストールはすごく簡単MacやWindows上で動くローカルサイトを3分で⽴ち上げ可能PHPのビルドインサーバーとsqliteだけでも動くので、apacheとかmysqlは不要。サーバー苦⼿な⼈でも使える。railsのようなCLIでdrupalの開発ができる、⾃動⽣成最⾼!Drushにしかできないこと、DrupalConsoleにしかできないことがあるので併⽤がおすすめ⽇本語のドキュメントを公開したよ!
おまけ
ANNAIではエンジニアを絶賛募集中です!
リモートワーク可能です!
top related