Замыкания удобно применять в качестве callback-функций. Замыкания создают функции, не имеющие определенных имен. Замыкания автоматически преобразуются в экземпляры класса Closure. Время жизни переменных, используемых в замыкании, может быть больше, чем у той функции, где их определили. В контексте класса для передачи $this в замыкание нужно использовать промежуточную переменную: $v = $this; use ($v) Пример (0): [...]
tech blog
Category Archives: mynotes
preg_split и прямой вызов функций внутри замыканий
50000 0.0020001009607315 20001009607315 1884 56.68 0.0016987597370148 16987597370148 15.06 2952 100000 0.0020226094222069 20226094222069 1884 0.0017117062973976 17117062973976 15.37 2952 150000 0.0020203295516968 20203295516968 1884 0.0017234358565013 17234358565013 14.69 2952 Вывод: прямой вызов работает быстрее на 15%, но затрачивает памяти на 56% больше.
Редирект для Android, iPhone, iPod
server { if ($http_user_agent ~* ‘(Android|iPhone|iPod)’) { rewrite ^/$ http://m.site.org/; } }
const, define и память
На простом примере проверялось число байт, затраченных на объявление 500 констант через define и const. const const real const emalloc const peak real const peak emalloc start 524288 370528 524288 431488 stop 524288 370832 524288 431488 define define real define emalloc define peak real define peak emalloc start 1048576 454548 1048576 747424 stop 1048576 454852 [...]
Получить данные из PUT
файл $p = fopen(‘php://input’, ‘r’); while ($d = fread($p. 1024)) { …actions… } данные parse_str(fopen(‘php://input’), $p);
Rewrite с файла на файл
Требуется: по запросу /path/to/images/1.gif брать файл /path/to/images/1.gip Решение: location ~* \.(gif)$ { root /path/to/site/path/to/images; rewrite ([0-9]).gif /$1.gip break; }
Простой чат на netcat
Сервер: netcat -l localhost 8080 Клиент: telnet localhost 8080
Netcat для отлова глюков
Если вы хотите в живую видеть заголовки, отсылаемые на сервер приложением/сервером, то можно воспользоваться netcat: netcat -l localhost 8080 Все заголовки будут выводиться в консоль.
Замена в таблице
UPDATE table SET field = replace(field, ‘from’, ‘to’)
Обновление Go
hg clone https://go.googlecode.com/hg/ go cd go/src ./all.bash
Доступ к parent из iframe на jquery
$(‘#id’, top.document).html(‘hello’);
[crosspost] Infographic: Shopping Cart Abandonment and Tips To Avoid It
Большая картинка тут или тут. Вольный перевод: Отказ от покупки и как его избежать. 75% сформированных корзин не приводят к оформлению покупки. Как должна выглядеть идеальная страница оформления заказа? 1) Наличие иконок с изображением товара увеличивает конверсию на 10%. Клиент должен видеть, что он покупает именно то, что ему нужно. 2) Индикатор процесса оформления заказа [...]