メインコンテンツに移動
ホーム

古松

メインナビゲーション

  • ホーム
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • Drupal8: Drupal Consoleのインストールとカスタムモジュールの作成

Drupal8: Drupal Consoleのインストールとカスタムモジュールの作成

CLIツール:Drupal Console とDrushの違い

  • CLIツールとして、Drupal8から、Drupal Consoleが出てきました。Drupalの開発にDrushというコンソールツールがありますが、それと違う機能を持つDrupal Consoleが出てきました。何が違うでしょうか。
    • Drupal8はSymfonyの土台に建てたものです
    • Drupal ConsoleはSymfony Console libraryをベースに作ったものです
    • よりSymfonyと結合できるように、Drupal Console を作ったでしょう
  • Drushと違う点は、Drupal Consoleがボイラープレートコード(boilerplate code)作成することができます

Drupal Consoleのインストール

  • 一般的にComposerでDrupal Consoleをインストールしたほうが便利でしょう
  • 以下のComposerコマンドでDrupal Consoleをインストール
    • composer require drupal/console
      ComposerよりDrupal Consoleのインストール
  • vendorフォルダの下に、drupal console を格納するdrupalのフォルダあることを確認できます
    • drupal consoleの実行ファイルは 以下のフォルダの下にあります:vendor/drupal/console/bin/drupal.php
    • バッチファイルを作成して実行するか、パスを通してPHP CLIで実行できます
      @echo off
      php "%~dp0/vendor/drupal/console/bin/drupal.php" %*

       

Drupal ConsoleよりDrupal8のカスタムモジュールのスケルトンを作成

  • Drupal8のカスタムモジュール作成に、手動でモジュールの構成ファイル(info, yml)、moduleファイルの作成ができます
  • 手動作成の手間を減らすため、Drupal Consoleを起動して、カスタムモジュールのスケルトン作成ができます
    • drupal generate:module  コマンドで、コーソルで対話しながらカスタムモジュール(module_help)を作成します
      D:\develop\sources\php\old-pine-d8>drupal generate:module
      
       // Welcome to the Drupal module generator
      
       Enter the new module name:
       > module_help
      
       Enter the module machine name [module_help]:
       >
      
       Enter the module Path [modules/custom]:
       >
      
       Enter module description [My Awesome Module]:
       > Add some functions to help other modules
      
       Enter package name [Custom]:
       > custom
      
       Enter Drupal Core version [8.x]:
       >
      
       Do you want to generate a .module file? (yes/no) [yes]:
       >
      
       Define module as feature (yes/no) [no]:
       >
      
       Do you want to add a composer.json file to your module? (yes/no) [yes]:
       >
      
       Would you like to add module dependencies? (yes/no) [no]:
       >
      
       Do you want to generate a unit test class? (yes/no) [yes]:
       >
      
       Do you want to generate a themeable template? (yes/no) [yes]:
       >
      
       Do you want proceed with the operation? (yes/no) [yes]:
       >
      
  • カスタムフォルダに確認すると、モジュールのスケルトンファイルが作成できました
    Drupal Consoleよりモジュールのスケルトンファイル作成

Windows環境でDrushのインストール

Drupalを開発する環境には、やはりDrushの存在が無視できないです。Drushがあれば、パッケージの更新、モジュールのインストール、キャッシュのクリアなどで、コマンド一行で完結ができます。

DrushがShellスクリプト(LinuxまはUnix)なので、Windowsの環境に動かせるのは少し面倒見たいですが、Windowsの開発環境でDrushをインストールしたいです。Drushインストールの情報を調べてみましたが、WindowsにDrushのパッケージがあるようで、そのパッケージをダウンロードしてインストールしてみましたが、いろいろなエラーが出てきて、困っていました。

いろいろ調べてみましたが、やはり上記Windows向けのパッケージをインストールではなく、Composerからインストールして、各必要な部品を揃ったら、うまく動作しました。これらのエラー及びインストール手順を纏めました。

Windows向けのDrushパッケージのインストール

  • Drushの本家(http://docs.drush.org/en/master/install/)からDrush7.0.0をダウンロード
  • そのページのインストール手順でローカルに展開して、インストールました。
  • WindowsのPowerShellを開いて、Drushの状態(drush status)を調べてましたが、問題なく動作していました。
  • 但し、パッケージのインストール(drush dl og)をしようとしたときに、エラーが発生ました
    PS C:\develop\dev_sources\php\drupal> drush dl og
    simplexml_load_file(): I/O warning : failed to load external entity "" Project.php:72                          [warning]
    Failed to get available update data from https://updates.drupal.org/release-history/og/7.x                       [error]
    Could not download requested project(s).                                                                         [error]
    
  • エラーイメージは以下のようです
  • このエラーについていろいろ調べましたが、恐らくDrushに使用しているPHPのバージョンが合わないようです

インストールDrushステップバイステップ

  • Windows向けのパッケージのインストールをやめて、少し面倒な方法でDrushのインストール(http://drupalistasgroup.com/installing-drush-7-windows-xampp)をしました。
  • Windowsバージョンのgit bash(https://git-scm.com/downloads)をダウンロードしてインストール
  • WindowsバージョンのComposer(https://getcomposer.org/)をダウンロードして、インストール
    • DOSプロンプトを起動して、「composer -V」を入力し、バージョンの表示確認ができたら、インストール成功となります。
  • WindowsバージョンのLibArchive(http://gnuwin32.sourceforge.net/packages/libarchive.htm)をダウンロードして、インストール
  • WindowsバージョンのGzip(http://gnuwin32.sourceforge.net/packages/gzip.htm)をダウンロードして、インストール
    • bashtarの方がtarより安定的で、C:\Program Files\GnuWin32\bin\bsdtar.exe をコピーして C:\Program Files\GnuWin32\bin\tar.exe に名前を変更する
  • WindowsバージョンのWget(http://gnuwin32.sourceforge.net/packages/wget.htm)をダウンロードして、インストール
    • システムパスに「C:\Program Files\GnuWin32\bin」を追加します
  • DOSプロンプトを起動して、「composer global require drush/drush:dev-master」を入力し、Drushをインストールする
    • インストール先:「c:\users\[user-count]\AppData\Roaming\Composer\Vendor\drush」に(現時点はversion8)インストールされたはずです。
    • システムパスに「c:\users\[user-count]\AppData\Roaming\Composer\Vendor\drush\drush」を追加します。
  • システムパスが追加されたら、DOSプロンプトを一度閉じて、再度起動して、Drushのコマンドを入力して、動作を確認する

Drushのアンインストールと別のバージョン指定してインストール

  • Drushのアンインストール方法を探してみたが、あまり見つかりませんでした
    • Drushのバージョンアップ: drush self-update
  • Windowsの環境では、Drushインストールされているディレクトリを削除して、再インストールすることができます
    • 「「c:\users\[user-count]\AppData\Roaming\Composer\Vendor」ディレクトの下にある「drush」フォルダを削除します
  • バージョン指定(例:バージョン8.x)してDrupalのインストール:「composer global require drush/8.x」

マルティサイトにDrushの使用方法

  • Drupalのマルティサイトをインストールした場合に、Drushのコマンドがどのサイトに適応するかは指定する必要があります
  • Drush用のマルティサイトに指定するエリアスの作成方法がよくあります
    • Linux環境のエリアス作成なので、Windows環境には適応できない
  • 直接にサイト名を指定する方法もあります
    • drush -l [site url] -y cc all  -> drush -l 2drills-d7.local -y cc all

コマンド(Drush)でモジュールのアンインストール

通常手段でモジュールのアンインストールができない場合Drushコマンドで

  • 通常手段として、Admin権限のユーザーがモジュールのインストール、アンインストールを行います
  • 時にAdminユーザーがサイトへのログインもできないことがあります。例:ログイン管理のモジュール(reCaptch_3)に問題が生じました
    • Adminユーザーがサイトへのログインもできなくて、当然Admin関連の操作もできないです
  • どのモジュールに問題があるかを特定できれば、Drushコマンドでも関連モジュールのアンインストールができます

drushのインストールおよびモジュールのショート名の取得

  • drushのインストールは以下の文書をご参考ください
    • レンタルサーバー(Valueserver)でのDrushインストールと実行環境 (264)
  • drupalのルートディレクトリで、モジュールをアンインストールします(例:ReCaptcha V3)
    • drush pm:uninstall recaptcha_v3
    • モジュールのショート名が、当該モジュールのダウンロードページのURLの最後の文字となります
      Drushよりモジュールのアンインストール
  • Drushコマンドがなければ、この問題をどのように解決するかはよく分からないです

検索フォーム

カテゴリ別

  • laravel
  • drupal
  • javascript
  • windows
  • html
  • mysql
  • php
  • apache
  • css
  • SEO
  • video
  • wordpress
  • linux
  • python
  • Electron
  • Visual Studio Code

google ads