Структура хранения данных в поисковых движках
Вот заинтересовало;). Решил почитать. Статья в Википедии (англ.) Архитектура Google (оригинал). видео про BigTable
Новое в PHP 5.3: новое в синтаксисе
В PHP 5.3 немного обновился синтаксис — добавилось несколько полезных и удобных инструкций.
Новое в PHP 5.3: замыкания (лямбда-функции)
Замыкания (closures, лямбда-функции, анонимные функции) есть функция, не привязанная к конкретному имени функции.
Новое в PHP 5.3.0: Позднее статическое связывание
Поздним называется потому, что использование static:: будет означать вычисление класса/объекта, к которому будет относиться вызов, в момент вызова этой конструкции. А статическим — потому что работает и для статических методов (но не только для них).
Новое в PHP 5.3.0: Неймспейсы (пространства имён)
Неймспейсы Служат для разрешения проблемы коллизий имён переменных/функций/классов.
Работа с ревизиями в CouchDB
Здесь пишут, что не надо полагаться на ревизии, т.к. они стираются при репликации и при сжатии (compaction) базы. Тем не менее посмотрим пример (работаем с данными, приведёнными в предыдущем посте):
Пример работы с view в CouchDB
Вместо индексов в CouchDB используется map/reduce. Часто хватает создания одной только map-функции вида
PHPillow — php-библиотека для работы с CouchDB
«официальный» сайт объяснение работы с CouchDB через php
Установка CouchDB под Windows
Честно пытался поставить всё сам в соответствии с официальной Wiki. Почти получилось. Но так и не смог забороть эксепшн
|
1 2 3 4 5 |
** exception exit: "I?eei?aiea ia auei caiouaii, iineieueo iii iaei??aeoii iano?iaii. Iiaoi?iay onoaiiaea i?eei?aiey ii?ao ?aoeou aaiio? i?iaeaio." in function couch_util:start_driver/1 in call from couch_server_sup:start_server/1 |
Пришлось воспользоваться ссылкой на бинарники CouchDB под Windows (полный «пак») и вроде заработало. Но правда надо, чтоб был установлен Erlang (какие-то библиотеки видимо ставит). После этого осаталось только запустить werl и набрать
|
1 |
couch_server:start(). |
Проверить работоспособность …
PHPUnit в MVC-подобных системах
Установка PHPUnit производится через PEAR (Описание на англ.). Главное дальше — это научить систему работать не только (а лучше — совсем не) с серверными переменными вроде $_SERVER[‘REQUEST_URI’], а с переданными урлами (чтобы эмулировать обращение к конкретной странице) (Dependency Injection). В рассматриваемом конкретном случае предполагается в начале каждого теста подгружать файл TestInit.php. Листинг1. TestInit.php
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<? $_SERVER['HTTP_HOST'] = 'хост'; $_SERVER['REQUEST_METHOD'] = 'GET'; $_SERVER['QUERY_STRING'] = ''; //возникают ошибки, т.к. не все серверные переменные установлены ini_set('display_errors','off'); error_reporting(E_ERROR); require_once ('абсолютный-путь-к-рут-сайта/htdocs/init.php'); ini_set('display_errors','on'); error_reporting(E_ALL); ini_set('include_path', ini_get('include_path') . ';абсолютный-путь-к-рут-сайта;абсолютный-путь-к-PEAR;.'); require_once 'PHPUnit/Framework.php'; echo "--started--\n"; ?> |
Проблема …