Anc*_*end 6 php frameworks payment-gateway braintree symfony
我是Symfony的新手.我试图用我已经用了我的支付网关API预先存在的库,Symfony的(V2.3).
在使用Symfony之前,我会composer.json在根目录中有一个文件,我只想使用PHP require 'vendor/Braintree....然而,对于Symfony,我很难将库用于支付网关API,只需将其导入我的Controller即可.
注意:我在同一个控制器中使用实体,如下所示,它具有类似的目录结构,效果很好:
use Jets\JetsBundle\Entity\Company;
这是我尝试使用支付网关API的原因:
use Jets\JetsBundle\Braintree\braintree\braintree_php\lib\Braintree;
Run Code Online (Sandbox Code Playgroud)
并Braintree.php包含:
namespace Widb\WidbBundle\Braintree\braintree\braintree_php\lib;
我一直收到以下错误:
FatalErrorException: Error: Class 'Jets\JetsBundle\Controller\Braintree_Configuration' not found in C:\xampp\htdocs\www\symfony\src\Jets\JetsBundle\Controller\DefaultController.php line 239
而DefaultController.php239行包含:
Braintree_Configuration::environment('sandbox');
作为旁注,除了将现成的已配置库目录从旧服务器拖放到新服务器上的Symfony目录之外,我没有做任何其他事情.我错过了一些配置脚本或cmd设置或什么?
我感谢你在这方面的任何帮助.我会永远感激有人可以帮我解决这个问题.
这是我的DefaultController.php代码:
提前谢谢了!
这个Braintree项目似乎是PSR-0,所以你应该能够很容易地使用它.
不要这样做:
use Jets\JetsBundle\Braintree\braintree\braintree_php\lib\Braintree;
Run Code Online (Sandbox Code Playgroud)
没有这样的命名空间.
使用Composer包含Braintree项目(注意他们已经有PSR-0自动加载配置:https://github.com/braintree/braintree_php/blob/master/composer.json).
编辑:将此添加到您的composer.json,不要忘记运行composer update(或php composer.phar update)
更新2:正如评论中所指出的,使用稳定的标签/分支是个好主意.这样,如果有重大更改,您可以确保在更新之前修复它们.因此,请始终检查库的版本(2.23可能不再是最新版本).
"require": {
...
"braintree/braintree_php": "~2.23"
},
Run Code Online (Sandbox Code Playgroud)
如果使用全局命名空间,则自动装带器应拾取所有类(请注意前导斜杠):
\Braintree_Configuration::environment('sandbox');
Run Code Online (Sandbox Code Playgroud)
让我知道这个是否奏效.
另外,您应该创建一个捆绑包,在集中的位置为您进行配置.
我不明白你实际上想在你的 中做什么DefaultController.php,但我有一些假设。
更新:
第一点和第二点已删除。
第三:
当您尝试仅从文件use Jets\JetsBundle\Braintree\braintree\braintree_php\lib\Braintree;加载类时。不是包含其他数据(例如指令)的整个文件。BraintreeBraintree.phprequire_once
第四:
/vendorSymfony2 项目的目录通常包含第三方库。所以你可以把你的放在lib这里。
希望其中一些要点对您有所帮助。
PS抱歉英语不好。
| 归档时间: |
|
| 查看次数: |
1607 次 |
| 最近记录: |