0

FuelPHP がクラスの自動ロードに失敗するという問題があります。私のステージング サーバー (Ubuntu、PHP 5.3.10) では、fuel/app/classesディレクトリ内にカスタム クラスが見つからず、実行もできませんoil test(エラー メッセージが表示されますsh: 1: phpunit: not found)。奇妙なことに、私のローカル開発バージョン (Windows、PHP 5.3.6) では問題なく動作します。

このプロジェクトで初めて使用する Composer と関係があるのではないかと疑っていましたが、require APPPATH.'vendor/autoload.php';bootstrap.php の行をコメントアウトしても問題は解決しません (アプリはまだカスタム クラスをロードできません)。fuel/app/classes)

私は困惑しています: 私は多くのプロジェクトで FuelPHP を使用してきましたが、Autoloader で問題が発生したことは一度もありません。特に不可解なのは、同じコードがある場所では正常に機能し、別の場所では機能しないように見えることです。これを修正する方法についての提案に非常に感謝しています。

4

1 に答える 1

1

この質問はずっと前に尋ねられたことに気づきましたが、私は同じ問題を抱えていたので、この問題を抱えている他の人の利益のために、ここに私のために働いたものがあります:

次のコードを使用してoil.php、ディレクトリで呼び出される新しい php ファイルを作成します。app/config

<?php

// Unit tests will get shell error 'phpunit: command not found' unless
//  the path to php unit is specified.
 return array (
     'phpunit' => array (
         'binary_path' => 'fuel/vendor/bin/phpunit',
     ),
 );

私は燃料1.7.2を使用しています。詳細については、こちらをご覧ください

上記のコードは特定の PHPunit の問題を修正しましたが、まだFuel とオートローダーが機能しないという問題がありました。Fuel PHP は psr-4 に従っていません (多くのコア燃料ファイルは、同じファイル内に複数のクラス定義を持っています)。これにより、特定のオートローダーで問題が発生する可能性があります。

于 2014-12-17T21:48:55.073 に答える