Symfony1 Symfony';自动加载的供应商文件不';我好像不工作
我正在构建一个symfony1.4项目,并尝试使用PEAR的包。不幸的是,这个包已经有一段时间没有更新了,所以我不想从命令行执行一个简单的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
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