0

mixpanel.phpというコンポーネントフォルダーに追加した単純なクラスがあります。ファイル内は次のとおりです。

<?php
class MetricsTracker {
    public $token;
    public $host = 'http://api.mixpanel.com/';
    public function __construct($token_string) {
        $this->token = $token_string;
    }
    function track($event, $properties=array()) {
        $params = array(
            'event' => $event,
            'properties' => $properties
            );

        if (!isset($params['properties']['token'])){
            $params['properties']['token'] = $this->token;
        }
        $url = $this->host . 'track/?data=' . base64_encode(json_encode($params));
        //you still need to run as a background process
        exec("curl '" . $url . "' >/dev/null 2>&1 &"); 
    }
}
?>

users_controller.phpで私はします:

require 'components/mixpanel.php';

ただし、エラーが発生します。

致命的なエラー:11行目の/Users/Hooman/Sites/askedout/app/controllers/components/mixpanel.phpでクラスMetricsTrackerを再宣言できません

なぜこうなった?私は別のphpクラスで同じことをします、そしてそれはうまくいきます。私はどこにもrequire定義を繰り返さないので、これは私には非常に奇妙です。助けてください、ありがとう。

4

1 に答える 1

0

コンポーネント コードで、コードを から変更してください。

class MetricsTracker

class MetricsTracker extends Object

コントローラ コードに、次のコードを追加してください。

var $components=array('MetricsTracker');

require()関数を使用する代わりに

于 2012-05-18T13:10:06.117 に答える