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 回答