Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Search found 0 matches
Author Message
  Topic: Dklab_Realplexor: Comet-сервер промышленного масштаба с API для PHP и JavaScript
Иван Шумков

Replies: 424
Views: 560732

PostForum: Конструктор   Posted: Thu Mar 11, 2010 8:57 am   Subject: Dklab_Realplexor: Comet-сервер промышленного масштаба с API для PHP и JavaScript
Ой. В nginx я добавляю проксирование с server_name comet.domain.com.

Кстати после инициализации в JS Реалплексора перестают рабоатать визвиги. Судя по всем проблема кроется в document.domain.
  Topic: Dklab_Realplexor: Comet-сервер промышленного масштаба с API для PHP и JavaScript
Иван Шумков

Replies: 424
Views: 560732

PostForum: Конструктор   Posted: Wed Mar 03, 2010 1:34 pm   Subject: Dklab_Realplexor: Comet-сервер промышленного масштаба с API для PHP и JavaScript
Спасибо за очередной подарок. На серверах CentOS, так что проблем нету, а вот часть разработчиков на Mac OSX работают. Есть рецепты запуска демона с launchctl? Хотя можно и без него - ультилита service тоже работает. А вот chkconfig естественно отсутствует.
  Topic: PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Иван Шумков

Replies: 23
Views: 36290

PostForum: Конструктор   Posted: Sat Mar 14, 2009 12:06 pm   Subject: PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Да уж. Я уже неделю мучаюсь.
Тоесть ловить все исключения а потом делать error_log ?
  Topic: PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Иван Шумков

Replies: 23
Views: 36290

PostForum: Конструктор   Posted: Wed Mar 11, 2009 9:28 pm   Subject: PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Дмитрий Котеров
Да в ходе написания кода я столкнулся с этим.

К сожалению сейчас на продакшене этот код приводит к пока очень странным последствиям и большей нагрузкой на PHP.
Разбираемся.

Еще хочется добавить отправку сообщения об ошибке, с определенными условиями, например: письмо об одной ошибке отправляется не чаще чем раз в час, а то общая для всех страниц сайта ошибка привела к тому что сервер просто упал :) (60000 уникальных в день)
  Topic: PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Иван Шумков

Replies: 23
Views: 36290

PostForum: Конструктор   Posted: Thu Mar 05, 2009 4:24 pm   Subject: PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Разобрался


function run()
{
...
require_once 'Dklab/Exceptionizer.php';
ob_start(array($this, '_errorHandler'));
...
ob_end_flush();
}


/**
* Output exception
*
* @param Exception $e
* @return unknown
*/
public function _outputError(Exception $e)
{
if ($this->_config->debug) {
if (class_exists('Zend_Registry') && Zend_Registry::isRegistered('log')) {
$log = Zend_Registry::get('log');
$log->err($e);
}
}

$this->setView();

require_once 'Zend/Controller/Request/Http.php';
$request = new Zend_Controller_Request_Http;
$request->setControllerName('error')
->setActionN ...
  Topic: PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Иван Шумков

Replies: 23
Views: 36290

PostForum: Конструктор   Posted: Thu Mar 05, 2009 11:02 am   Subject: PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Я так понимаю что нам нужен спецефичный обработчик в ob_start(), потому что так не получилось:

require_once 'Dklab/Exceptionizer.php';
$exceptionizer = new Dklab_Exceptionizer(E_WARNING);
ob_start();

undefinded();

$output = ob_get_contents();
ob_end_clean();

print $output;

Хотя судя по [url=http://ru.php.net/manual/ru/function.ob-start.php#84102]комментарию должно работать.
Не подскажите что там должно быть?
  Topic: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Иван Шумков

Replies: 49
Views: 97928

PostForum: Конструктор   Posted: Fri Feb 20, 2009 5:43 pm   Subject: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Да ваши. Вам необходимо подключить экстеншен memcache к php:
The memcache extension must be loaded for using this backend !
  Topic: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Иван Шумков

Replies: 49
Views: 97928

PostForum: Конструктор   Posted: Thu Feb 19, 2009 10:48 pm   Subject: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Разобрал по косточкам вашу библиотеку и понял почему получить список всех тегированных ключей получить пока не возможно.
  Topic: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Иван Шумков

Replies: 49
Views: 97928

PostForum: Конструктор   Posted: Thu Feb 19, 2009 10:09 pm   Subject: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Очистка по тегу работает:

$cache->clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array("online_users"));

$this->view->users = array();
foreach($ids as $id) {
if ($id)
$this->view->users[] = $cache->load("user_$id");
}
  Topic: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Иван Шумков

Replies: 49
Views: 97928

PostForum: Конструктор   Posted: Thu Feb 19, 2009 9:18 pm   Subject: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Вот код:

$memcached = new Dklab_Cache_Backend_MemcachedMultiload($backendConfig);
$backend = new Dklab_Cache_Backend_TagEmuWrapper($memcached);
$cache = Zend_Cache::factory('Core', $backend, $config);
Zend_Registry::set('cache', $cache);

$cache = Zend_Registry::get('cache');
$users = new Users;
foreach ($users->fetchAll(null,null,10) as $user) {
$cache->save($user, "user_$user->id", array('online_users'));
}

$userSessions = $cache->load('online_users');
$this->view->users = array();
if ($userSessions) { // <--- FALSE Why????
foreach ($userSessions as $session) {
//if ($session->sex == $this->_getParam('sex')) {
$this->view-&g ...
  Topic: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Иван Шумков

Replies: 49
Views: 97928

PostForum: Конструктор   Posted: Thu Feb 19, 2009 8:24 pm   Subject: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Еще вопрос, как почистить записи по тегу понятно, но возможно ли выбрать все записи по тегу?
  Topic: PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Иван Шумков

Replies: 23
Views: 36290

PostForum: Конструктор   Posted: Thu Feb 19, 2009 6:26 pm   Subject: PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Я так понимаю что перехватить Fatal error невозможно, все равно будет вываливаться?
  Topic: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Иван Шумков

Replies: 49
Views: 97928

PostForum: Конструктор   Posted: Thu Feb 12, 2009 4:39 pm   Subject: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Я так понял вы не поправили эту ошибку в новом релизе?

Catchable fatal error: Argument 1 passed to Zend_Cache_Core::setBackend() must be an instance of Zend_Cache_Backend, instance of Dklab_Cache_Backend_TagEmuWrapper given, called in /Users/ivanshumkov/Projects/geometria_old/geometria/library/Zend/Cache.php on line 110 and defined in /Users/ivanshumkov/Projects/geometria_old/geometria/library/Zend/Cache/Core.php on line 145
  Topic: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Иван Шумков

Replies: 49
Views: 97928

PostForum: Конструктор   Posted: Mon Feb 09, 2009 12:02 pm   Subject: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Бесконечно благодарен!
  Topic: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Иван Шумков

Replies: 49
Views: 97928

PostForum: Конструктор   Posted: Tue Feb 03, 2009 8:58 pm   Subject: Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика
Я так понял что вы дальше не поддерживаете эту библиотеку?
Где можно получить последнюю версию с оптимизацией количества запросов?
  Topic: JsHttpRequest 4.x: динамическая подкачка данных с поддержкой upload-а (часть 2).
Иван Шумков

Replies: 258
Views: 317997

PostForum: JsHttpRequest :: JavaScript   Posted: Thu Feb 01, 2007 10:12 am   Subject: JsHttpRequest 4.x: динамическая подкачка данных с поддержкой upload-а (часть 2).
Дмитрий Котеров
Я обратил внимание, очень здорово. На выходных постараюсь занятся более правильной интеграцией JsHttpRequest в Prototype
  Topic: JsHttpRequest 4.x: динамическая подкачка данных с поддержкой upload-а (часть 2).
Иван Шумков

Replies: 258
Views: 317997

PostForum: JsHttpRequest :: JavaScript   Posted: Wed Jan 31, 2007 10:34 am   Subject: JsHttpRequest 4.x: динамическая подкачка данных с поддержкой upload-а (часть 2).
Дмитрий Котеров
Указаные мной дополнения к Prototype позволяют передавать сложно строктурированные данные использую бэкэнд JsHttpRequest.
В колбэках, доступ к ним, как обычно:

function(ajax) {
alert(ajax.responseJS)
}

У меня есть подозрения что не совсем правильно организована работа со статусами. Надо подробнее смотреть код Prototype.
  Topic: JsHttpRequest 4.x: динамическая подкачка данных с поддержкой upload-а (часть 2).
Иван Шумков

Replies: 258
Views: 317997

PostForum: JsHttpRequest :: JavaScript   Posted: Tue Jan 23, 2007 4:58 pm   Subject: JsHttpRequest 4.x: динамическая подкачка данных с поддержкой upload-а (часть 2).
Проверил с Prototype 1.5, тоже вроде работает.
  Topic: JsHttpRequest 4.x: динамическая подкачка данных с поддержкой upload-а (часть 2).
Иван Шумков

Replies: 258
Views: 317997

PostForum: JsHttpRequest :: JavaScript   Posted: Tue Jan 23, 2007 4:00 pm   Subject: JsHttpRequest 4.x: динамическая подкачка данных с поддержкой upload-а (часть 2).
http://ajaxian.com/archives/jshttprequest-low-level-ajax-library
  Topic: JsHttpRequest 4.x: динамическая подкачка данных с поддержкой upload-а (часть 2).
Иван Шумков

Replies: 258
Views: 317997

PostForum: JsHttpRequest :: JavaScript   Posted: Mon Jan 22, 2007 4:28 pm   Subject: JsHttpRequest 4.x: динамическая подкачка данных с поддержкой upload-а (часть 2).
Кто сделает поддержку prototype JS (http://prototype.conio.net/) для JsHttpRequest (чтобы можно было использовать стандартные методы аякса из prototype js), получит пирожок. :-)
Сделал уже давно. Успешно используется в проекте с prototype 1.4 (1.5 надо проверять).


Ajax.getTransport = function() {
return new JsHttpRequest
}
Object.extend(Ajax.Request.prototype, {
success: function() {
return !this.transport.responseText && (this.transport.status == undefined
|| this.transport.status == 0 || this.transport.status == 4
|| (this.transport.status >= 200 && this.transport.status < 300));
},
setOptions : function(options) {
this.options = {
method: 'post',
asynchronous: true,
contentType: 'application/x-www-form-urlencoded',
parameters: ...
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Fri Jan 12, 2007 12:12 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Юpий Насрeтдинов
Упустили, читайте внимательнее http://forum.dklab.ru/viewtopic.php?p=126541#126541 и ниже.
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Fri Jan 12, 2007 11:47 am   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Вы обратную совместимость версий нарушаете
Интересно как? По моему алгоритму все прекрасно работает как и без параметров, как в предыдущих версиях.
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Mon Jan 08, 2007 3:32 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Дмитрий Котеров
Согласитесь?
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Fri Jan 05, 2007 8:53 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
О параметрах в запросах в виде ассоциативного масива. Наша палемика вроде не закончилась.
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Fri Jan 05, 2007 6:59 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Константин Жинько
Мы так с вами не очем не договорились?
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Fri Dec 29, 2006 4:28 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Константин Жинько
Тут тоже не сложно. Проверяем первый параметр. Если масив, а второй не строка, то первым аргументом идут параметры, в противном случае их нет.
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Fri Dec 29, 2006 12:38 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
"]
Неа ;)
Интерфейс должен быть простым!
Если мне не надо указывать дополнительные параметры, значит неправильно задавать такой массив первым параметром. Задавать его после всех значений для плэйсхолдеров тоже сомнительная авантюра.

Это очень просто реализуется.
Проверяем первый параметр, если строка то параметров нет, а если первый параметр масив, то параметры есть и второй параметр - текст sql запроса.
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Fri Dec 29, 2006 10:23 am   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Константин Жинько
По поводу форматирования, и использования переменных согласны? :)
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Thu Dec 28, 2006 4:07 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Константин Жинько
Я, честно говоря, считаю, что текстовый конфиг менее удобен, чем красиво форматированный хэш. Туда сложнее вставлять переменные. Его сложней редактировать. Все это я уже говорил.

Придумал еще пару доводов против передачи в комментариях:
1. Передача лишних данных в MySQL
2. Парсится такой конфиг намного медленее и сложнее чем хэш (его вообще не надо парсить).
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Thu Dec 28, 2006 2:49 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Константин Жинько
Как будет выглядеть sql запрос когда появится еще параметры, кроме кеширования?

Способ передачи параметров очень простой и привычный:

// несколько параметров
$db->Select(array(
'cache' => 5,
'cache_field' => 'test.modified'
), 'SELECT * FROM table WHERE id = ?d', 100);
// один параметр
$db->Select(array('cache' => 5), 'SELECT * FROM table WHERE id = ?d', 100);
// можно по идеи сделать сокращенную запись, но не уверен что это того стоит
$db->Select(5, 'SELECT * FROM table WHERE id = ?d', 100);
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Thu Dec 28, 2006 10:06 am   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Юpий Насрeтдинов
Я же хочу чтобы и вам было удобно, а не только мне :)
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Wed Dec 27, 2006 12:13 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
А главное, они идут в лог SQL-запросов, и сразу ясно, какой запрос кэшируется, а какой - нет.
Можно с таким же успехом в лог отправлять параметры, причем такой вариант дает возможность удобного форматирования параметров в логе.

Собственно, можно считать эти комментарии указаниями базе (или указанию драйверу базы), а не указаниями библиотеке.
Указания к базе могут быть представленны в более удобном формате (об этом я уже писал http://forum.dklab.ru/viewtopic.php?p=126414#126414).
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Wed Dec 27, 2006 10:58 am   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Юpий Насрeтдинов
У меня есть доводы против:
1. Параметры кеширования (и другие в будующем) не имеют никакого отношения к тексту SQL запроса.
2. Можно сразу забыть про однострочные запросы (если запрос не большой это очень удобно).
3. Еще раз напоминаю о удобстве работы с конфигом. Резать строку неудобнее и не читабельней чем просто указать array('param' => $param)
4. Конфиги обычно передаются в хэшах. Это нативно и привычно пользователю.
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Tue Dec 26, 2006 7:54 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Константин Жинько , Дмитрий Котеров
Полностью с вами согласен господа.
Считаю наиболее красивым вариантом передачу параметров в хеше (например, первым аргументом). Такой вариант более читаймый. С ним удобнее работать (динамически собирать параметры и значения). Ну и как-то нативнее помойму, чем текстовый конфиг.
  Topic: DbSimple: передача атрибутов через массив, а не в тексте запроса
Иван Шумков

Replies: 32
Views: 30700

PostForum: Разное :: PHP   Posted: Tue Dec 26, 2006 3:01 pm   Subject: DbSimple: передача атрибутов через массив, а не в тексте запроса
Помойму очень не удобно, неправильно и некрасиво передавать параметры о кешировании прямо в тексте SQL.
  Topic: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1).
Иван Шумков

Replies: 923
Views: 737089

PostForum: JsHttpRequest :: JavaScript   Posted: Wed Oct 11, 2006 2:36 pm   Subject: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1).
Ничего не понятно.
Я делал запрос на событии загрузки документа, а сам JsHttpRequest еще не успевал загрузиться.

Используйте для это замыкания JavaScript, создавая на каждую транзакцию свою собственную функцию-замыкание.
Так и поступлю, спасибо.

в стандарте XMLHttpRequest ничего подобного нет
Не до конца представлял себе всю философию вашей библиотеки.
  Topic: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1).
Иван Шумков

Replies: 923
Views: 737089

PostForum: JsHttpRequest :: JavaScript   Posted: Tue Oct 10, 2006 5:48 pm   Subject: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1).
О, нашел приватное свойство _id. Может сделать публичный метод или свойство для получения оного - вещь то полезная.
  Topic: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1).
Иван Шумков

Replies: 923
Views: 737089

PostForum: JsHttpRequest :: JavaScript   Posted: Tue Oct 10, 2006 5:12 pm   Subject: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1).
Есть масив с транзакциями. Делаю серию запросов с транзакциями в цикле. Один из запросов отдает responseText с ошибкой. Как прилинковать этот запрос к транзакции? Насколько я понимаю JsHttpRequest использует уникальный id для каждого запроса, возможно его получить при выполнении реквеста и при получении ответа в коллбэке?
  Topic: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1).
Иван Шумков

Replies: 923
Views: 737089

PostForum: JsHttpRequest :: JavaScript   Posted: Tue Oct 10, 2006 2:58 pm   Subject: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1).
Дмитрий Котеров
При загрузке частенько выводится ошибка:

JsHttpRequest is not defined JsHttpRequest.js (line 344)
  Topic: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1).
Иван Шумков

Replies: 923
Views: 737089

PostForum: JsHttpRequest :: JavaScript   Posted: Tue Oct 03, 2006 10:10 am   Subject: 41_JSHttpRequest: динамическая подкачка данных без перезагрузки страницы (часть 1).
Дмитрий Котеров
Метод abort() вызывает исключение. Есть возможность это пофиксить? Этот метод частенько нужен.
 
Page 1 of 5 All times are GMT + 3 Hours
Goto page 1, 2, 3, 4, 5  Next
XML