Kohana, ЗаметкиKohana: Bug Report #4638

Вчера в твиттере Иван скинул ссылку, на баг в kohana 3.3 под №4638. В поисках проблеммы, сегодня, убил почти 2 часа времени и все-равно сам бы не нашел корень проблемы. Спасибо хорошему человеку (Трин, привет :)). Давайте по порядку разберем суть проблемы, источник проблемы и ее решение…

ВНИМАНИЕ! На абсолютные цифры не смотрите, смотрите на процентное изменение. По поводу абсолютных цифр выскажусь в конце поста.
Kohana: Bug Report #4638 →

Kohana, ЗаметкиРоуты в kohana 3.2/3.3

Все, кто используют фреймворк kohana, наверное уже знают, что несколько дней назад вышла версия 3.3.0. Изменений не то, чтобы много, но многие из них (как обычно) что-либо меняют кардинально, т.е. обновить старые проекты просто так не получится (.

В ближайшее время постараюсь рассказать об особенностях тех изменений, которые коснулись меня, а сегодня покажу приятные изменения в роутах. Как Вы, наверное, знаете — начиная с версии kohana 3.1 и при использовании php 5.3, можно было использовать лямбда-функции в роутах. Выглядело это примерно так (в моем случае и пример упрощенный):

Route::set('redirect', function($uri){
	$compiled = Route::compile('r/<key>', array('key'=>'\w+'));
	if (!preg_match($compiled, $uri, $matches))
	{
		return FALSE;
	}
	
	$url = @base64_decode($matches['key']);
	if (empty($url))
	{
		return FALSE;
	}
	
	return array(
		'controller'  => 'link',
		'action'      => 'index',
		'key'         => $matches['key'],
	);
}, 'r/<key>');

Роуты в kohana 3.2/3.3 →

Kohana, ЗаметкиТюнинг kohana 3.0

Не так давно я представил набросок простейшего фреймворка, предназначеного для изучения новичками и для создания простейших сайтов. Комментарий, оставленный к тому посту уважаемым мною Иваном Броткиным, заинтриговал. Стало очень интересно, чего же можно добиться, если поднастроить ko3 на скорость работы. Интерес чисто академический, поэтому и настройки, по ходу дела, будут такие же. Единственное условие, которое я поставил для себя: фреймворк должен остаться полностью работоспособным, без ограничений!

Итак, начнем. Для начала, отключаем все, что можно: кеш, логирование, все доп.модули. Вывод из контролера в браузер делаем через echo, чтобы избежать использование доп. кода в самой кохане. Смотрим результат:

time: 0.0273728370667;
memory: 749360

Совсем-совсем не плохо, если сравнивать с ko3.2 и дефолтными настройками (напомню: time: 0.0946259498596; memory: 1330864). Но, данные параметры все-равно довольно высоки, поэтому идем дальше.

Тюнинг kohana 3.0 →

Kohana, ПроектыМилли-фреймворк по следам kohana

Мне очень нравится (или нравился, еще не определился) фреймворк kohana. Удобный, легко расширяемый, довольно легкий… Но, каким бы легким он не был, все-равно иногда использовать его не правильно, как из пушки по воробьям. Вот, для примера, такой случай: решил я провести пару опытов над поисковиками и сделать пару мелких сайтов для этих тестов. Сами тесты, в данный момент, абсолютно не принципиальны (о них, возможно, расскажу как-нибудь потом). Важно — сайты для тестов ОЧЕНЬ простые: 1 контроллер с 3-4 методами, 1 модель с 2-3 методами, 3-4 вьюшки, автообновление через полу-универсальный парсер… Использовать полноценный фреймворк с кучей неиспользуемых библиотек и пр. не правильно, на мой взгляд.
Милли-фреймворк по следам kohana →

Kohana, ЗаметкиРазвитие фреймворка kohana

Прочли заголовок? Тогда Вы знаете, о чем я хочу порассуждать вслух…

Для начала, опишу саму проблему: последний год (может быть чуть больше), все проекты я пишу на фреймворке kohana. До коханы пользовался codeigniter-ом. Саму коханы выбрал за минималистичность: минимум встроенных модулей, минимум встроенных классов, минималистичная (но очень удобная) файловая структура и пр. Переходить с CI 1.7 было сложно из-за привычек, но далее все было замечательно (чего не скажу про ko2.x)…

Но сегодня я уверен, что придется все-таки переходить на что-то другое. Скорее всего это будет yii или zf. Первый мне не нравится, но второй я вообще терпеть не могу (((

Напрашивается резонный вопрос — а нахрена? Вот на него я и буду отвечать далее…

Развитие фреймворка kohana →