Archive

Archive for the ‘php’ Category

Memcached

December 23rd, 2009

Пишу, чтобы не забыть ибо иногда надо знать, что происходит с memcached’ом:

$mymemcache = new Memcache;
$mymemcache->addServer('localhost', 11211);
highlight_string(print_r($mymemcache->getExtendedStats(), true));

Массив ключами, которые означают:

  • pid – идентификатор процесса
  • uptime – время работы сервера
  • version – версия ПО
  • time – время в формате unixtimestamp
  • rusage_user – пользовательское время для процесса
  • rusage_system – системное время для процесса
  • curr_items – количество сохраненных объектов в памяти
  • total_items – сколько всего было сохранено объектов за время работы сервера
  • bytes – количество байт, которые занимают сохраненные объекты
  • curr_connections – количество открытых соединений
  • total_connections – сколько всего было открыто соединений
  • cmd_get – количество запросов на получение объектов из кеша
  • cmd_set – количество запросов на сохранение объекта в кеше
  • get_hits – количество запросов когда объект был успешно найден в кеше
  • get_misses – количество запросов к отсутствующим объектам
  • bytes_read – общее количество прочитанных байт из сети
  • bytes_written – общее количество отправленных байт
  • limit_maxbytes – ограничение памяти для хранения объектов

Мануал поссмотреть по Memcache::getStats

А так как использую APC то и целый скрипт для статистики

wert2all php, web, программирование , , ,

Что нового в PHP 5.3?

July 22nd, 2009

Так как вышел PHP 5.3, то многие не знают, что же их ждёт в будущем. А приплыло многое. Вот по этому и перевёл статью с sitepoint.com.

Кому не нравится перевод или нашли ошибку, то добро пожаловать на вики, где каждый может внести поправку в перевод. Read more…

wert2all php, перевод, программирование ,

Скрипт для управления примонтированых FTP-серверов

May 26th, 2009

Помните, я думал написать скрипт для монтирования в папку пользователя FTP-директорий? Посидел, написал, выложил. Простой, как дверь, но, коль мне надо будет его часто, то перепишу под Qt с красивыми ГУЯми.

Код скрипта на bitbucket, правьте, если надо.

зы. Клёвый безплатный хаб для mercurial.

wert2all Linux, php, интернет, программирование , , , , ,

Интеграция phpDocumentor в Eclipse

September 11th, 2008

Вот сижу, пишу код, иногда пишу комментарии. Идилия. Но вот, написавши n-ий класс, столкнулся с проблемой документации его. Ведь не только я же буду им пользоваться, а писать самому, когда есть описания методов – это не путь юного падавана. Тут на помощь приходит phpDocumentor. Но его надо бы врикрутить в среду разработки, тоесть в Eclipse, чем и займёмся. Read more…

wert2all php, программирование , , ,

Бережём память в PHP

December 17th, 2007

Я люблю писать красивый код, но люблю и лаконичный, чтобы не было ничего левого и ненужного. Конечно, не до такой степени, чтобы страдала читабельность. И вот сегодня, пописывая, заметил нунужные строки в коде. Было где-то так:

$letter = $GLOBALS['tf_validate']->ords_to_unistr(array($i));
if(isset($ex[$letter])){
    $tmp['class'] = 'exist';
} else {
    $tmp['class'] = '';
}
$tmp['letter'] = $letter;

Как видно с кода сначала в переменную $letter чево-то там заганяется, а потом проверяется нуществование значения $ex[$letter]. Если нет, то в $tmp['class'] записывается пустое значение, иначе – ‘exist’. Ну и в конце записывается данные $letter в $tmp['letter']. В этом коде меня напрягла переменная $letter и я решил от неё избавится. Это сделать просто:

$tmp['letter'] = $GLOBALS['tf_validate']->ords_to_unistr(array($i));
if(isset($ex[$tmp['letter']])){
    $tmp['class'] = 'exist';
} else {
    $tmp['class'] = '';
}

Теперь у нас ничего в память левого не заганяется. Но если идти дальше, то это же можно записать в 2 строки:

Вариант 1.

$tmp['letter'] = $GLOBALS['tf_validate']->ords_to_unistr(array($i));
(isset($ex[$tmp['letter']]))?$tmp['class'] = 'exist': $tmp['class'] = '';

Но можно ещё короче!

Вариант 2.

(isset($ex[$tmp['letter'] = $GLOBALS['tf_validate']->ords_to_unistr(array($i))]))?$tmp['class'] = 'exist': $tmp['class'] = '';

Но эта конструкция уже сильно запутаная и использывать её не стоит – уж больно читаемый PHP стал похож на Perl.

Вот как 6 строчек кода можно превратить в 2 без ущерба читаемости и с экономией одной сототой килобайта памяти ;)

Update

Тут в комментариях друг Star высказался о ещё одном уменшении размера строки, но это уже больше относится к “уменшим размер – не прочитаем код”. Он предлагает уменшить строки


(isset($ex[$tmp['letter']]))? $tmp['class'] = 'exist': $tmp['class'] = '';

и как результат мы получим вариант 1 и 2 в таком виде:

Вариант 1.2.

$tmp['letter'] = $GLOBALS['tf_validate']->ords_to_unistr(array($i));
$tmp['class'] = isset($ex[$tmp['letter']])? 'exist': '';

Вариант 2.2.

$tmp['class'] = isset($ex[$tmp['letter'] = $GLOBALS['tf_validate']->ords_to_unistr(array($i))])? 'exist': '';

wert2all php, программирование

Как установить Aptana на уже существующий Eclipse

July 25th, 2007

Кто не знает то пока я web-developer (нравиться мне это слово. И просто вэб-программист не подходит). И в дому и в рабочей обстановке, системой, на которой происходит процесс набора букв с сайты, является ново-старая openЗЮЗЯ (именно в такой последовательности больших букв, так как openSUSE её настоящее имя ;) ). Если посчитать, сколько ПО использую . для работы, то получается многовато Read more…

wert2all javascript, php, web, настройка