解决这个问题。我的案子:
在阅读这个问题之前,由于我的开发环境,我的问题已经解决了。使用CodeKit (MacOS上的一个应用程序),在从源文件夹构建我的代码时,composer.json和其他文件等项没有传输,导致了下面描述的问题。如果这种情况确实发生在您身上,您将查找这两个文件夹中的差异,将丢失的文档从src粘贴到构建文件夹。
*问题:
我今天开始使用GCP,在遵循这里定义的说明之后:
composer require google/cloud-storage然后:
putenv("GOOGLE_APPLICATION_CREDENTIALS=/path/to/creds.json");
require __DIR__.'/vendor/autoload.php';
use Google\Cloud\Storage\StorageClient;
$myid = "my-project-id";
$storage = new StorageClient([
'projectId'=>$myid
]);
var_dump($storage->buckets());在运行这个程序时,我会得到以下错误:
致命错误:在第94行的/place/to/vendor/google/cloud-core/RequestWrapperTrait.php中找不到‘Google\Cache\MemoryCacheItemPool’类
我不知道如何解决这个问题,因为我刚刚开始使用GCP。不知道这是平台上的问题还是我的代码问题。
Google的文件结构如下:
- cloud-core
- cloud-storage
/Cache/MemoryCacheItemPool既存在于测试文件夹中,也存在于src文件夹中,但是上面引用它时忽略了src或test文件夹。
我还跑了:
composer update并卸载并重新安装该软件包,没有任何效果。
发布于 2018-02-22 12:43:44
你在哪里找到你使用和粘贴的代码?因为正式文件中的一个是不同的。
这部分代码是您所链接的教程中的一部分,尝试使用客户端库并发布错误日志(如果有的话)!
require __DIR__ . '/vendor/autoload.php';
use Google\Cloud\Storage\StorageClient;
$projectId = 'YOUR_PROJECT_ID';
$storage = new StorageClient(['projectId' => $projectId]);
$bucketName = 'my-new-bucket';
$bucket = $storage->createBucket($bucketName);
echo 'Bucket ' . $bucket->name() . ' created.';UPDATE --我也测试了您的代码--而且它也在工作,因此我认为这是环境设置中的一个错误。
您在运行composer require google/cloud-storage时有什么错误吗?因为缺少Google\Auth\Cache\MemoryCacheItemPool的类是由编写器安装的Psr的一部分。
[...]
Installing psr/cache (1.0.1)
Loading from cache
[...]UPDATE2 Matthew M在其配置中发现了错误,并发布了:
最后解决了这个问题。我在我的工作环境中使用CodeKit,看起来它在编译时正在改变一些东西。运行一个未编译的版本,它运行良好。
https://stackoverflow.com/questions/48926492
复制相似问题