こんにちは、ラミです。
今回はwebサービス部に入部して以来ずっと悩まされてきたbracketsの「PHPランタイムエラー」なるものをどのように解消したか記述します。
まずbracketsでphpファイルを開くと毎回こういうポップアップが表示されます。

無視してそのまま編集することもできるのですが、
自分でコードを追加する時に校閲やシンタックスハイライトが効かず非常に使い勝手が悪くなるので解決することにしましょう。
「環境設定を開く」をクリックします。
すると環境設定のためのファイルが開かれるので、ポップアップの指示通り”executablePath”を追加……しようにもそんな項目はありませんね。
そもそも”executablePath”とは何なのか?
“executablePath”とはbracketsでPHPを動かすために、PHPの実行ファイルがどこにあるのかを教えてあげる項目です。
なので、”executablePath”という項目を新たに作って、自分のPC内で使っているphp.exeのファイルパスを記入する、というのが解決策になります。
ではMAMPユーザーのphp.exeはどこにあるのか?
あくまで私の場合はですが「c:>MAMP>bin>php>MAMPで現在使っているphpバージョン」の中にありました。ご自身のPCでも探してみてください。
※ちなみに私はwindows10にMAMPをインストールしてwebカツに取り組んでいます。
Macの方はパスの書き方が異なると思いますので、WebカツのQ&Aなども参考になさって下さい。
さてphp.exeのファイルパスが分かったところで以下のコードを追加します。
|
1 2 3 |
"php": { "executablePath": "C:\\MAMP\\bin\\php\\php7.2.14\\php.exe", } |
追加するにあたっての注意点です。
・追加コードは中括弧({})の中に記述する
・追加するときは直前の項目にカンマを追加する
・ファイルパスの\を\\に変更する
なんでかといいますと、bracketsの環境設定ファイルは「JSON」という形式でできております。これは「JavaScript Object Notation」の意で実はjavaScriptのオブジェクトなんですね。
というわけでjsの連想配列の書き方ルールに沿って書く必要があって、ここを間違えるとエラーが解消しない上に「環境設定が有効なJSONではありません」という新たなエラーも出てしまいます。
中括弧の中に追加するのは、中括弧の中に全ての環境設定が入っているから。外に追加すると読み込めなくなってしまいます。
カンマを追加する必要があるのは、jsの連想配列は要素と要素をカンマで繋ぐルールだから。「ん?ナニソレ?」ってなった方はwebカツのjavaScript部や鬼練を復習しましょう。
そしてファイルパスの\を\\に変更するのは、\(バックスラッシュ ¥と同義)がjsのエスケープ文字として使われているため\\と記入しないと\と認識してくれないからだそうです。へー。
————————-
2020/04/26追記
VS Codeでもphpファイルを開くたびに「PHP実行可能ファイルが設定されていないため…」というエラーが出ていたのですが、これも今回の記事で解消したbracketsのエラーと同じもので解決できてしまいました。
VS Code版の解消方法を詳しく知りたい!という方はこちらを参照してください。
————————-
2020/04/26追記2
php.exeの場所ですが、記事内は「最新バージョン」「php7.3.7」と書いていたのですが、MAMPで実際に使っているphpバージョンを調べてみると「php7.2.14」だったためパスをそちらに修正しました。それに準じて記事内容も変更しました。
コードの編集そのものは7.3.7でも問題なくできていたので、そのままにしておいても問題なかったかもしれないですが念のため。ちなみにMAMPのphpバージョンはMAMPを立ち上げたあと、MAMP>Preferences>PHPで確認できます。現行は7.2.14になっていて、7.3.7も選択可能なのですが、なぜか7.3.7に切り替えるとApache Serverが止まってしまうので7.2.14のままにしてあります。
