Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализация конструктора класса, возврат массива данных 
:(
    Опции темы
localhost
Дата 17.8.2012, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



Всем доброго здоровья.
Решил для упражнений написать свой велосипед, работающий с API Яндекс.Метрики. Решил также, что буду непременно применять ООП для сих нужд. Концепция, казалось бы, в тему, да и для практики неплохо будет. Если я ошибаюсь - просьба наставить на путь истинный smile

Вобщем, суть такова - хочу получать список счетчиков через API и дальше уже работать с ними (получать статистические данные  и т.п.). 
Примерно так:
Код

class Counter {
    
    var $code_status = array();
    var $site = array();
    var $id = array();
    
    function __construct($token) {
        
        $counter_list = $this->get_counters($token);
        
        foreach ($counter_list['counters'] as $counter) {
            $this->code_status[] = $counter['code_status'];
            $this->site[] = $counter['site'];
            $this->id[] = $counter['id'];
        }
    }
    
    protected function send_request($auth_token, $method_type, $method_name, $parameters = NULL) {
         // Функция подготавливает строку запроса, через cURL отправляет запрос и возвращает результат
    }
    
    protected function get_counters ($token) {
        $json = $this->send_request($token, 'GET', 'counters.json');
        
        return json_decode($json, true);   
    }
    
    function get_report_traffic_summary ($token, $id) {
        $json = $this->send_request($token, "GET", "stat/traffic/summary.json", array("id" => $id));
        
        return json_decode($json, true);   
    }
}


Но в конструкторе у меня получается какой-то неправильный массив:

Код

Counter Object ( 
[code_status] => Array (
     [0] => CS_ERR_CONNECT 
     [1] => CS_OK 
     [2] => CS_OK 
     [3] => CS_OK 
     [4] => CS_OK 
     [5] => CS_OK 
     [6] => CS_OK )  
[site] => Array ( 
     [0] => domain1.ru 
     [1] => domain2.ru 
     [2] => domain3.ru 
     [3] => domain4.ru 
     [4] => domain5.ru 
     [5] => domain6.ru 
     [6] => domain7.ru )
[id] => Array ( 
     [0] => 123321 
     [1] => 234432 
     [2] => 345543
     [3] => 456654 
     [4] => 567765
     [5] => 678876
     [6] => 789987 ) ) 


Т.е. массив массивов. А мне бы хотелось возвращать что-то наподобие массива экземпляров класса. Т.е., чтоб каждый счетчик представлял собой отдельный объект, который можно было бы обойти в цикле, вызвать для него его же методы (например, для просмотра суммарной статистики реализовать метод get_traffic_summary($id), передав ему id текущего объекта).

В конечном же итоге я хочу получить данные для вывода в шаблон, чтобы структурировать их по своему усмотрению (например, для каждого счетчика оформить свой блок, содержащий нужную мне сводку).

Вопроса два всего:
1. Можно ли (и как) вернуть массив объектов?
2. Адекватность хода мыслей.

Это сообщение отредактировал(а) localhost - 17.8.2012, 15:32
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0397 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.