среда, 10 октября 2012 г.

Дайджест новостей из мира PHP

С этого месяца буду участвовать в подготовке и создании PHP дайджеста, который буду раз в две недели публиковать в корпоративном блоге на Хабре. Дайджесты будут содержать обзоры свежих релизов самого PHP, фрэймворков, инструментов тестирования, CMS/CMF и плагинов, а также ссылки на интересные статьи и туториалы с кратким описанием.

Первый выпуск уже там http://habrahabr.ru/company/zfort/blog/153769
Пожелания, комментарии, советы категорически приветствуются :-)

вторник, 4 сентября 2012 г.

Отношения в Yii: динамическое добавление

В Yii отличная реализация реляционной Active Record. Обычно для того чтоб описать отношение необходимо модифицировать метод relations() в модели: Но что если уже имеется иерархия классов и один из классов нужно расширить добавив отношение? Но при этом хотелось бы минимально изменять код самого класса, чтобы при необходимости быстро отключить расширение или применить его к другому классу.
Отношения можно добавлять динамически! Хотя эта возможность и не документирована :-)

пятница, 3 августа 2012 г.

Диагностика HTML разметки с помощью holmes.css

Наткнулся на один маленький, но очень полезный инструмент предназначенный для анализа страниц на наличие невалидных, недоступных или ошибочных элементов разметки HTML(5). И все это достигается добавлением всего одно класса к <BODY>!

Что обнаруживает Holmes?

holmes.css будет подсвечивать ошибки (красная рамка), предупреждения (желтая рамка) и устаревшие элементы (серая рамка) для следующих проблем:
  • Не указан обязательны атрибут тэга, например alt для <IMG>
  • Устаревшие и Не-W3C элементы - http://www.w3.org/TR/html5/obsolete.html#obsolete
  • Не-W3C атрибуты - много их
При наведении курсора мышки на "плохой" элемент в левом верхнем углу будет отображаться подробный комментарий о найденной ошибке.

Как использовать?

Качаем свежую версию с GitHub https://github.com/redroot/holmes/zipball/master Подключаем holmes.css (или минимизированный holmes.min.css) на анализируемой странице. Затем добавляем класс "holmes-debug" к <BODY> или <HTML> тэгам, и все готово!

Пример использования можно глянуть вот тут http://www.red-root.com/sandbox/holmes/testsuite/testsuite.html

среда, 6 июня 2012 г.

Тестовое задание для разработчика каким оно должно быть

Уже почти год в своей жизни и работе я активно использую менеджер списков задач Wunderlist, разрабатываемый компанией 6Wunderkinder. На днях я наткнулся на их сайт со списком имеющихся вакансий http://www.6wunderkinder.com/jobs/

Вот мой вольный перевод самой интересной части из описания вакансии на Javascript разработчика, а именно - тестовое задание:
...
В 6Wunderkinder мы с гордостью пользуемся open source проектами, и мы хотим делать свой вклад в развитие сообщества. Чтобы ваша кандидатура была рассмотрена на позицию в 6Wunderkinder, покажите нам свои навыки и ваше желание улучшать мир open-source выбрав open-source проект и исправив какую-либо из открытых задач/ошибок на Github баг трекере. Добавьте ссылку на ваш pull request к заявке, и объясните почему выбрали именно эту конкретную проблему для исправления. (Замечание: если чувствуете в себе силы, смело добавляйте ссылки на несколько pull requestов, но четко укажите каким именно вы довольны больше всего).
  • Влияние выбранной задачи
  • Качество кода (корректность, производительность, элегантность)
  • Читаемость кода и документация (грамотное программирование это плюс)
  • Тестирование (качественные open-source проекты все равно не примут pull request без них)
  • Ясная коммуникация в pull request, объясните как вы решили проблему, расскажите о возможных подводных камнях, и предоставьте диалог с поддерживающим(и) проект если возможно.
  • Секретные бонусные очки если pull request будет слит с основной веткой к моменту прочтения вашей заявки.

Проекты которые нам нравятся (Javascript edition): Backbone, requirejs, underscore, jasmine. 
Или: выберите стоящий проект и расскажите почему он крут и почему нам стоило бы его использовать. Если вы никогда не участвовали в open source прежде: все бывает в первый раз, и счастье сопутствует смелым!
...

Вот это подход! Никаких тебе искусственно выдуманных задач вроде "написать парсер", тетрис или, о Б-же, калькулятор! Кому это вообще надо? Разве это покажет реальную способность работать?

Совсем другое дело здесь. Человек показывает, что может решать реальные задачи, качественно оформляет решение, умеет общаться, не говоря уже об умении пользоваться инструментами вроде Git. И что самое главное, при всем при этом действительно помогает сообществу! То есть даже если кандидат не пройдет отбор, то время он потратит с огромной пользой как для себя так и для open source мира.
А уж если пройдет, то вероятно решать подобные задачи - это именно то, чем он будет заниматься входя в курс дела.

Я думаю на сегодняшний день это один из лучших способов проверить кандидата на позицию разработчика.

вторник, 22 мая 2012 г.

Полезные ресурсы по Yii Framework

В этом посте я постарался собрать самые интересные и полезные на мой взгляд источники.

http://www.yiiframework.com/ — главный ресурс, на котором кроме всего прочего есть отличный форум http://www.yiiframework.com/forum/ (en)
http://yiiframework.ru/ — русскоязычное сообщество

http://www.larryullman.com/series/learning-the-yii-framework/ — отличное введение в Yii (en)

Блоги:
http://rmcreative.ru/ — блог Александра Макарова - одного из core разработчиков Yii
http://belyakov.su/ — блог автора подкаста YiiTalk
http://www.larryullman.com/tag/yii/ — блог Ларри Ульмана и его заметки на тему Yii (en)
http://www.tipstank.com/tag/yii/ — небольшие заметки (en)
http://www.prettyscripts.com/framework/yii/  (en)

Подкасты:
http://yiiradiio.mehesz.net/ - Yii Radio отличный подкаст полностью посвященный Yii (en)
http://yiitalk.rpod.ru/ - Yii Talk хороший русскоязычный подкаст



Кроме того для тех кто пользуется IDE Eclipse существует Yii for Eclipse - http://yiiclipse.maziarz.org/ - всячески рекомендую.


Пока это все, список будет пополняться.

четверг, 26 апреля 2012 г.

Защищаемся от XSS в Yii Framework

Первую меру которую стоит предпринять для избежания уязвимостей типа XSS разрабатывая веб-приложение на Yii, это добавить следующее правило валидации в модель:
via

вторник, 24 апреля 2012 г.

the_date() не показывает дату

Столкнулся с проблемой в Wordpress, когда при попытке использовать функцию the_date() в цикле вывода постов, дата выводится только для одного поста.

К счастью причина и решение нашлись довольно быстро. Дело в том, что когда на странице опубликовано несколько постов в один тот же день, то функция the_date отрабатывает только первый раз. Чтобы вывести дату для каждого поста, нужно использовать функции the_time() или get_the_date().

<?php echo get_the_date('Y/m/d'); // то же что и the_date('Y/m/d') ?>