質問: PHPから外部PHPの関数を実行したいのですが、修正を入れてみてもClass not foundエラーがどうしても出てしまうので、アドバイスを頂きたいです。 まず、ファイルの位置関係ですが、 /src/EasyCHAT/内に「EasyCHAT.php」と「WebSocket.php」があります。 何がしたいかというと、WebSocket.phpからEasy_CHAT.php内の関数を実行したいのです。 WebSocket.phpで、 ``` ``` として、関数を実行しようとしています。 EasyCHAT.php内の中は、 ``` getLogger()->info("メッセージを受信しました: ".$msg); } } ?> ``` としています。 しかし、「PHP Fatal error: Class 'EasyCHAT\EasyCHAT' not found」というエラーが出ます。 requireを使う方法もやってみたのですが、EasyCHAT.phpの親クラス(PluginBase)が見つからないというエラーがWebSocket.php側で出たので断念しました。 EasyCHAT.phpはPocketMine-MPというサーバーソフトウェアのプラグインなので、少々特殊なのですが... アドバイス宜しくお願い致します。
回答: 実際にどんなClass not foundエラーメッセージが出ているかは不明ですが、namespaceとuseについて気になった点があります。 実装しているインタフェースMessageComponentInterfaceとListener、親クラスのPluginBase等はEasyCHAT名前空間からアクセスできる位置にあるのでしょうか? EasyCHAT名前空間と同一の位置にないのであれば、それが原因になっている気がします。 別の名前空間にあるのであれば、その名前空間をuseして使えるようにしないといけないかと。 もし、アクセスできるのでしたらすみません。