質問

私はSymfony 1.4プロジェクトを構築しています、そして私は梨の使用を試みています 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]:オープンストリームに失敗しました:そのようなファイルやディレクトリはありません /app_path/lib/vendor/crypt/rsa/keypair.php オンライン 28

致命的な誤り: :require_once()[function.require]:失敗したオープニングが必要です 'crypt/rsa/errorhandler.php'(include_path = '。:/opt/local/lib/php')in /app_path/lib/vendor/crypt/rsa/keypair.php オンライン 28

crypt/rsa.phpファイルを調べます(ソース)、crypt/rsa/errorhandler.php、crypt/rsa/mathloader.php、crypt/rsa/key.php、およびcrypt/rsa/keypair.phpを必要としています。すべてをオートロードするSymfony(つまり、再帰的に自動装置されていません) - RSA.PHPファイルのみ。ただし、require_once呼び出しはすべてCryptフォルダーを含むフォルダーに固有のものです。つまり、Autoloadは、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クラスが完全に見つからなかった異なるエラーをもたらしました。

致命的な誤り: :class 'crypt_rsa_keypair'はありません /app_path/lib/model/doctrine/sfdoctrineguardplugin/sfguarduser.class.php オンライン 70

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

別のオプションは、私が必要とするRSA.phpファイルを手動で要求することだと思いますが、私はそれがSymfonyコンベンションを破り、おそらく私がそうあるよりも難しいことをしていると推測しています(この自動装備のことはそれよりも難しいようですがそうでなければなりません)。

役に立ちましたか?

解決

crypt_rsaベンダーパッケージ用のカスタムオートローダーを作成し、ProjectConfigurationに登録してみてください。 Jobeetドキュメントで表示されます (Zend Luceneを使用する場合)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top