Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2013, 19:09   #1
phpidiot
Новичок
Джуниор
 
Регистрация: 15.01.2013
Сообщений: 3
По умолчанию Способ аккумуляции сообщений, по ходу выполнения

Подскажите, противоречит ли чему-то использование кода в примерах (ПХП на него не ругается). И если нет, то какой вариант предпочтительней (ну и если скажете почему - вообще супер). А если да, то как порекомендуете реализовать такую штуку:
Приложение получает данные из кучи разных источников и обрабатывает их кучей разных способов. Возможны ошибки или прочие сообщения на каждом этапе, при этом обработка не должна прекращаться, как минимум для оставшейся части данных. Поэтому идея такова, в течении процесса сбора и обработки данных все сообщение каким либо образом аккумулируются, а затем по завершению обработки, вместе с результатами передаются в шаблон для вывода пользователю.
Вот из этих соображений и родились сии творения. По сути, это что-то типа использования глобальных переменных я так понимаю. В общем жду любого совета.
Спасибо.

Пример1 (обращение к свойству напрямую)
PHP код:
<?php
error_reporting
(E_ALL);
ini_set('display_errors'true);

class 
Messages {
    public static 
$messages = array();
}


function 
doSmth()
{
    
Messages::$messages[] = 'another message';
}


Messages::$messages[] = 'message';
doSmth();

var_dump(Messages::$messages);
Пример 2 (обращение к свойству через методы)
PHP код:
<?php
class Messages {
    private static 
$messages = array();
    
    public static function 
addMessage($msg)
    {
        
self::$messages[] = $msg;
    }
    
    public static function 
getMessages()
    {
        return 
self::$messages;
    }
}


function 
doSmth()
{
    
Messages::addMessage('another message');
}


Messages::addMessage('message');
doSmth();

var_dump(Messages::getMessages());
phpidiot вне форума Ответить с цитированием
Старый 16.01.2013, 13:04   #2
masax
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 248
По умолчанию

перенаправь поток вывода ошибок:
http://php.net/manual/ru/errorfunc.c...display-errors
Контакты
skype, почта: bm@kwax.ru
masax вне форума Ответить с цитированием
Старый 16.01.2013, 13:47   #3
phpidiot
Новичок
Джуниор
 
Регистрация: 15.01.2013
Сообщений: 3
По умолчанию

Причем здесь это?
phpidiot вне форума Ответить с цитированием
Старый 16.01.2013, 14:17   #4
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

2-й способ + завернуть класс в singleton
Cronos20 вне форума Ответить с цитированием
Старый 17.01.2013, 17:08   #5
phpidiot
Новичок
Джуниор
 
Регистрация: 15.01.2013
Сообщений: 3
По умолчанию

Cronos20, спасибо. Узнал про singleton.
Почитал немного сатей + комментариев к ним. Многие пишут, что использовать его следует с осторожностью и зачастую он не нужен.
Я попытался понять, почему мне для этой задачи нужен именно singleton и не подходит статический класс. Не получается.
Может просветить кто-то?
phpidiot вне форума Ответить с цитированием
Старый 17.01.2013, 20:22   #6
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Ну я так понимаю, своим вопросом вы познаете философию программирования ... ну так вот это один из примеров паттернов проектирования, т.е. набор шаблнов для грамотного построения приложения. А синглтон в частности - гарантия защиты от "дурака", что кто-нибудь другой (или вы сами, спустя какое-то время) не возьмет и не начнет использовать данный класс так как не предусматривает логика приложения(просто все начнет падать). Если только начали постигать дао программирования, то погуглите и поищите книги по слову "паттерны проектирования" - откроете для себя новую бескрайнюю вселенную.
Cronos20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Просмотр значений переменной-vector по ходу выполнения WarHamster C++ Builder 2 09.04.2012 06:19
Поиск на ходу spein JavaScript, Ajax 8 30.07.2011 00:50
Сбор сообщений службы сообщений Windows XP testor48 Работа с сетью в Delphi 3 31.03.2011 20:20
цикл...и по ходу бесконечный... victum Помощь студентам 10 07.01.2009 15:57
Перехват сообщений от Службы сообщений (Messenger) SJMS Win Api 6 17.07.2008 10:26