PHPUnit и покрытие кода (Source code coverage)

Это третья заметка о continuous integration (CI). В ней я затрону такое понятие как покрытие кода. Это одна из мер качества ПО, которая отображает какой процент исходного кода проверяется при запуске тестов.

Continue reading

Непрерывная интеграция ZF проекта при помощи Hudson & Phing

Дальнейшим этапом развития моих отношений с CI стала настройка выполнения юнит тестов в Zend Framework проекте при деплойменте через Phing, а также последующее отображение результатов в Hudson.
Continue reading

Правильный bootstrap в TestCase для контроллеров

Наткнулся на ошибку в ControllerTestCase, код которого фигурирует во многих примерах для unit тестирования контроллеров в ZF. Я сам его приводил в обсуждении unit тестов на zendframework.ru. Как я понял ошибка появилась после 1.9 (хотя здесь я могу ошибаться).
Continue reading

phpcpd (php copy paste detector) & Phing & Hudson

Решил довнедрять в повседневную жизнь связку hudson+phing, которую мы начали внедрять ещё после Symfony Camp UA 2010 и как-то этот процесс затянулся. Попутно напишу несколько заметок для закрепления материала.

Начну с phpcpd

phpcpd — утилита написанная Себастьяном Бергманом (автором PHPUnit), основное предназначение которой поиск copy-past кода.
Её исходники доступны на github. Там же есть руководство по установке и использованию.
Continue reading

Отчет о конференции ZFConf Ukraine 2010

Вчера в КиевЭкспоПлазе проходила совместная конференция ZFConf Ukraine & MageConf. Было 4ре потока: один наш (по Zend Framework) и три от MageConf (PHP, Magento, MIX).

Фото после конференции
Также смотрите другие фото от Жени Македона.

Много людей не поняли этого момента и воспринимали тот-же поток Magento как часть конференции ZFConf Ukraine:

#zfconf #zfconfua Доклад по скраму никак не может разродиться подключением проектора

#zfconfua вы обновили мадженто и юнит-тесты упали, но черт побери, почему же это плохо?

#zfconfua Виталий Коротун начал PHP секцию. Слушаем :)

Ребята, это были разные конференции :) .

А вобще очень радует, что большинство твитов позитивные. Это стимулирует проводить ZFConf Ukraine в дальнейшем. Также мы будем стремиться сделать её ещё лучше ;) .

ИМХО

Выскажу свое мнение о докладах:

  • Встречайте Zend Framework 2.0 (Александр Веремьев) — отлично. Мне было интересно услышать именно эту инфу именно в такой подаче.
  • Эволюция ZF: архитектура, шаблоны, рефакторинг (Виктор Фараздаги) — очень сильный доклад. Виктор молодец :) . Он за 45 минут понятным языком рассказал о довольно сложных и важных вещах, которые нужно знать каждому разработчику.
  • Юнит тестирование в Zend Framework 2.0 (Ростислав Михайлив) — тоже хороший доклад. Кроме юнит тестов была затронута тема функциональных тестов.
  • Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социальной сети starlook.ru (Кирилл Мокевнин) — на доклад я не успел, но на вопросы Кирилл отвечал уверенно.
  • Doctrine 2 (Валерий Рабиевский) — доклад мне понравился и судя по твитам не только мне :)
  • NoSQL и Zend Framework (Никита Грошин | Ростислав Михайлив) — тема интересная, доклады тоже. На мой взгляд был перебор с не нормативной лексикой, но мне было интересно как это воспримет публика и я не вмешивался.

Немного цифр

На участие в совместной конференции зарегистрировалось почти 950 людей. Подтвердили участие больше 750. По предварительной оценке конференцию посетили порядка 650 человек.
Большую роль в привлечении участников на конференцию сыграли соц. медиа, а именно habrahabr.ru и twitter.com.

Итог

Было хорошо. И хорошо что было :)

Вместе с коллективом :)

LiveStreet. Плагин “SEO”

красивая картинка, которая должна ассоциироваться с продвижением :)Хочу анонсировать плагин “SEO”, который поможет оптимизировать структуру вашего сайта для поисковых систем.

Сразу оговорюсь, что плагин абсолютно бесплатен и распространяется по лицензии GNU GPL. Его можно скачать из каталога расширений (пока он на модерации, доступна копия на рапиде). В архиве есть описание функционала и инструкция по установке.

Функционал

На данный момент реализован самый базовый функционал, а именно генерация уникальных meta тегов keywords и description для главной страницы, блогов, топиков, топа и т.д. Также в футере сайта, в зависимости от страницы, выводится текст который должен повысить частоту ключевых слов на странице.

Плагин работает на двух наших сайтах и мы думаем, что доля трафика с поисковых систем растет во многом благодаря ему :) .
Для затравки покажу общий график роста посещаемости Кукорамы (плагин был подключен больше месяца назад, наблюдаю стабильный рост порядка 30%):
график роста посещаемости на cookorama.net
Continue reading

Совместная конференция ZFConf Ukraine & MageConf

Хочу поделиться анонсом конференции ZFConf Ukraine 2010 одним из организаторов которой я являюсь :) .

27го ноября в Киеве пройдет совместная конференция ZFConf Ukraine & MageConf.

Цель конференции объединить лучших специалистов PHP и Zend Framework Украины, России и других стан СНГ.
ZFConf Ukraine – первая в Украине конференция по Zend Framework, проводится в партнерстве с ZFConf Russia и сообществом zendframework.ru. Регистрируясь на одну конференцию, вы автоматически получаете доступ и на другую.

Доклады и Докладчики:
Continue reading

LiveStreet. Обновление плагина “Sitemap” до версии 0.2


Около двух недель назад я выпустил обновление к плагину Sitemap для LiveStreet. Сегодня решил продублировать анонс в своем блоге :) .

Что нового в версии 0.2?

  • Основательный рефакторинг кода плагина. Теперь все действия которые производят с наборами сущностей или свойствами сущностей другие плагины отображаются в генерируемых sitemap’ах. Для примера плагин NiceUrl изменяет url записей и в sitemap топиков выводятся url измененные плагином NiceUrl (т.е. есть поддержка NiceUrl).
  • Изменены ссылки в sitemap.xml в соответсвии с рекомандациями опубликованными на странице http://sitemaps.org/ru/protocol.php#location. Теперь они выглядят так как будто файлы sitemap’ов расположены в корне сайта.
  • Добавлены XSLT шаблоны для удобного просмотра sitemap в окне браузера.
  • Все основные настройки вынесены в конфиг плагина. Это время жизни кеша для наборов записей, приоритеты страниц, вероятная частота изменений страниц.
  • Добавлена возможность интеграции для сторонних плагинов.

Continue reading

OpenCart. Модуль доставки “Доставка курьером”

В стандартной поставке OpenCart мне не хватало модуля доставки “Доставка курьером” в котором можно было бы указывать стоимость доставки курьером и сумму заказа выше которой такая доставка будет бесплатной. Сегодня я реализовал простенький модуль под свои нужды взяв за основу модуль доставки “Самовывоз”.

Страница настроек для администратора

А так это выглядит для пользователя

Скачать Free shipping module “Delivery courier” for OpenCart v1.4.9.1

Module “Random products” for OpenCart

opencart

Була задача зробити блок випадкових товарів для нашого магазину туристичного спорядження. Взяв за основу модуль “Last Products” і трошки переробив. Ось з того що вийшло:
Купить туристическое снаряжение

Ви можете СКАЧАТИ модуль і встановити його на свому сайті. Інструкція є в архіві:

Install
=======

1) copy admin and catalog folders in the root folder of your website
2) go to Extension/Modules and enable Random module

PS. Якби одразу поліз на сайт OpenCart і заюзав пошук, то зекономив би 40 хвилин життя — подібний модуль вже є і називається як не дивно “Random Products:( . В липні шукав, то не було такого..