WordPressプラグイン用の「軽量」PSR-0 AutoLoaderを試しています。ローカルの開発サーバーでは問題なく動作しますが、WPEngineのステージングサーバーの1つにプッシュすると、次のようになります。
解析エラー: /nas/wp/www/staging/ahsodesigns/wp-content/plugins/AhSoFunctionality/start.php の 30 行目に構文エラー、予期しない '['、')' が必要です
これがオートローダーです。
// lightweight psr-0 autoloader
spl_autoload_register(function ($classname) {
// make sure we're only loading classes from our directory,
if (preg_match('/AhSo/',$classname)) {
$classname = ltrim($classname, "\\");
preg_match('/^(.+)?([^\\\\]+)$/U', $classname, $match);
$classname = str_replace("\\", "/", $match[1])
. str_replace(["\\", "_"], "/", $match[2])
. ".php";
include_once $classname;
}
});
問題はこの行にあり、
$classname = str_replace("\\", "/", $match[1])
. str_replace(["\\", "_"], "/", $match[2])
. ".php";
どうやら括弧が気に入らないようです...連結をすべて1行に移動するなど、いくつかの簡単なことを試しました。運が悪い、それはおそらく何らかのphp.iniのものだと思います。または、WPEngineのphp構成が気に入らない不正な行末文字を持っているかもしれません。このファイルは、Unix 行区切り記号「\n」を使用して phpStorm で作成されました。私はそれをいじる時間がもっとあればいいのにと思いますが、あなたはそれがどうなるか知っています. スタックに感謝します。一番。資源。これまで。