我很难在 PHP 中环绕命名空间,尤其是当您的代码需要与驻留在另一个命名空间中的脚本进行交互时。我下载了一个 Shopify API 工具包并试图让它工作。在我开始向我的代码添加命名空间之前,一切都很好(这是必需的,或者与我网站上的其他 Wordpress 插件发生脚本冲突)。此外,顶部奇怪的命名空间 {} 位是因为在同一个文件中我想要一个全局可访问的函数来使类成为单例。
期待更多地了解这是如何工作的。
#### FILE BEING CALLED
namespace {
function SomeFunctionToBeAccessedGlobally() {
return 'Hello';
}
}
namespace MySpecialApp {
class ShopifyImport {
public function __construct() {
// Do Whatever
$this->doImport();
}
public function doImport() {
require __DIR__ . '/vendor/autoload.php';
$credential = new Shopify\PrivateAppCredential('standard_api_key', 'secret_api_key', 'shared_api_key');
$client = new Shopify\Client($credential, 'shop_url', [ 'metaCacheDir' => './tmp' ]);
}
}
}
#### FILE '/vendor/autoload.php'
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit73503f8de5d68cdd40a9c0dfd8a25b44::getLoader();
我确实注意到部分存储库克隆到的某些文件vendor具有namespace Slince\Shopify;声明。我试图use在我的原始命名空间中使用该命名空间,但它也不起作用。
报告的 PHP 错误是:
致命错误:未捕获的错误:在 /.../ShopifyImporter.php:139 中找不到类“MySpecialApp\Shopify\PrivateAppCredential”堆栈跟踪:#0(Blah Blah Blah)
暮色呼如