CakePHP - Невозможно переопределить класс

У меня есть простой класс, который я добавил в папку компонентов, называется 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';

однако я получаю сообщение об ошибке:

Неустранимая ошибка: невозможно переопределить класс MetricsTracker в /Users/Hooman/Sites/askedout/app/controllers/components/mixpanel.php в строке 11

Почему это происходит? Я делаю то же самое с другим классом php, и он отлично работает. Это очень странно для меня, так как я нигде не повторяю обязательное определение. Пожалуйста, помогите, спасибо.

1 ответ

Решение

В коде вашего компонента, пожалуйста, измените код с

class MetricsTracker в

class MetricsTracker extends Object

В коде вашего контроллера, пожалуйста, добавьте следующий код:

var $components=array('MetricsTracker');

Вместо того, чтобы использовать require() функция

Другие вопросы по тегам