CakePHP 2.0-dev released

PHP
В канун Нового Года команда CakePHP преподнесла всем подарок: вышел первый релиз второй ветки поплуярного фреймворка — CakePHP 2.0.0-dev. Этот релиз содержит множество изменений, несовместимых с предыдущими версиями кейка. По словам разработчиков, этот релиз пока еще сыроват и не предназначен для использования «в бою». Для работы CakePHP 2.0.x потребуется как минимум PHP 5.2.6 (наконец-то разработчики отказались от поддержки PHP4 и PHP5 < 5.2.6). Подробности по катом.

Читать дальше →

Создание документации на основе PhpDocumentor или немного про комментирование кода

PHP
PhpDocumentor автоматически генерирует из исходного кода документацию. Поэтому скрипт покажет лучший вариант только при правильном построении комментариев, именно это мы и разберем в первую очередь.


Читать дальше →

Что такое ИИН и как проверить его корректность

PHP
Топик будет важен для казахстанских разработчиков, потому что в интернете по этой теме нашел только один непонятный топик.

ИИН — Индивидуальный Идентификационный Номер, 12-значный цифровой код, который присваивается физическому лицу один раз и пожизненно. с 1 января 2012 года заменит РНН и СИК.


Читать дальше →

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

PHP
PHP продолжает развиваться и с каждой новой версией радует всякими плюшками.
Вот захотел поделится интересной идеей использования статических классов на php.

Задачи которые должен был реализовывать класс:
1. Уменьшать количество буков которые надо набирать(минимум лишней писанины)
2. Соединение с базой должно происходить непосредственно при необходимости(перед запросом)
3. Упростить жизнь, если в дальнейшем захочется сменить базу данных.


Читать дальше →

PHP: Выявляем узкие места в производительности сайта

Лирика

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


Читать дальше →

Заплатка Zend_Http_Client для поддержки кириллических доменов(ZF 1.x)

Здравствуй, уважаемый хабрачитатель. Хочу расказать о своей попытке подружить Zend Framework версии 1.8.2 с кириллическими доменами.

Работать с idn доменами Zend вроде бы умеет, однако при попытке открыть что-нибудь вроде xn--e1afmkfd.su (пример.su)
или xn--e1afmkfd.xn--p1ai (пример.рф) ругается

Fatal error:
Uncaught exception 'Zend_Uri_Exception' with message 'Invalid URI supplied' in /.../Zend/Uri/Http.php:156

Проблема замечена в версии 1.8.2, но сохраняется и до 1.11

Давайте совершим небольшой экскурс по просторам кода и посмотрим почему это происходит.
Читать дальше →

Перестановка символьных значений местами без использования промежуточной переменной в PHP

Вводная



Часто на собеседованиях задают вопросы касающиеся алгоритмов, одна из излюбленных задач — перестановка числовых переменных без использования временной промежуточной переменной.

Есть несколько вариантов такой перестановки: «Перестановка через XOR», «Перестановка через арифметические вычитание и сложение», не буду приводить их здесь полностью, любопытные могут воспользоваться ссылкой в конце текста.

Собственно созерцание этих алгоритмов навело меня на мысль о возможности перестановки строковых (символьных) значений.
Читать дальше →

Пишем интерпретатор LISP на PHP

Эта статья носит больше обучающий характер, так как практическое применение такого интерпретатора придумать сложно. Почему именно лисп? Ну для начала этот язык мне очень нравится. Не смотря на синтаксис который некоторые считают неудачным это очень гибкий язык поддерживающий различные стили программирования. Кроме того, интерпретатор этого языка сравнительно несложен в написании и при правильной реализации один из самых быстрых интерпретаторов.

Читать дальше →