Amazon Instant Access PHP SDK phar 文件

Amazon Instant Accèss PHP SDK phar file

我正在尝试使用 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');

我收到错误:

致命错误:/Applications/MAMP/htdocs/phppos/amazon-instant-access-phar-stub.php 中的消息 'internal corruption of phar "/Applications/MAMP/htdocs/phppos/amazon-instant-access-phar-stub.php" (truncated manifest at stub end)' 未捕获异常 'PharException':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} 在第 17

行 /Applications/MAMP/htdocs/phppos/amazon-instant-access-phar-stub.php 中抛出

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

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

您可以直接从版本中下载.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 中的所有文件。