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

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


Различия между 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.
Полностью


Несколько Regex’ов

Сколько я не пытался выучить язык regex’ов, так у меня это толком и не получилось. Поэтому я постоянно пополняю свою подборку выражений на все случаи жизни.
Вот небольшая часть из них:

  1. проверка валидности URL
    /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/
  2. стойкость пароля
    • пароль должен содержать минимум 1 символ в верхнем регистре
    • пароль должен содержать минимум 1 символ в нижнем регистре
    • пароль должен содержать минимум 1 цифру или специальный символ
    • пароль должен иметь минимум 8 символов в длину
    • максимальная длина пароля не ограничивается
    (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
  3. незакрытые теги img
    по XHTML стандарту все теги должны быть закрытыми, данный regex ищет незакрытые теги

    <img([^>]+)(\s*[^\/])>
  4. ищем все CSS атрибуты
    с помощью данного выражения можно найти все css атрибуты

    \s(?[a-zA-Z-]+)\s[:]{1}\s*(?[a-zA-Z0-9\s.#]+)[;]{1}
  5. проверка IBAN кода
    ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)

Динамически подгружаемый контент в Joomla

Не так давно я программировал сайт, основная задумка дизайнера – мы находимся в кабине лифта, кнопки переключения этажей – меню «Новости», «Контакты» и т.п. Основной контент находится «в дверях лифта». При нажатии на кпонку этажа, двери закрываются, происходит загрузка содержимого, двери открываются.

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

Полностью