php – 使用没有命名空间的类与Yii2
我想用Yii2使用
Checkout SDK,但是由于这个库不支持PSR-4标准(命名空间),所以我无法集成它.我如何使用这个图书馆作为我的目的?
编辑 如我所说,我试图用类作为 $sale = new Twocheckout_Sale(); 但是我仍然无法使其工作.
当类没有命名空间时,这意味着它在根命名空间中.
选项1: use Twocheckout; ... Twocheckout::format('json'); 选项二: Twocheckout::format('json'); 例如,PHPExcel扩展名也没有命名空间,类似的问题在official forum上得到了回答. 相关问题: Importing class without namespace to namespaced class How to use “root” namespace of php? 官方PHP文档: http://php.net/manual/en/language.namespaces.fallback.php 更新: 但是PHPExcel拥有自己的自动装载机,而2Checkout则没有.所有类都包含在一个主要抽象类中.甚至在readme官方提到: require_once("/path/to/2checkout-php/lib/Twocheckout.php"); 所以你需要在使用库类之前手动包含它.可以通过别名的帮助来完成,以避免写入完整的路径. use Yii; ... $path = Yii::getAlias("@vendor/2checkout/2checkout-php/lib/Twocheckout.php"); require_once($path); $sale = new Twocheckout_Sale(); 为了在一个地方使用它是可以的,但如果它将被应用在许多地方使用,最好在入口脚本index.php中要求它: require(__DIR__ . '/../../vendor/autoload.php'); require(__DIR__ . '/../../vendor/2checkout/2checkout-php/lib/Twocheckout.php'); require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php'); require(__DIR__ . '/../../common/config/bootstrap.php'); require(__DIR__ . '/../config/bootstrap.php'); 我还建议在using downloaded libraries的正式文件中阅读提示,根据具体的库可以使用更多的选项. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |