0

last.fm API を使用して、特定のアーティストとアルバムのアルバム情報を出力しようとしています。APIライブラリにdump-autoloadを使用しました(クラスが利用可能になるはずです)。私のコントローラーの 1 つである LastFMController.php には、次のものがあります。

public function some_function() {
        $authVars['apiKey'] = '************************';
        $auth = new lastfmApiAuth('setsession', $authVars);

        $artistName= "Coldplay";
        $albumName = "Mylo Xyloto";
        $album = Album::getInfo($artistName, $albumName);
        echo '<div>';
        echo 'Number of Plays: ' . $album->getPlayCount() . ' time(s)<br>';
        echo 'Cover: <img src="' . $album->getImage(4) . '"><br>';
        echo 'Album URL: ' . $album->getUrl() . '<br>';
        echo '</div>';

    }

このコードを実行するルートがあります。これを実行すると、次のエラーが表示されます。

Class 'Album' not found

私が間違っていることは何か分かりますか?ありがとうございました。

4

1 に答える 1

0

このパッケージを使用しています: https://github.com/fxb/php-last.fm-api

API クラスを自動ロードするのを忘れている可能性があります。

require __DIR__ . "/src/lastfm.api.php";

または、例として composer.json に追加することもできます。

"autoload": {
    "files": [
        "/var/www/yourproject/libraries/lastfm.api/src"
    ],
},

そして実行します:

composer dump-autoload

編集:

あるパッケージと別のパッケージの例を使用しています。使用しているパッケージに Album クラスはありません。完全な例を次に示します。

<?php

// Include the API
require '../../lastfmapi/lastfmapi.php';

// Get the session auth data
$file = fopen('../auth.txt', 'r');
// Put the auth data into an array
$authVars = array(
        'apiKey' => trim(fgets($file)),
        'secret' => trim(fgets($file)),
        'username' => trim(fgets($file)),
        'sessionKey' => trim(fgets($file)),
        'subscriber' => trim(fgets($file))
);
$config = array(
        'enabled' => true,
        'path' => '../../lastfmapi/',
        'cache_length' => 1800
);
// Pass the array to the auth class to eturn a valid auth
$auth = new lastfmApiAuth('setsession', $authVars);

// Call for the album package class with auth data
$apiClass = new lastfmApi();
$albumClass = $apiClass->getPackage($auth, 'album', $config);

// Setup the variables
$methodVars = array(
        'artist' => 'Green day',
        'album' => 'Dookie'
);

if ( $album = $albumClass->getInfo($methodVars) ) {
        // Success
        echo '<b>Data Returned</b>';
        echo '<pre>';
        print_r($album);
        echo '</pre>';
}
else {
        // Error
        die('<b>Error '.$albumClass->error['code'].' - </b><i>'.$albumClass->error['desc'].'</i>');
}

?>
于 2013-10-22T19:10:08.447 に答える