Posts Tagged ‘PHP’

UP. Полномасштабная разработка проекта

Пятница, Октябрь 10th, 2008

Чего-то сегодня не спится совершенно… Возможно это тот самый знак, которого я так долго ждал? А знак мне нужен был, что бы решиться начать серию статей на основе реальной разработки проекта средних масштабов. Но не просто разработке в общем смысле этого слова, и даже не о разработке на основе Zend Framework, Doctrine ORM и пр. и пр., а о разработке начиная с постановки задачи, анализа и проектирования (с необходимой степенью глубины), поиска решений и реализации.
И раз уж первый абзац уже набран, то смысла останавливаться не вижу :) Приглашаю всех поучаствовать в процессе, который будет проходить на основе UP.
(more…)

Фильтрация вывода по белому списку

Среда, Сентябрь 3rd, 2008

Часто ли Вам, как web-разработчику, приходилось переживать за то, как вывести контент, оставленный пользователем, на страницу?
Думаю многие уже вооружались strip_tags() и htmlspecialchars(), но сегодня я пошел немного дальше. Теперь нет необходимости забирать возможность выводить любые теги, теперь можно просто указать какие теги допустимы к выводу, а так же какие атрибуты они могут содержать, ведь ни для кого не секрет, что onclick или onmouseover в безобидном теге DIV может творить чудеса :)
Под катом ссылка на скачивание и пример использования.
(more…)

Сделаем PHP строго типизированым

Понедельник, Сентябрь 1st, 2008

Данный пост посвящается любителям typehint’ов и строгой типизации, которой у PHP нет по определению.

копаясь недавно в мануалах по PHP, набрел на раздел о typehint’инге, и совершенно случайно полез в комментарии, где и нашел великолепное (хотя и тяжелое) решение для PHP5, как сделать язык строго типизированным. Под катом решение.
(more…)

PHP Open Air Party 2008

Суббота, Август 16th, 2008
PHP Open Air Party (Ukraine)

decbin() в PHP

Пятница, Август 8th, 2008

Сегодня maxic задал интересную задачку :) Вернее не сама задача, а ее последствия.
Итак.
Имеем число 4294967295


$n = 4294967295;

Теперь попробуем найти его в двоичное значение:


echo decbin( $n );

Все нормально. Как и ожидали - 32 единички.

А если это число пришло к нам из БД? То оно будет представлено изначально в виде строки:


$s = '4294967295';

И если мы его попробуем преобразовать, то получим всего 31 единичку…
(more…)

корявость PDO

Среда, Июль 30th, 2008

The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP.

Собственно интерес к PDO у меня проснулся из-за подготовки к ZCE, где довольно много вопросов на нем основывалось. Нет - я не то что бы совершенно с ним знаком небыл, но использовать в боевых условиях не приходилось, а вот тут как раз подвернулась возможность засунуть PDO в реальный проект, и сразу же нашлись недостатки…
(more…)

ZCE

Воскресенье, Июль 27th, 2008




Ну что - почитать три раздела и можно идти? :)

IT сообщества

Суббота, Июль 26th, 2008

За свою карьеру разработчика, я уже успел активно поучаствовать в жизни двух IT сообществ:
Украинское сообщество PHP программистов (где даже успел стать куратором) и Хабрахабр.
Каждое из них было абсолютно не похоже на другое и исповедовало различные цели. (more…)

Zend_Db_Table vs PHPDoctrine

Четверг, Июль 24th, 2008

Выдалось немного времени на эксперименты с Zend_Db_Table (ZDT) и по результатам хочу отписаться сюда :)

Итак. Не так давно в голову закралась мысль “зачем мне ORM, если у ZendFramework есть Zend_Db_Table?”. Вобщем-то довольно справедливое сомнение, если учесть, что ZDT содержит всю ту же функциональность, характерную для ORM: тут и биндинг полей к свойствам, тут и связи (даже n:m!), тут и магические аксессоры (magic accessors), тут и.. вобщем много тут всего :) Но…
(more…)

Перечисления в PHP

Понедельник, Июль 7th, 2008

Часто ли вам приходилось сожалето о том, что в PHP нет перечислений как таковых?

Да, кто-то обходился конвенцией именования и получалось нечто вроде:

define( 'COLOR_RED', 'F00' );
define( 'COLOR_GREEN', '0F0' );
define( 'COLOR_BLUE', '00F' );

Или нечто вроде:

// данную переменную ЗАПРЕЩЕНО модифицировать
$colors = array(
    'red' => 'F00',
    'green' => '0F0',
    'blue' => '00F',
);

Но оба подхода имеют существенные недостатки:

  • В первом случае члены перечисления не образуют явной группировки
  • Во втором случае есть риск что переменная будет изменена
  • И в обоих этих случаях мы не можем делать проверку на тип переменной (type hinting)

Под катом предлагаю решение без вышеописанных недостатков…
(more…)