プラグインでページを既存のページを無効化する手順について、解説します。
Edit me
概要
EC-CUBE本体で定義されているページを、利用しない場合もあるかと思います。
その場合は、利用できないようにしておくほうが安全です。
ここでは、利用しないページで404エラーを返す手順について解説します。
前提
プラグインジェネレータで、プラグインコードを「Customize」で作成したものとして、解説していきます。
プラグインジェネレータの利用方法については、こちらを参照してください。
Controllerの作成
app/Plugin/Customize/Contoroller配下に、Controllerを作成します。
ファイル名は、NotFoundController.php
としてください。
<?php
namespace Plugin\Customize\Controller;
use Eccube\Application;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class NotFoundController
{
public function index(Application $app, Request $request)
{
// 常にNotFoundHttpExceptionをthrowする.
throw new NotFoundHttpException();
}
}
ServiceProviderでルーティングを定義する
app/Plugin/Customize/ServiceProvider/CustomizeServiceProvider
に、ルーティングを定義します。
例えば、お問い合わせページを無効化したい場合、registerメソッド内に、以下のように記載をしてください。
class CustomizeServiceProvider implements ServiceProviderInterface
{
public function register(BaseApplication $app)
{
// お問い合わせページの削除
$app->match('/contact', 'Plugin\Customize\Controller\NotFoundController::index')->bind('contact');
http://[EC-CUBEインストール先]/contact
にアクセスし、ページがありません
のエラー画面が表示されれば成功です。
ルーティングの確認方法
EC-CUBE本体で定義されているルーティング/URLを確認する場合は、router:debug
コマンドで確認できます。
詳しくはrouter:debugの使い方を参考にしてください。