我有一个laravel应用程序,我想使用pagseguro.php包。我将其添加到composer.json中并进行了更新。我可以毫无问题地访问主类(PagSeguroPaymentRequest)。
在某种程度上,我不得不称之为:
PagSeguroConfig::getAccountCredentials();
但它抛出了一个例外。在阅读了周围的代码后,我想尝试自己初始化库,突然一切都正常了:
PagSeguroLibrary::init();
此方法位于source/PagSeguroLibrary/中唯一的php文件中
composer不应该自动执行这个方法吗?什么是"装载"包裹?有没有办法只使用composer来修复这个问题?
谢谢大家。
composer不应该自动执行这个方法吗?
不,不应该。Composer是一个包和依赖项管理程序。它的工作是
-
将PHP文件放入供应商文件夹
-
如果使用这些PHP文件意味着您需要其他PHP文件,请将这些其他PHP文件放入您的供应商文件夹
-
设置东西,使包中的类文件正确地自动加载到PHP中(即不需要自己要求或包含东西)
Composer包独立于框架工作。有人可以通过计算机包分发laravel服务提供商,也有人可以分发对laravel一无所知的代码。每个composer包的工作方式取决于作者(始终阅读自述文件)
在pagseguro/php
的情况下,看起来应该实例化一个PagSeguroPaymentRequest
对象,该对象在自动加载时将自动调用init
。与包一起分发的示例也使此包看起来是早于composer的代码,并且仍然使用许多手动包含和要求。