Заметки, ПроектыСравниваем классы в php

Давно хотел сравнить между собой обычные методы классов и статичные, но все руки не доходили. Сегодня вот столкнулся с приватным фреймворком, в котором ВСЕ методы и параметры статичные. Вообще все, т.е. нет ни одного обычного объекта! Откладывать сравнение было уже нельзя, чем я и занялся утром. Результаты неоднозначные, даже странные для меня, местами. В общем, «непоняно» что и как… На Ваш суд выношу результаты тестов, а Вы попробуйте мне объяснить почему результаты именно такие. Кстати, я не буду сравнивать размер используемой памяти, т.к. тут как-раз все понятно — статичные методы и свойства явно будут меньше кушать памяти. Это понятно.

Итак, начнем. Для начала, попробуем сравнить между собой «сферических конец в вакууме», т.е. классы-пустышки. Код у нас получится примерно такой:

<?php

class ClassStatic {

	public static function test() {
		;
	}

}

class ClassDinamic {

	public function test() {
		;
	}

}

$static = array();
$dinamic = array();

for ($count = 0; $count < 100; $count++) {
	$start = microtime(TRUE);
	for ($i = 0; $i <= 1000; $i++)
		ClassStatic::test();
	$static[$count] = microtime(TRUE) - $start;

	$start = microtime(TRUE);
	$obj = new ClassDinamic();
	for ($i = 0; $i <= 1000; $i++)
		$obj -> test();
	$dinamic[$count] = microtime(TRUE) - $start;
}

echo 'Static: min - ' . min($static) . '; max - ' . max($static) . '; avg - ' . array_sum($static) / 100 . "<br />\n";
echo 'Dinamic: min - ' . min($dinamic) . '; max - ' . max($dinamic) . '; avg - ' . array_sum($dinamic) / 100 . "<br />\n";

Сравниваем классы в php →

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

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

Заметки, ПроектыSEO для борьбы с конкурентами

Время от времени приходится работать с различными cms. Среди них, иногда, попадается opencart. Довольно не плохой движок инет-магазина, но самое главное — очень простой. Видимо по этой причине многие его используют, включая и меня =).

Недавно попросили разобраться с дублями страниц на сайте, сделаном на opencart. Пришлось немного изучить модуль seo_url… и охренел. По другому и не скажешь. Вот так выводятся категории:

$this->load->model('tool/seo_url');

if (isset($this->request->get['path'])) {
    $this->path = explode('_', $this->request->get['path']);
    $this->category_id = end($this->path);
}

SEO для борьбы с конкурентами →

Kohana, ПроектыWordPress + Kohana

Сегодня расскажу как интегрировать kohana 3.2 в wordpress. Тема для меня интересная, т.к. последний опыт написания скриптов на чистом php мне не понравился =). Вообще, в инете инфу на данную тематику найти тяжело. Либо все ссылаются на плагин Kohana-for-Wordpress, либо инфа очень старая и не подходит для WP3 или/и KO3.2.

Для начала, немного истории о том, как я искал всю эту инфу =). Первым шагом, конечно-же, был поиск. Первым пунктом в выдаче идет блог уважаемого мной программиста Саши Купреева. На странице, которую выдал Яндекс, подробное описание использования плагина Kohana-for-Wordpress, о котором я говорил выше. И в этом описании видно, что плагин тестировался для ko3.0 и wp2.8.4. Те, кто следит за развитием kohana или wordpress поймут, что версии настолько устарели, что вряд ли вообще этот плагин будет работать. Так же подумал и я, но решил проверить…

WordPress + Kohana →

ПроектыQR-генератор

QR-генератор Случайно нашел на винте скрипт генерации QR-кодов. Автор Павел Новицкий, если сайт к сожалению не работает (e-luge.net). Решил попрактиковаться в программировании без фреймворков.

Процесс получился достаточно не простой — отвык я с нуля и без ООП писать =). Результат разместил на этой странице, можете играться =).