1

カテゴリ プロパティを使用すると、次のエラーが表示されます。

致命的なエラー: キャッチされていない CloudRail\Error\IllegalArgumentError: 不正な引数が使用されました: 不明なカテゴリ。...\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;
}

他のサービスでも同じエラー。どうしたの?ありがとうございました。

4

2 に答える 2

0

クラスコード全体を投稿したかどうかはわかりませんが、インポートが適切に行われていないようです。不明なカテゴリ エラーを回避するには、適切なクラスをロードしたことを確認してください。

composerを介して統合されている場合は、デフォルトのオートローダーを使用してすべてのクラスをロードできます。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);
于 2018-06-04T23:27:00.593 に答える
0

バージョン1.0.2へのアップデートありがとうございます。それは役に立ちました。しかし、バージョンを更新しようとしたときに、間違ったバージョンの cloudrail を受け取りました。この問題を回避するには、コマンドを削除するcomposer.lockか、コマンドを使用composer install updateしてロック ファイルの依存関係を更新します。

于 2018-08-01T03:39:41.333 に答える