gpt4 book ai didi

php - 在 Symfony 中使用预先存在的库

转载 作者:可可西里 更新时间:2023-11-01 13:12:11 25 4
gpt4 key购买 nike

我是 Symfony 的新手。我正在尝试将我用于支付网关 API 的现有库与 Symfony (v2.3) 一起使用。

在使用 Symfony 之前,我会在根目录中有一个 composer.json 文件,我会简单地使用 PHP require 'vendor/Braintree...。但是,对于 Symfony,我很难通过将库导入我的 Controller 来使用支付网关 API 库。

注意:我在同一个 Controller 中使用一个实体,如下所示,它具有相似的目录结构并且效果很好:

使用 Jets\JetsBundle\Entity\Company;

这是我尝试使用支付网关 API 的结果:

use Jets\JetsBundle\Braintree\braintree\braintree_php\lib\Braintree;

Braintree.php 包含:

命名空间 Widb\WidbBundle\Braintree\braintree\braintree_php\lib;

我不断收到以下错误:

FatalErrorException:错误:在 C:\xampp\htdocs\www\symfony\src\Jets\JetsBundle\Controller\DefaultController.php 第 239 行中找不到类“Jets\JetsBundle\Controller\Braintree_Configuration”

DefaultController.php 第 239 行包含:

Braintree_Configuration::environment('sandbox');

作为旁注,除了将已配置好的库目录从我的旧服务器拖/放到新服务器上的 Symfony 目录之外,我没有做任何其他事情。我是否缺少一些配置脚本或 cmd 设置或其他东西?

我感谢这方面的任何帮助。如果有人可以帮助我解决此问题,我将永远感激不已。

这是我的 DefaultController.php 代码:

http://pastebin.com/kwisEBzL

非常感谢!

最佳答案

这个 Braintree 项目似乎是 PSR-0,所以你应该能够很容易地使用它。

不要这样做:

use Jets\JetsBundle\Braintree\braintree\braintree_php\lib\Braintree;

没有这样的命名空间。

使用 Composer 包含 Braintree 项目(注意他们已经有了 PSR-0 自动加载配置:https://github.com/braintree/braintree_php/blob/master/composer.json)。

编辑:将其添加到您的 composer.json 并且不要忘记运行 composer update(或 php composer. phar 更新)

更新 2: 正如评论中所指出的,使用稳定的标签/分支是个好主意。这样,如果有重大更改,您可以确保在更新之前修复它们。因此,请务必检查库的版本(2.23 可能不再是最新版本)。

"require": {
...
"braintree/braintree_php": "~2.23"
},

如果您使用全局命名空间(注意前导斜杠),自动加载器应该拾取所有类:

\Braintree_Configuration::environment('sandbox');

让我知道这是否有效。

旁注,您可能应该创建一个 bundle ,在集中位置为您进行配置。

关于php - 在 Symfony 中使用预先存在的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19506904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com