未知类别错误
Unknown category error
当我使用类别 属性 时,我看到了这个错误:
Fatal error: Uncaught CloudRail\Error\IllegalArgumentError: Illegal
argument used: Unknown category. in
...\vendor\cloudrail\library-php\src\Service\GooglePlaces.php
没有类别一切正常。
我的代码:
$cr_service = load_cloudrail_service('GooglePlaces');
$retrievedPOIs = $cr_service->getNearbyPOIs(50.45594, 30.465612, 40000, '', ['restaurant']);
function load_cloudrail_service($serviceName = 'Foursquare') {
global $options;
Settings::$licenseKey = $options['cr_key'];
switch ($serviceName) {
case 'Foursquare':
$result = new Foursquare( $options['fsquare_id'], $options['fsquare_secret'] );
break;
case 'Yelp':
$result = new \CloudRail\Service\Yelp( $options['yelp_key'] );
break;
case 'GooglePlaces':
$result = new GooglePlaces( $options['gplaces_key'] );
break;
}
return $result;
}
其他服务出现同样的错误。怎么了?谢谢。
我不知道您是否发布了整个 class 代码,但导入似乎没有正确完成。
为避免未知类别错误,请确保您加载了正确的 classes:
如果通过 composer 集成,您可以使用默认的自动加载器加载所有 classes,并且您只需要通过 require(或require_once) 语句,并确保您已使用 composer install
或等效工具安装了 SDK。测试下面的代码(我已经测试过 CloudRail v1.0.1),如果它不能正常工作,那么它应该是自动加载或作曲家的东西:
<?php
require_once __DIR__ . '/vendor/autoload.php';
use CloudRail\Service\Foursquare;
use CloudRail\Service\GooglePlaces;
use CloudRail\Service\Yelp;
use CloudRail\Settings;
Settings::$licenseKey = "[CLOUDRAIL_KEY]";
/**
* @var \CloudRail\Interfaces\PointsOfInterest
*/
$service = null;
/**
* @var string
*/
$serviceName = "GooglePlaces"; //TODO:Just change the interface name :)
switch ($serviceName){
case "Foursquare":
$service = new Foursquare( "[FOURSQUARE_KEY]","[FOURSQUARE_SECRET]]");
break;
case "Yelp":
$service = new Yelp( "[API_KEY]");
break;
case "GooglePlaces":
$service = new GooglePlaces( "[API_KEY]");
break;
}
$retrievedPOIs = $service->getNearbyPOIs( -15.7662,-47.8829,3000,"cafe",[]);
var_dump($retrievedPOIs);
感谢您更新到 1.0.2 版本。它有帮助。
但是当我尝试更新版本时,我收到了错误版本的 Cloudrail。为避免此问题,只需删除 composer.lock
或使用命令 composer install update
更新锁定文件中的依赖项。
当我使用类别 属性 时,我看到了这个错误:
Fatal error: Uncaught CloudRail\Error\IllegalArgumentError: Illegal argument used: Unknown category. in ...\vendor\cloudrail\library-php\src\Service\GooglePlaces.php
没有类别一切正常。 我的代码:
$cr_service = load_cloudrail_service('GooglePlaces');
$retrievedPOIs = $cr_service->getNearbyPOIs(50.45594, 30.465612, 40000, '', ['restaurant']);
function load_cloudrail_service($serviceName = 'Foursquare') {
global $options;
Settings::$licenseKey = $options['cr_key'];
switch ($serviceName) {
case 'Foursquare':
$result = new Foursquare( $options['fsquare_id'], $options['fsquare_secret'] );
break;
case 'Yelp':
$result = new \CloudRail\Service\Yelp( $options['yelp_key'] );
break;
case 'GooglePlaces':
$result = new GooglePlaces( $options['gplaces_key'] );
break;
}
return $result;
}
其他服务出现同样的错误。怎么了?谢谢。
我不知道您是否发布了整个 class 代码,但导入似乎没有正确完成。 为避免未知类别错误,请确保您加载了正确的 classes:
如果通过 composer 集成,您可以使用默认的自动加载器加载所有 classes,并且您只需要通过 require(或require_once) 语句,并确保您已使用 composer install
或等效工具安装了 SDK。测试下面的代码(我已经测试过 CloudRail v1.0.1),如果它不能正常工作,那么它应该是自动加载或作曲家的东西:
<?php
require_once __DIR__ . '/vendor/autoload.php';
use CloudRail\Service\Foursquare;
use CloudRail\Service\GooglePlaces;
use CloudRail\Service\Yelp;
use CloudRail\Settings;
Settings::$licenseKey = "[CLOUDRAIL_KEY]";
/**
* @var \CloudRail\Interfaces\PointsOfInterest
*/
$service = null;
/**
* @var string
*/
$serviceName = "GooglePlaces"; //TODO:Just change the interface name :)
switch ($serviceName){
case "Foursquare":
$service = new Foursquare( "[FOURSQUARE_KEY]","[FOURSQUARE_SECRET]]");
break;
case "Yelp":
$service = new Yelp( "[API_KEY]");
break;
case "GooglePlaces":
$service = new GooglePlaces( "[API_KEY]");
break;
}
$retrievedPOIs = $service->getNearbyPOIs( -15.7662,-47.8829,3000,"cafe",[]);
var_dump($retrievedPOIs);
感谢您更新到 1.0.2 版本。它有帮助。
但是当我尝试更新版本时,我收到了错误版本的 Cloudrail。为避免此问题,只需删除 composer.lock
或使用命令 composer install update
更新锁定文件中的依赖项。