我正在构建一个Symfony 1.4项目,我正在尝试使用Pear's 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/ermorhandler.php)[功能]:未能打开流:没有此类文件或目录 /app_path/lib/vendor/crypt/rsa/keypair.php 在线的 28

致命错误: :require_once()[功能]:未打开所需的“ crypt/rsa/ermorhandler.php'(include_path ='。:/opt/opt/local/lib/php')in /app_path/lib/vendor/crypt/rsa/keypair.php 在线的 28

查看crypt/rsa.php文件(资源),它具有crypt/rsa/errirhandler.php,crypt/rsa/mathloader.php,crypt/rsa/key.php和crypt/rsa/keypair.php的要求_once呼叫。 Symfony可以自动加载所有内容(即:不递归自动加载) - 只是rsa.php文件。但是,requien_once调用全部针对包含加密文件夹的文件夹,这意味着自动加载需要确保在加载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搜索都指向Symfony Docs的1.0而不是1.4,并且所有文档通常都模糊了自动加载供应商文件。

我想另一种选择是手动要求我需要的rsa.php文件,但我猜这将打破符号惯例,并且可能比我应该做的事情要困难(即使这种自动加载的东西似乎比它要困难得多也应该是)。

有帮助吗?

解决方案

您可以尝试为crypt_rsa供应商软件包创建自定义自动加载器,并在ProjectConconfiguration中注册 在工作eet文档中呈现 (使用Zend Lucene时)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top