我正在使用使用Composer下载的应用程序。PHP包含 - 打开流的错误
该软件包有许多可以调用和使用的类。 但是,当我运行下面的代码时,出现以下错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
include 'vendor/autoload.php';
$clarifai = new \DarrynTen\Clarifai\Clarifai('CLARIFAI_API_KEY');
$input = new Input();
$input->setImage('https://samples.clarifai.com/metro-north.jpg')->isUrl();
$inputResult = $clarifai->getInputRepository()->add($input);
echo json_encode($inputResult);
?>
错误:
Warning: include(/var/www/html/vendor/darrynten/clarifai-php/src/Entity): failed to open stream: Not a directory in /var/www/html/ctest.php on line 7
Warning: include(): Failed opening '/var/www/html/vendor/darrynten/clarifai-php/src/Entity' for inclusion (include_path='.:/usr/share/php') in /var/www/html/ctest.php on line 7
Fatal error: Uncaught Error: Class 'Input' not found in /var/www/html/ctest.php:11 Stack trace: #0 {main} thrown in /var/www/html/ctest.php on line 11
类输入位于/var/www/html/vendor/darrynten/clarifai-php/src/Entity
里面我是用无济于事包括PHP关键字之后的第一个包含,包括。
include 'vendor/autoload.php';
include '/var/www/html/vendor/darrynten/clarifai-php/src/Entity';
后来,我用最后一行下面的代码
$concept = new \DarrynTen\Clarifai\Entity\Concept();
$concept->setId('boscoe')->setValue(true);
$input = new \DarrynTen\Clarifai\Entity\Input();
$input->setImage('https://samples.clarifai.com/puppy.jpeg')->isUrl()
->setConcepts([$concept]);
$inputResult = $clarifai->getInputRepository()->add($input);
,我得到这个错误。 (Guzzle相关)
Fatal error: Uncaught GuzzleHttp\Exception\ClientException: Client error:
POST https://api.clarifai.com/v2/inputs
resulted in a400 Bad Request
response: {"status":{"code":10020,"description":"Failure"},"inputs":[{"id":"e25be6bf0a4a4090a774694c016202cb","data":{"image":{"ur (truncated...) in /var/www/html/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:111 Stack trace: #0 /var/www/html/vendor/guzzlehttp/guzzle/src/Middleware.php(65): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response)) #1
这是否也与名称空间相关?
看起来像它认为实体是一个文件夹,但你说它包含一个类,所以大概它是一个文件?这将解释“不是目录”错误。这个文件可以重命名为,例如,Entity.php?如果它是一个PHP文件,最好给它适当的扩展名。 AFAIK你不能使用'include'来指定整个目录。 – ADyson
'include'/ var/www/html/vendor/darrynten/clarifai-php/src/Entity';' - 这是什么?您正在使用自动加载器,但您包含**目录**。它看起来像混淆了命名空间和自动加载的工作方式。 – Mjh
@Mjh说实话。第一次我这样做。我很感激诚实的反馈和对做什么的洞察 – tony9099