Pickles 2

  • HOME
  • ブログ
  • エントリースクリプトのファイル名を変更するには

エントリースクリプトのファイル名を変更するには

Pickles 2 のプレビュー環境は、 .px_execute.php というエントリースクリプトから全ての処理が開始されます。多くの場合、エントリースクリプトについて意識することはありませんが、プロジェクトの構成や要件によっては、このファイル名を変更したい場合があるかもしれません。

この記事では、Pickles 2 のエントリースクリプトのファイル名を変更する手順についてご紹介します。

この記事でやること

この記事では、 Pickles 2 のエントリーファイル名を .px_execute.php から index.php に変更する場合 を想定して、手順を進めていきます。

index.php 以外のファイル名にしたい場合は、適宜読み換えてください。

エントリーファイル名を変更する

エントリースクリプトファイル自体のファイル名を変更します。

エントリースクリプトは、一般的には src_px2/.px_execute.php というファイル名で置かれています。このファイル名を、index.php に変更してください。

.htaccess を修正する

エントリースクリプトと同じ階層には、.htaccess が配置されています。

このファイルの役割は、ウェブサーバー Apache を設定して、静的なURLでのリクエストを エントリースクリプトにリダイレクトすることです。

リダイレクトさせる設定の中に、エントリースクリプトのパスの記述が含まれているので、これを変更します。

#-------------------------
#  for pickles2
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews +FollowSymLinks
    </IfModule>

    RewriteEngine on

    # RewriteCond %{REQUEST_URI} !^.*?/\.px_execute\.php/
    # ↓次のように修正
    RewriteCond %{REQUEST_URI} !^.*?/index\.php/
    RewriteCond %{REQUEST_URI} /(.*?\.(?:html|htm|css|js))?$
    # RewriteRule ^(.*)$ \.px_execute\.php/$1 [L]
    # ↓次のように修正
    RewriteRule ^(.*)$ index\.php/$1 [L]

    # RewriteCond %{REQUEST_URI} !^.*?/\.px_execute\.php/
    # ↓次のように修正
    RewriteCond %{REQUEST_URI} !^.*?/index\.php/
    RewriteCond %{REQUEST_URI} /(.*?\.(?:ignore)([\.\/].*)?)$
    # RewriteRule ^(.*)$ \.px_execute\.php/\.ignore.html [L]
    # ↓次のように修正
    RewriteRule ^(.*)$ index\.php/\.ignore.html [L]

</IfModule>

config.php を修正する

エントリースクリプトそれ自体は、パブリッシュの対象外であるべきです。 このための設定が、config.php の中に含まれているので、これを、index.php に書き換えます。

config.php は、通常 px-files/ にあります。

このファイルを開き、$conf->paths_proc_typeの値の中の /.px_execute.php の箇所を /index.php に書き換えます。

    $conf->paths_proc_type = array(
        '/.htaccess' => 'ignore',

        // '/.px_execute.php' => 'ignore',
        // ↓次のように修正
        '/index.php' => 'ignore',

        '/px-files/*' => 'ignore',
        '/composer.json' => 'ignore',
        '/composer.lock' => 'ignore',
        '/README.md' => 'ignore',
        ...

composer.json を修正する

プロジェクトの構成によっては、composer.json の中にもエントリースクリプトのパスが含まれている場合があります。 もし、お使いのプロジェクトにこれらが含まれていなければ、この手順はスキップしても大丈夫です。

まず、extraの設定を確認してください。

デスクトップ版 Pickles 2 babycorn などの編集ツールが、Pickles 2 の構成を知るために参照します。

ここに、エントリースクリプトのパスの記述がある場合は、index.php に変更します。

例えば次のようになります。 ./src_px2/index.php の部分が変更箇所です。

    "scripts": {
        "start": [
            "@php ./src_px2/index.php \"/?PX=serve&S=127.0.0.1:8080\""
        ],
        "start-pub": [
            "@php ./src_px2/index.php \"/?PX=serve.pub&S=127.0.0.1:8081\""
        ]
    },
    ...

続いて、scripts を確認します。

scripts は、composerの機能で、様々なタスクやコマンドを登録して、まとめて実行できる機能です。

ここに、Pickles 2 の機能の呼び出し(例えば、キャッシュの状況や、パブリッシュなど)が登録されている場合は、修正が必要です。

例えば次のようになります。 extra.px2package.path の値が src_px2/index.php に変更されています。

    "extra": {
        "px2package": {
            "name": "Pickles 2",
            "type": "project",
            "path": "src_px2/index.php",
            "path_homedir": "px-files/"
        }
    }

まとめ

この記事では、Pickles 2 のエントリーファイル名を変更する手順についてご紹介しました。

手順をまとめると、次のようになります。

  • エントリースクリプト src_px2/.px_execute.php のファイル名を src_px2/index.php に変更する。
  • .htaccessRewriteCond 中の \.px_execute\.php のような箇所を、index\.php に書き換える。
  • px-files/config.php の中の、$conf->paths_proc_type 設定の中にある /.px_execute.php を、/index.php に書き換える。
  • composer.json の中の、extrascripts./src_px2/.px_execute.php の記述が含まれる場合、 src_px2/index.php に書き換える。
  • HOME
  • ブログ
  • エントリースクリプトのファイル名を変更するには

フィードバックのお願い

バグや誤植を見つけたり、機能を改善するアイデアなど、ユーザーのみなさんからの声を伝えてください。頂いたご意見をもとに、よりよい機能の開発や優先順位の決定にあたって参考にさせていただきます。

フィードバックは、 Github Issue または Twitter でお送りいただけます。