Drupal8 カスタムモジュール作成手順
HelloWorldモジュールを作る
- Drupal8 Hello Worldモジュール作成手順 | レンタルサーバーのCPIスタッフブログ
- Drupal 8 入門 : カスタムモジュール作成編 | Drupal専門の開発会社 Studio Umi
この辺を参考に作成しました。 バージョンの違いなんですかね?記事通りだと動かないとことかあって、ちょこちょこ変えてるんでその辺書いていきます。
ディレクトリとファイルを作成する
modulesディレクトリの直下に任意の名前でディレクトリを作成します。 ここでは「hello」とします。
modules/hello
modules/custom/helloのようにもう一つディレクトリを掘ってもちゃんと認識してくれます。 カスタムモジュールを一箇所に集めたい場合なんかは便利です。
作成したディレクトリ内に以下のファイルを作成します。
hello/
- hello.info.yml
- hello.module
- hello.routing.yml
- src/Controller/HelloController.php
ファイルを編集する
hello.info.yml
name: Hello World description: Just print 'Hello World!' on display. type: module core: 8.x
hello.module
モジュールの本体ですが、今回は何も記述しません。
hello.routing.yml
hello: path: '/hello' defaults: _title: 'ようこそ' _controller: 'Drupal\hello\Controller\HelloController::world' requirements: _permission: 'access content'
ブラウザから /hello
にアクセスした場合、指定のコントローラーの関数を呼び出すように設定します。
ここでは、HelloControllerのworld()を呼んでいます。
src/Controller/HelloController.php
<?php namespace Drupal\hello\Controller; class HelloController { public function world() { return array( '#markup' => '' . t('Hello World') . '', ); } }
ここまででモジュールが完成しました。
作成したモジュールをインストール
- 管理者権限でログイン
- 管理メニューから[機能拡張]メニューを開く
- 機能一覧から作成したモジュールを探す
- チェックを入れてインストール
有効化されれば成功です。 リストにモジュールが表示されない、正しくインストールできない、などの場合は設定を見直してください。
/hello
早速 /hello
にアクセスしてみます。
表示できました。
Drupal8.4をインストール
インストールの準備
ここを参考に。 私の環境はこんな感じです。
- PHP 7.0.23
- PostgreSQL 9.6.5
- Apache 2.4
Drupal本体を入手
公式サイトからdrupal本体をダウンロードします。
wget https://ftp.drupal.org/files/projects/drupal-8.4.0.tar.gz tar -zxvf drupal-8.4.0.tar.gz
tarを解凍し、サーバーのDcumentRootに配置します。 この時、フォルダ名は好きな名称に変更してください。
mv drupal-8.4.0 nmta
ここではnmtaに変更しました。変更しなくてもいいです。
インストール
先ほど配置したDrupal本体にブラウザからアクセスします。
画面からインストールに必要な設定を行います。
必要なフォルダの作成
sites/default/
の直下にfiles
、作成したfilesの直下にtranslations
フォルダを作成します。
mkdir -p sites/default/files/translations
作成したフォルダは書き込みが可能なパーミッションを設定します。
chmod 777 sites/default/files sites/default/files/translations
settings.php
translationsフォルダを作成したため翻訳ファイルが配置可能になり、エラーが日本語で表示されるようになりました。
sites/default直下にdefault.settings.phpファイルが置いてあるので、そのファイルをコピーし、settings.phpを作成します。
インストール時は書き込みが可能なようにsettings.phpのパーミッションを変更します。 後で出て来ますが、インストール完了後はパーミッションを元に戻すのを忘れないように。
とりあえず、 chmod 777 settings.php
にします。
DBの設定
データベース(DB)の設定を行います。
使用するDBはあらかじめ作成しておきます。
サイトの環境設定
DBの設定まで完了すればインストールは完了です。 正常に完了すると先ほどのsettings.phpの書き込み権限をなくすよう警告が表示されます。
chmod 644 settings.php
サイトの基本情報を入力し設定は全て完了です。
インストール後
サイトの状態
管理者権限でログインしたら、[レポート] - [サイトの状態]の順に進みます。 ここではサイトの状態を確認することができます。
信頼の置けるホストの設定
settings.phpに使用するドメイン名に合わせて設定を追加します。 詳しくはこちら Trusted Host settings | Drupal.org
localhostの場合、このように書きます。
$settings['trusted_host_patterns'] = [ '^localhost$', ];