0

codeigniter のドキュメントによると、ネイティブ ライブラリを独自のものに置き換える方法は次のとおりです。

クラス ファイルにネイティブ ライブラリと同じ名前を付けるだけで、CodeIgniter はネイティブ ライブラリの代わりにそれを使用します。この機能を使用するには、ファイルとクラス宣言にネイティブ ライブラリとまったく同じ名前を付ける必要があります。

しかし、2 つのクラスに同じ名前を付けると、Apigen は両方のドキュメントの生成に失敗し、代わりに次のエラー メッセージが表示されます。

このクラスのドキュメントを生成できませんでした。

クラスはもともと application/libraries/Session.php で宣言されており、次の理由により無効です:

system/libraries/Session.php でクラスが再宣言されました。

(この場合、セッション クラスを置き換えようとしています)。

この場合、コードイグナイターと Apigen のどちらが有罪ですか? そして、この問題をどのように修正できますか?

4

1 に答える 1

0

パラメータを使用して、--excludeで置き換えたクラスをスキップできますsystem。オーバーライドされたクラスを手動で一覧表示するのは退屈ですが、これは簡単にスクリプト化できます。

$app_files = glob('application/{core,libraries}/*.php', GLOB_BRACE);
foreach ($app_files as $file) {
    $sys_file = preg_replace('/^application\//', 'system/', $file);
    if (is_file($sys_file)) {
        print  ' --exclude '.realpath($sys_file); // looks like it has to be a full path
    }
}
print "\n";

次のように CI ルート ディレクトリで世代を呼び出します。

$ apigen `php overriden_classes.php` --source . --destination apigenout
于 2012-08-24T15:43:14.433 に答える