こんにちは!
Nishiです。前回は Magento Open Source 2.4.6-p4 のインストールをおこないました。
そこで、インストール時にも bin/magento コマンドがいくつか出てきたと思います。
今回は、私が1年間 Magentoを使った開発に関わってきた中でよく使った bin/magentoコマンドについて書いていきたいと思います。
初めに
bin/magento コマンドはMagentoのディレクトリで実行していきます。
前回のインストール記事の場合は、public_html/magento に移動して実行してください。
1. システムキャッシュの管理
①キャッシュのクリア
$ bin/magento cache:clean
// 省略
$ bin/magento c:c
特定のキャッシュタイプをクリアします。主に開発中に変更が反映されないときに使用します。
【使用例】
・開発中にコードを変更したが、その変更がサイトに反映されない場合
・管理画面で設定を変更したけど、変更が反映されない場合 等
何かを変更したのに反映されないなと思ったら一度このコマンドを実行していました。
一番使用しているコマンドと思います。
②キャッシュのフラッシュ
$ bin/magento cache:flush
// 省略
$ bin/magento c:f
すべてのキャッシュをクリアします。
cache:cleanとは違い、外部のキャッシュ(Redisなど)も含めて全てのキャッシュをクリアします。
【使用例】
・大規模な設定変更や多くのコンテンツの一括更新を行った後、変更が正しく反映されるようにするために全てのキャッシュをクリアする必要がある場合
・Redisなどの外部キャッシュシステムを使用している場合、内部キャッシュのクリアだけでは変更が反映されないことがあります。全てのキャッシュを完全にクリアする必要がある場合 等
DataPatchを使用して、たくさんのスキーマやデータの変更を行った後に実行していました。
2. モジュールの管理
◇ モジュールとは?
ウェブサイトの特定の機能や機能のグループを追加したり変更したりするための小さなプログラムのパーツのようなものです。例えば、商品の表示方法についてや支払い方法についてなど、異なる機能ごとにモジュールが用意されています。
商品の表示方法についての機能は必要だけど、支払い方法についてのモジュールは必要ないなど、簡単に選択する事が出来ます。
なので、モジュールを使用することで、ウェブサイトを必要な機能でカスタマイズすることができます。
①モジュールの状態確認
$ bin/magento module:status
インストールされているモジュールの有効/無効の状態が確認できます。
実行してみました。実行結果を確認してみます。
"List of enable modules:"下に書かれているモジュールが現在有効のモジュールになります。
下記画像の場合、Magento_Store ~ Temando_ShippingRemover です。
"List of disabled modules:"下に書かれているモジュールが現在無効のモジュールになります。
下記画像の場合、Magento_TwoFactorAuth, Magento_AdminAdobeImsFactorAuth です。
他にも、有効 or 無効なモジュールのみの場合や、特定のモジュールの状態を確認したい場合は下記のコマンドで確認する事が出来ます。
// 有効なモジュールを確認
$ bin/magento module:status --enabled
// 無効なモジュールを確認
$ bin/magento module:status --disabled
// 指定のモジュールの有効/無効の状態が確認
$ bin/magento module:status <Module_Name>
②モジュールの有効化
$ bin/magento module:enable <Module_Name>
無効のモジュールを有効に変更する事が出来ます。
bin/magento module:statusコマンドを実行した時に無効だった、Magento_AdminAdobeImsTwoFactorAuth を有効にしてみます。
実行コマンド: bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
コマンド実行後、再度 bin/magento module:status コマンドで確認すると「enable」に変更されています。
③モジュールの無効化
$ bin/magento module:disable <Module_Name>
有効のモジュールを無効に変更する事が出来ます。
先ほどの Magento_AdminAdobeImsTwoFactorAuth を無効に変更してみます。
実行コマンド: bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
コマンド実行後、再度 bin/magento module:status コマンドで確認すると「disabled」に変更されています。
3. デプロイメント関連
①データベースのアップグレード
$ bin/magento setup:upgrade
新しいモジュールを導入したり、既存のモジュールを更新した後に実行する必要があります。
これにより、Magentoが新しいモジュールを認識し、必要なデータベースの変更(スキーマ更新やデータ更新など)を行います。
なので、デプロイの実行以外でもdatapatchを使用してデータの変更を行った時等に実行をしていました。
②依存関係のコンパイル
$ bin/magento setup:di:compile
Magentoの依存性注入(DI)に関連するソースコードをコンパイルするコマンドになります。
◇ 依存性注入とは?
オブジェクトが他のオブジェクトを使用する際に、そのオブジェクトを外部から使用する事が出来る方法です。これによって、オブジェクト間の依存関係を解消することが可能となります。
モジュールの有効・無効を変更すると、
変更したモジュールが他のモジュールに依存している場合、その依存関係が適切に解決されるように、関連するクラスを再生成する必要があるため、bin/magento setup:di:compile を実行する必要があります。
他にも、di.xmlファイルの変更後などに実行したりします。
※動作モードが 開発モードの場合はMagentoがファイル更新を検出して必要に応じて自動で生成されますが、本番モードの場合は自動で生成されないため、コマンドを実行して生成する必要があります。
③静的コンテンツのデプロイ
$ bin/magento setup:static-content:deploy
テーマの変更や翻訳ファイルの更新後に実行します。
ウェブサイトのデザインや機能に必要な静的ファイル(CSS、JavaScript、画像など)を生成し、変更をウェブサイトに反映する事が出来ます。
※こちらも、本番モードの場合は自動で生成されないため、コマンドを実行して生成する必要があります。
開発モードとデフォルトモードの場合は最後に「-f」を追加して実行する必要があります。
$ bin/magento setup:static-content:deploy -f
4. 動作モード
Magentoが実行される環境や目的に応じて、動作を最適化するための設定になります。
①動作モードの確認
$ bin/magento deploy:mode:show
インストール後変更していないので、下記画像の様に、現在はデフォルトモードかと思います。
②動作モードの変更
$ php bin/magento deploy:mode:set <動作モード>
動作モードの変更ができます。
動作モードは「開発」「デフォルト」「本番」の3種類あります。
// 開発モードに変更
$ php bin/magento deploy:mode:set developer
// デフォルトモードに変更
$ php bin/magento deploy:mode:set default
// 本番モードに変更
$ php bin/magento deploy:mode:set production
動作モードについては、次の記事で詳しく書きたいと思います。
最後に
今回は、Magento開発でよく使用するbin/magentoコマンドをまとめてみました。
コードを変更しても反映されない場合、コマンドの実行を忘れていることが多いので、
参考にしていただければと思います。
今回の記事で出てくるコマンド以外にもたくさんあるので、気になる方は公式サイト等を確認してみてください。
公式サイト(一般的なコマンド | Adobe Commerce
次回は今回の記事にも出てきた「動作モード」について書いていきたいと思います。