2017-10-10 82 views
1

我正在使用使用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 a 400 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

這是否也與名稱空間相關?

+0

看起來像它認爲實體是一個文件夾,但你說它包含一個類,所以大概它是一個文件?這將解釋「不是目錄」錯誤。這個文件可以重命名爲,例如,Entity.php?如果它是一個PHP文件,最好給它適當的擴展名。 AFAIK你不能使用'include'來指定整個目錄。 – ADyson

+0

'include'/ var/www/html/vendor/darrynten/clarifai-php/src/Entity';' - 這是什麼?您正在使用自動加載器,但您包含**目錄**。它看起來像混淆了命名空間和自動加載的工作方式。 – Mjh

+0

@Mjh說實話。第一次我這樣做。我很感激誠實的反饋和對做什麼的洞察 – tony9099

回答

0

Eddie來自Clarifai這裏。對不起,你遇到了一個問題。

我看到您正在使用API​​密鑰。此社區圖書館目前僅支持我們的old auth mechanism。 Clarifai中的所有新「應用程序」僅由api_key創建,而不是client_idclient_secret

目前有一個PR open添加對API密鑰的支持。

我們希望在年底前能夠獲得一流的PHP支持。

+0

您有任何更新嗎? –

1

我發現,似乎與新的應用程序在Clarifai新api_key版本創建兼容的一個新的PHP庫:phpfanatic/clarifai

您可以輕鬆地嘗試通過作曲家進行安裝:

composer require phpfanatic/clarifai 

與依賴,你需要有:

  • PHP - 5.6,7.0 - 可與ealier工作版本sion,此時未經測試。
  • 捲曲 - *
  • Clarifai API密鑰 - clarifai
  • PHPUnit的 - 運行測試(可選)。

Here你可以找到快速教程一步一步的解釋完整的文檔。

相關問題