Symfony1 Symfony';自动加载的供应商文件不';我好像不工作

Symfony1 Symfony';自动加载的供应商文件不';我好像不工作,symfony1,symfony-1.4,autoload,vendor,Symfony1,Symfony 1.4,Autoload,Vendor,我正在构建一个symfony1.4项目,并尝试使用PEAR的包。不幸的是,这个包已经有一段时间没有更新了,所以我不想从命令行执行一个简单的pear安装,而是想将它包含到我的lib/vendor项目路径中,这样我就可以修改在PHP5中使用的各种代码。(它目前会导致一些警告和严格错误,我不想禁用严格错误检查) 我在我的config路径中创建了一个autoload.yml文件,该文件现在包含以下内容: autoload: Crypt_RSA: path: %SF_LI

我正在构建一个symfony1.4项目,并尝试使用PEAR的包。不幸的是,这个包已经有一段时间没有更新了,所以我不想从命令行执行一个简单的
pear安装
,而是想将它包含到我的
lib/vendor
项目路径中,这样我就可以修改在PHP5中使用的各种代码。(它目前会导致一些警告和严格错误,我不想禁用严格错误检查)

我在我的
config
路径中创建了一个
autoload.yml
文件,该文件现在包含以下内容:

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)[]:无法打开流:在线28上的/app_path/lib/vendor/Crypt/RSA/KeyPair.php中没有此类文件或目录

致命错误:require_once()[]:无法在/app_path/lib/vendor/Crypt/RSA/KeyPair.php的第28行上打开所需的'Crypt/RSA/ErrorHandler.php':/opt local/lib/php')

查看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文件夹的文件夹的,这意味着自动加载需要确保在加载RSA.php时,它从正确的路径加载它,以便正确加载这些文件

考虑到这一点,我尝试了一些不同的设置,但没有成功:

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

这些新尝试中的每一次都导致了一个不同的错误,即Crypt_RSA_KeyPair类根本找不到

致命错误:在/app\u path/lib/model/doctor/sfDoctrineGuardPlugin/sfGuardUser.Class.php中未找到类“Crypt\u RSA\u KeyPair”联机70

我试着翻阅这些文档,但我的谷歌搜索大多指向Symfony docs for 1.0,而不是1.4,而且所有文档在自动加载供应商文件时通常都很模糊


我想另一种选择是,在需要RSA.php文件时手动要求_,但我猜这会打破Symfony惯例,可能会做一些比我应该做的更难的事情(尽管自动加载似乎比它应该做的更难).

您可以尝试为Crypt_RSA供应商软件包创建自定义自动加载器,并将其注册到ProjectConfiguration中,因为它们(在使用Zend Lucene时)。

只是报告说,这确实为我带来了好处。我真的很感谢你的帮助:)
# moved "Crypt" folder into a subfolder named "pear"
autoload:
    Crypt_RSA:
        path:      %SF_LIB_DIR%/vendor/pear
        recursive: false