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 中的所有文件。
我正在尝试使用 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 中的所有文件。