2

私はSymfony1.4プロジェクトを構築していて、PEARのCrypt_RSAパッケージを使おうとしています。残念ながら、パッケージはしばらく更新されていないためpear install、コマンドラインから単純に実行するのではなく、lib/vendorプロジェクトパスに含めて、PHP5で使用するさまざまなコードを変更できるようにします。(現在、いくつかの警告と厳密なエラーが発生します。厳密なエラーチェックを無効にしたくありません)。

パスに次のautoload.ymlファイルを作成しました。config

autoload:
    Crypt_RSA:
        path:      %SF_LIB_DIR%/vendor/Crypt
        recursive: true

次に、次の方法でCrypt_RSA_KeyPairクラス(ソース)を利用しようとします。

$keyPair = new Crypt_RSA_KeyPair(128);

これにより、次のエラーが発生します。

警告:require_once(Crypt / RSA / ErrorHandler.php)[ function.require-once ]:ストリームを開くことができませんでした:28行目の/app_path/lib/vendor/Crypt/RSA/KeyPair.phpにそのようなファイルまたはディレクトリはありません

致命的なエラー:require_once()[ function.require ]: / app_path / lib / vendor /Crypt/でrequired'Crypt / RSA / ErrorHandler.php'(include_path ='。:/ opt / local / lib / php')を開くことができませんでした28行目のRSA/KeyPair.php

Crypt / RSA.phpファイル(ソース)を調べると、Crypt / RSA / ErrorHandler.php、Crypt / RSA / MathLoader.php、Crypt / RSA / Key.php、およびCrypt / RSA/KeyPair.phpのrequire_once呼び出しがあります。 、だから私はsymfonyにすべてを自動ロードさせたくないと思っています(つまり、再帰的に自動ロードしないでください)-RSA.phpファイルだけです。ただし、require_once呼び出しはすべて、Cryptフォルダーを含むフォルダーに固有です。つまり、自動ロードでは、RSA.phpがロードされるときに、これらの各ファイルが正しくロードされるように、適切なパスからロードされるようにする必要があります。

これを念頭に置いて、運が悪かったいくつかの異なる設定を試しました。

autoload:
    Crypt_RSA:
        path:      %SF_LIB_DIR%/vendor
        files:     [Crypt/RSA.php]
        recursive: false

と:

# moved "Crypt" folder into a subfolder named "pear"
autoload:
    Crypt_RSA:
        path:      %SF_LIB_DIR%/vendor/pear
        recursive: false

これらの新しい試行のそれぞれが異なるエラーを引き起こし、Crypt_RSA_KeyPairクラスがまったく見つからなかっただけです。

致命的なエラー:クラス'Crypt_RSA_KeyPair'が/app_path/lib/model/doctrine/sfDoctrineGuardPlugin/sfGuardUser.class.phpの70目に見つかりません

私はドキュメントを掘り下げてみましたが、私のGoogle検索のほとんどは1.4ではなく1.0のSymfonyドキュメントを指しており、すべてのドキュメントは一般的にベンダーファイルの自動読み込みについてあいまいです。

別のオプションは、必要なRSA.phpファイルを手動でrequire_onceすることだと思いますが、それはSymfonyの規則に違反し、おそらく私がすべきよりも難しいことをしていると思います(この自動読み込みはそれよりも難しいようですが)あまりにもあるはずです)。

4

1 に答える 1

4

Jobeetのドキュメントに示されているように(Zend Luceneを使用している場合)、Crypt_RSAベンダーパッケージ用のカスタムオートローダーを作成してProjectConfigurationに登録しようとする場合があります。

于 2011-01-26T02:52:42.283 に答える