0

我正在尝试使用 last.fm api 打印出某个艺术家和专辑的专辑信息。我已经为 api 库使用了 dump-autoload(所以这些类应该可用)。在我的一个控制器 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 回答