Amazon Instant Access PHP SDK phar 文件

问题描述 投票:0回答:1

我正在尝试使用 https://github.com/amzn/amazon-instant-access-sdk-php 通过 php 进行亚马逊即时访问。我对 phar 文件不是很熟悉;但我开始弄明白了。

我将 https://github.com/amzn/amazon-instant-access-sdk-php/blob/master/phar-stub.php 包含在一个文件中,如下所示。 (修改了一点,因为我重命名了 phar 文件)

Phar::mapPhar('amazon-instant-access-sdk-php.phar');

require_once 'phar://amazon-instant-access-sdk-php.phar/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php';

$classLoader = new Symfony\Component\ClassLoader\UniversalClassLoader();
$classLoader->registerNamespaces(array(
    'Amazon'  => 'phar://amazon-instant-access-sdk-php.phar/src',
    'Psr'     => 'phar://amazon-instant-access-sdk-php.phar/vendor/psr/log',
    'Monolog' => 'phar://amazon-instant-access-sdk-php.phar/vendor/monolog/monolog/src'
));
$classLoader->register();

return $classLoader;

__HALT_COMPILER();

然后当我在另一个文件中做的时候:

require_once('amazon-instant-access-phar-stub.php');

我得到错误:

致命错误:未捕获的异常“PharException”和消息“phar 的内部损坏”/Applications/MAMP/htdocs/phppos/amazon-instant-access-phar-stub.php“(存根末尾的清单被截断)”在 /Applications/ MAMP/htdocs/phppos/amazon-instant-access-phar-stub.php:17 堆栈跟踪:#0 /Applications/MAMP/htdocs/phppos/amazon-instant-access-phar-stub.php(17): Phar: :mapPhar('amazon-instant-...') #1 /Applications/MAMP/htdocs/phppos/amazon_link_account.php(3): require_once('/Applications/M...') #2 {main} 投入/Applications/MAMP/htdocs/phppos/amazon-instant-access-phar-stub.php 第 17 行

我试过重新下载 phar 文件并运行不同版本的 php (5.3, 5.6)

我不确定是什么导致了这个错误。

php phar
1个回答
1
投票

可以直接从release下载.phar文件

如果你有 .phar 文件,你不需要 github 的源代码。 github上的源代码用于编译.phar文件。

在你的 php 代码中,你可以这样做:

<?php
//import the phar file directly like you did
require_once('amazon-instant-access-sdk-php.phar’);

//before you initiate the class, you need to use the right name space:
use Amazon\InstantAccess\Signature as signature;
$credentialStore = new signature\CredentialStore();
?>

这个行得通。

如果你想检查 .phar 文件中到底有什么,你可以解压它:

php -r '$phar = new Phar("amazon-instant-access-sdk-php.phar"); $phar->extractTo("/tmp/phar/");'

然后你可以浏览 /tmp/phar/ 以查找 .phar 中的所有文件。

© www.soinside.com 2019 - 2024. All rights reserved.