Структура директорий для проекта на Yii Framework

Прекрасное руководство о том, как организовать структуру директорий проекта на Yii. Рассмотрен пример с применением локальной и общей конфигурации приложения.


  • 08.03.2011
  • Yii

array_map_recursive для php

В php, к сожалению, не имеется функции array_map которая могла бы рекурсивно пробежаться по массиву. Но есть кастомное решение, которое нормально работает:

function array_map_recursive($func, $array) {
    foreach ($array as $key => $val) {
        if ( is_array( $array[$key] ) ) {
            $array[$key] = array_map_recursive($func, $array[$key]);
        } else {
            $array[$key] = call_user_func( $func, $val );
        }
    }
    return $array;
}

  • 01.03.2011
  • php

Доставка в интернет магазинах

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


Различия между jQuery live delegate и bind

Полезная статья которая описывает различия между jQuery функциями live delegate и bind.

The Difference Between jQuery’s .bind(), .live(), and .delegate()


php ENUM

smartenumПри разработке приложений на связке PHP+MySql часто приходится использовать поля типа ENUM. Данный тип поля предназначен для создания списка из допустимых значений, которые перечислены спецификации столбца. Стоит отметить, что в базе поле с перечислением хранится как число, что обеспечивает высокую скорость работы.

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

К сожалению, в php не имеется встроенной возможности создания перечислений, как, например. в C#. Выходом из ситуации является решение на псевдо-enum классах.

Полностью


  • 06.02.2011
  • php

Переезд

Долгое время блог работал на Joomla. Мягко говоря, не самое удобное решение, но было выбрано из-за того, что на сайте было портфолио моих работ.  В результате решил все перевести на старый добрый WordPress и наконец то радоваться возможности писать посты через Windows Live Writer.


Класс сокращалка для Yii Framework

В процессе написания проектов на Yii framework у меня собрался класс функций, которые постоянно приходится вызывать по ходу приложения.

Полностью


  • 15.12.2010
  • Yii

Особенности функций PHP или краш print_r

У PHP есть особенности в  функциях при работе с большими объемами данных – они падают, безо всяких предупреждений. Очень часть это может проявиться в самом неожиданном месте.

Пример: При построении логики приложения на исключениях (Exceptions) очень удобно делать дамп эксепшенов в файл, а именно входные параметры функции, которая выбросила эксепшен, для чего и применяется print_r($data, true). Но если в качестве входного параметра фукнции передать объект у которого в филдах будут другие объекты, а у них ещё объекты и так до бесконечности…print_r($data, true) начинает дампить данные клиенту, вместо строки в файл.

Данная ситуация отнюдь не выдуманная, выкиньте эксепшен в startup компонента CakePHP и получите подобную ситуацию.


Установка PHPUnit на WAMP Server

Многие веб разработчики используют Windows в качестве основной ОС. По сравнению с Linux, мы лишаемся прелестей консоли и приходится использовать несколько нестандартные решения. Одним из таких является установка PHPUnit на WAMP Server.

Собственно порядок установки:

  1. Установить WAMP
  2. Открываем консоль и переходим в папку php которая находится в wamp
    D:\>cd wamp\bin\php\php5.2.11
  3. Отсюда запускаем go-pear.bat которая скачает все необходимое и установи PEAR
    D:\wamp\bin\php\php5.2.11>go-pear.bat
  4. Во время установки PEAR будет задавать разные вопросы по поводу путей, необходимо будет проверить корректность предлагаемых путей к установке
  5. После завершения процедуры нужно будет запустить PEAR_ENV.reg которая пропишет в систему переменные окружения.
    D:\wamp\bin\php\php5.2.11>PEAR_ENV.reg
  6. Если что-то пойдет не так, то стоит попробовать запустить команду из под администратора.
  7. Все, PEAR установлен, можно перейти к установке PHPUnit, сперва регистрируем канал в системе
    D:\wamp\bin\php\php5.2.5>pear channel-discover pear.phpunit.de
  8. И собственно установка:
    D:\wamp\bin\php\php5.2.5>pear install phpunit/PHPUnit
  9. На этом установка закончена. Возможно будут проблемы с запуском phpunit из консоли, необходимо проверить наличие его папки в системной переменной PATH

CSS3 в Internet Explorer

Сердце любого веб разработчика невольно вздрагивает при слове IE (при чем зачастую не важно какой версии). К сожалению самый распространенный браузер является самым отсталым в плане современных веб технологий. В данной статье хотел бы рассмотреть некоторые приемы, которые позволят использовать CSS3 для IE.
Полностью