Собственно перехал, с svn на git. Новый адресс http://github.com/necromant2005/zrails
Все таки какой прекрасный мердж в git ...
Пока только самые нужные вещи:
Пока только самые нужные вещи:
- Master-slave replication adapter: Zrails/Db/Facade/Replication
- Cluster adapter: Zrails/Db/Facade/Cluster
- Horiziontal scale adapter: Zrails/Db/Facade/Scale
- CouchDb adapter: Zrails/Db/Document/Adapter/Couchdb.php
Странное, закономерное. Выделял интерфейс с большого объекта, в ккой-то момент начал получать следующую ошибку. Какое-то время думал WFT. Но все оказалось просто. Вообще судя по гуглу больше никто не получал ошибки даткого типа :)
abstract class A
{
abstract public function __construct();
abstract public function __call($m, $a);
public function foo() {}
}
abstract class B extends A
{
abstract public function foo($a, $b);
}
class C extends B
{
public function __construct() {}
public function __call($m, $a)
{
echo $m . ': '. var_export($a, true);
}
public function foo($a, $b)
{
return $a+$b;
}
}
$b = new C();
$b->foo(123, 45);
//Fatal error: Cannot make non abstract method A::foo() abstract in class B in /home/necromant/x.php on line 12
Никогда не проверял до єтого момента, а тут оптребовалось реализовать абстраный конструтор у класса. Не был уверен что будет работать коретно, но оно РАБОТАЕТ.
Все таки это приятно.
abstract class A
{
abstract public function __construct();
abstract public function __call($m, $a);
}
class B extends A
{
public function __construct() {}
public function __call($m, $a)
{
echo $m . ': '. var_export($a, true);
}
}
$b = new B();
$b->foo(123, 45);
Все таки это приятно.
GlusterFS - распределенная файловая система. Примерами похожими на GlusterFS, является GFS, GPFS, Lustre, Hadoop, конечно со своими вариациями.
Подробнее тут ...
- Установка
- Настройка
- Основные понятия. Внутреннее устройство.
- Выводы
- Ссылки
Подробнее тут ...
По совету korchasa решил глянуть, творение от разработчиков facebook - github.com/facebook/phpsh/tree/master
Не знаю почему, но на моем лептопе phpsh отказался внятно работать, при любом вводе выдавал многозначительное:
:) что конечно не могло не радовать.
Идея консоли мне нравится, давно играюсь с Ruby on Rails и там консоль просто незаменима.
В общем решил прикрутить себе. Первый вариант не заставил себя долго ждать 2 минуты и 20 строк кода http://pastebin.com/m1779f2cd - зато работает :)
В общем готовая рабочая консоль в Zrails :)
Wiki с описанием и примерами: code.google.com/p/zrails/wiki/DebugConso le
Исходники:
code.google.com/p/zrails/source/browse/t runk/Script/console.php
code.google.com/p/zrails/source/browse/t runk/Vendor/Core/Debug/Console.php
Не знаю почему, но на моем лептопе phpsh отказался внятно работать, при любом вводе выдавал многозначительное:
Parse error: syntax error, unexpected ')' in /usr/local/bin/phpsh_check_syntax(4) : eval()'d code on line 1
:) что конечно не могло не радовать.
Идея консоли мне нравится, давно играюсь с Ruby on Rails и там консоль просто незаменима.
В общем решил прикрутить себе. Первый вариант не заставил себя долго ждать 2 минуты и 20 строк кода http://pastebin.com/m1779f2cd - зато работает :)
В общем готовая рабочая консоль в Zrails :)
Wiki с описанием и примерами: code.google.com/p/zrails/wiki/DebugConso
Исходники:
code.google.com/p/zrails/source/browse/t
code.google.com/p/zrails/source/browse/t
ZF + Горизонтальная масштабируемость
Написал адапnер для ZF предоставляющий функционал горизотального маштабирования данных бд. Основной зарачей горизотального маштабирования является возможно разнесения бд, путем разрезания таблиц с данными на части. Таким образом появляется возможность гибко маштабировать операции записи, выборки из больших таблиц содержащих свыше 10 млн. записей или размером свыше 5 Гб. Подробнее ...
Написал адапnер для ZF предоставляющий функционал горизотального маштабирования данных бд. Основной зарачей горизотального маштабирования является возможно разнесения бд, путем разрезания таблиц с данными на части. Таким образом появляется возможность гибко маштабировать операции записи, выборки из больших таблиц содержащих свыше 10 млн. записей или размером свыше 5 Гб. Подробнее ...
- Місце знаходження:Україна, Київ
- Натсрій:
hopeful - Музика:Rolling Stones - Jumpin' Jack Flash
Как работает MogileFS
- Установка.
- Настройка.
- Основные понятия Хост/Устройство Домен/Класс. Как хранятся данные и каким образом отдаются.
- Внутреннее устройство.
- Выводы.
Продолжение ...
- Місце знаходження:Ukraine, Kiev
- Натсрій:
shocked - Музика:Bobby Darin - Splish Splash
Zend_Markup - предназначен для парсинга и пребразования текста. На текущий момент доступен только 1 парсер 'Bbcode' и только 1 рендер 'Html'. Отличительной особеностью являеся не ограниченый уровень вложености тегов, а также возможность задания кастомных stoppers.
( Read more... )
Исходники:
http://framework.zend.com/svn/framework/s tandard/incubator/library/Zend/Markup.ph p
http://framework.zend.com/svn/framework/s tandard/incubator/library/Zend/Markup
( Read more... )
Исходники:
http://framework.zend.com/svn/framework/s
http://framework.zend.com/svn/framework/s
- Місце знаходження:Ukraine, Kiev
- Натсрій:
good - Музика:Jackson Five - ABC
В связи с релизом ZF 1.8.4 , решил посмотреть что там еще осталось в инкубаторе. Нашел всего 2 вещи которые можно посмотреть Zend_Calendar (http://framework.zend.com/wiki/disp lay/ZFPROP/Zend_Calendar+-+Thomas+Weidne r) и Zend_Mackup (никакой документации нет вообще)
Так решил запустить тестовые примеры Zend_Calendar , получил в ответ исключение "Calendar class yet not implemented... will be done when Zend_Date is ready!". Решил глянуть исходники
Это было суппер, очень порадовало и напомнило старую ситуацию, когда мигрировал с версии 0.8 до 0.93.
История была такая: был старый копонент Zend_Validate_EmailAddress::isValid в котором в версии 0.8 была простейшая проверка "preg_match('/[a-z.\-_]+@[a-z.\-_]+/')".
Мигрировал приложение на версию 0.9 и отвалилась проверка валидности email, начал копать что же прозошло, пока не посмотрел собсвенно сам Zend_Validate_EmailAddress::isValid, я долго смеялся
Так решил запустить тестовые примеры Zend_Calendar , получил в ответ исключение "Calendar class yet not implemented... will be done when Zend_Date is ready!". Решил глянуть исходники
public function __construct($date, $locale, $parameter)
{
throw new Zend_Date_Exception('Calendar class yet not implemented... will be done when Zend_Date is ready!');
}
Это было суппер, очень порадовало и напомнило старую ситуацию, когда мигрировал с версии 0.8 до 0.93.
История была такая: был старый копонент Zend_Validate_EmailAddress::isValid в котором в версии 0.8 была простейшая проверка "preg_match('/[a-z.\-_]+@[a-z.\-_]+/')".
Мигрировал приложение на версию 0.9 и отвалилась проверка валидности email, начал копать что же прозошло, пока не посмотрел собсвенно сам Zend_Validate_EmailAddress::isValid, я долго смеялся
public function isValid()
{
//@TODO This should be done
}
Итак пару дней назад получил письмо с предложением описать процесс сдачи ZFCE. Ну что ж постараюсь ответить на все вопросы.
( Read more... )
В продолжение http://necromant-2005.livejournal.com/6 4798.html
Что из этого получилось можно посмотреть в исходниках. Но так глобально очень похоже вышло на Gmail, пользоватся немного страннова-то особенно когда тікаешь на страницу которой ету в кеше, но все же быстро привыкаешь как как сервер тебе честно говорит: "Гружу страницу, подождите ...". Но для боевого приложения все же более адекватным будет держать сразу в кеше или дергать кеш через какой-то временой промежуток скажем 3 раза каждые 50 мсек.
Исходники рабочего примера: http://filebox.powernet.kiev.ua/tmp/que ue.tar.gz
Исходники зенда с спепшотом из инкубатора: http://filebox.powernet.kiev.ua/tmp/que ue-zend.tar.gz
Все остальное под катом
( Read more... )
Что из этого получилось можно посмотреть в исходниках. Но так глобально очень похоже вышло на Gmail, пользоватся немного страннова-то особенно когда тікаешь на страницу которой ету в кеше, но все же быстро привыкаешь как как сервер тебе честно говорит: "Гружу страницу, подождите ...". Но для боевого приложения все же более адекватным будет держать сразу в кеше или дергать кеш через какой-то временой промежуток скажем 3 раза каждые 50 мсек.
Исходники рабочего примера: http://filebox.powernet.kiev.ua/tmp/que
Исходники зенда с спепшотом из инкубатора: http://filebox.powernet.kiev.ua/tmp/que
Все остальное под катом
( Read more... )
- Місце знаходження:Ukraine, Kiev
- Натсрій:
thankful - Музика:Dionne Warwick - Do You Know The Way To San Jose
Пример конфигурации nginx для работы с ZF в окружении development
server {
listen 80;
server_name queue.laptop;
location / {
root /var/www/queue/public;
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?$1 last;
}
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/queue/public$fastcgi_script_name;
fastcgi_param APPLICATION_ENV development;
include /etc/nginx/fastcgi_params;
}
}
В продолжение http://necromant-2005.livejournal.com/6 6181.html
Решил создать проект и попробыват использовать , то как предлагает Zend
Проект создается, создатся нужные файлы даже начальный бутстрап. И все работает :) в дефолтовой конфигурации.
( Read more... )
Решил создать проект и попробыват использовать , то как предлагает Zend
zf create project
Проект создается, создатся нужные файлы даже начальный бутстрап. И все работает :) в дефолтовой конфигурации.
( Read more... )
Слетал в Тайланд на неделю
Фотки тут http://fotki.yandex.ru/users/kpss7/albu m/67848/
Особенно радуют эта
и эта

Фотки тут http://fotki.yandex.ru/users/kpss7/albu
Особенно радуют эта
и эта

Написал бота для уведомления о новых письмах в почтовом ящике.
JID: mail-notificator@jabber.powernet.kiev.ua
Список доступных команд: help
Пример для Yandex: mailbox-add-yandex username password
Пример для Gmail: mailbox-add-gmail username@gmail.com password
Пример для Mailru: mailbox-add-mailru username password
Пример для кастомного сервера: mailbox-add pop://username:password@pop.host.com
Пример для кастомного сервера с ssl: mailbox-add pop-ssl://username:password@pop.host.com:9 95
Пример для кастомного сервера imap: mailbox-add imap://username:password@imap.host.com
JID: mail-notificator@jabber.powernet.kiev.ua
Список доступных команд: help
Пример для Yandex: mailbox-add-yandex username password
Пример для Gmail: mailbox-add-gmail username@gmail.com password
Пример для Mailru: mailbox-add-mailru username password
Пример для кастомного сервера: mailbox-add pop://username:password@pop.host.com
Пример для кастомного сервера с ssl: mailbox-add pop-ssl://username:password@pop.host.com:9
Пример для кастомного сервера imap: mailbox-add imap://username:password@imap.host.com
Вчера сосвтоялся релиз php 5.3 rc2 (http://www.php.net/archive/2009.php#id 2009-05-07-1)
Описание миграции на 5.3 : http://wiki.php.net/doc/scratchpad/upgr ade/53
Описание миграции на 5.3 : http://wiki.php.net/doc/scratchpad/upgr
Обновился до последного снепшота 1.8 и влил сверху инкубатор.
Первое на что наткнулся это то что
Новый код c использованием Zend_Loader_Autoloader
Решение понятное, так как данные изменения обусловлены следующими факторами:
подробнее http://framework.zend.com/manual/en/zen d.loader.autoloader.html
Первое на что наткнулся это то что
Zend_Loader::registerAutoload();
//Zend_Loader::Zend_Loader::registerAuto load() is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader
Новый код c использованием Zend_Loader_Autoloader
Zend_Loader_Autoloader::getInstance()->r egisterNamespace('Core_');
Zend_Loader_Autoloader::getInstance()->r egisterNamespace('App_');
Решение понятное, так как данные изменения обусловлены следующими факторами:
- Введение неймспейсов и архивов(phar) в php 5.3. Требуется изменить существующий код загрузки для поддержки нового функционала.
- Безопасность, все таки стоит не на последнем месте. Таким бразом можно, гибко ограничить списк доступных для загрузки префиксов
подробнее http://framework.zend.com/manual/en/zen
Подробнее и ссылки тут :
http://www.agileukraine.org/2009/04/agi
http://www.agileukraine.org/2009/04/agi
http://www.agileukraine.org/2009/04/agi
http://www.agileukraine.org/2009/04/agi
http://www.agileukraine.org/2009/04/agi



