Ваш сайт все более популярен, рекорды посещаемости бьются еженедельно. Вы подключаете кеширование, разбираетесь в нюансах настроек, оптимизируете. Но наступает момент когда одного сервера уже никак не достаточно, а переход на самую классную в мире железяку не находит полного понимания у начальства. Ах да, ID пользователя Вы храните в Сессии PHP в файле, и вроде бы уже морально готовы положить все в базу данных, как рекомендует Интернет… Но что-то Вас останавливает.
Читать полностью »
Рубрика «php» - 217
Сравнение производительности: curl, php curl, php socket, python pycurl
2013-01-22 в 12:15, admin, рубрики: benchmark, curl, libcurl, linux, php, pycurl, python, socket, метки: benchmark, c++, curl, libcurl, linux, PHP, pycurl, python, socket Мне предстоит проект, модуль которого будет большую часть времени работать с другим сервером, отправляя ему GET запросы.
Я провел тесты чтобы определить каким способом получать страницу будет быстрее (в рамках предполагаемых технологий проекта).
Первые 3 теста: каждым из способов выполнялось по 50 запросов подряд к одному сайту.
Обход циклов посредством жестких ссылок
2013-01-22 в 9:50, admin, рубрики: php, Алгоритмы, оптимизация, Песочница, Программирование, производительность, ссылки, метки: PHP, Алгоритмы, оптимизация, производительность, ссылкиЖесткая ссылка
Жесткая ссылка — переменная, представляющая собой синоним другой переменной, на которую она ссылается. Чтобы создать жесткую ссылку, перед переменной необходимо написать "&".
Читать полностью »
Можно так просто взять и скрыть информацию
2013-01-22 в 8:22, admin, рубрики: php, безопасность, информационная безопасность, Программирование, Стеганография, метки: PHP, безопасность, Программирование, СтеганографияКаждый из читателей наверняка много раз видел фильмы, где супергерой / суперзлодей передавал зашифрованную информацию. Мы привыкли к слову «шифр», «шифрование» и любая тайная передача информации сейчас ассоциируетсяименно с этими словами. Хотя на самом деле, это далеко не так. Безопасная передача информации далеко не ограничивается криптографией (шифрования), а есть еще много методов и средств для этого.Читать полностью »
Раскрываем магию MySQL или о строгости и мягкости MySQL
2013-01-21 в 8:20, admin, рубрики: mysql, php, хитрости, метки: mysql, хитрости Очень часто в интернете встречаюсь со статьями, в которых приводят кучу примеров с якобы странным поведением MySQL по сравнению с другими БД. Чтобы стало понятно, о чём я говорю, приведу несколько примеров:
1. Деление на ноль возвращает NULL вместо ошибки
2. Выход за диапазон допустимых значений неявно приводит число к допустимому значению, а не к ошибке и откату транзакции
3. Вставка неверного типа данных также приводит к неявному преобразованию и успешному выполнению операции
Таких примеров я могу привести огромное число, но цель статьи не сделать очередное собрание высосанных из пальца примеров, а объяснить, почему происходит то или иное действие. Вся эта мистика MySQL давно описана в документации и легко объяснима, в чём вы сможете убедиться сами, прочитав статью до конца.
Для меня эта первая статья на хабре, поэтому я старался писать дотошно подробно. Уверен, что она будет полезна всем, кто работает с MySQL. Большую помощь в написании статьи оказала подготовка к сдаче на сертификат разработчика MySQL, а точнее книга «MySQL Certification Study Guide».
Итак, мой друг, начнём!
Читать полностью »
Шаблон проектирования „Registry“ на PHP
2013-01-20 в 15:04, admin, рубрики: patterns, php, Registry, singleton, метки: patterns, PHP, Registry, singleton В этой статье хочу рассказать о своем методе реализации шаблона проектирования “Registry“ на PHP. Если кратко о шаблоне — это алгоритм, с помощью которого можно хранить переменные в одном месте. Про этот шаблон можно почитать, например, здесь. От себя же хочу добавить, что этот шаблон очень хорошо идет в связке с шаблоном “Facade“.
Читать полностью »
Реализация шаблона проектирования декоратор на PHP
2013-01-20 в 13:07, admin, рубрики: design patterns, php, Проектирование и рефакторинг, метки: design patterns, PHP Полагаю сам декоратор а так же причины по которым использование этого шаблона предпочтительней классическому наследованию в описании не нуждаются. При желании о нем можно прочитать в английской или русской википедии.
Поэтому сама статья — это всего лишь мои соображений по поводу одной из возможных реализаций этого шаблона а именно динамического декорирования в противовес широко распространенной технике статического декорирования.
Читать полностью »
orange-bean — младший брат RedBeanPHP
2013-01-19 в 12:04, admin, рубрики: orm, php, RedBeanPHP, метки: orm, PHP, RedBeanPHPДва года назад я сгородил небольшую библиотеку на PHP по мотивам RedBean. RedBean обсуждали пару раз на Хабре (вот и вот). Зачем я стал делать свое, я описал в этом комментарии (не буду повторять это в статье).
То есть речь идет об ORM-библиотеке. Хотя в строгом смысле это не ORM нифига, это скорее красивые обертки над PDO. Слово ORM просто делает более понятным назначение.
Я назвал свой «продукт» orange-bean (в смысле следующий шаг по радуге, если положить, что RedBean — это первый). Поиспользовал свое творение в паре очень простых проектов, но почти нигде о нем не писал. Нормальную документацию тоже не сделал, набросал только шпаргалку, чтобы не забыть собственное API, если вдруг снова пригодится. А сегодня в «приступе ностальгии» решил немного попиариться.

Magmi – лучший способ импортировать продукты в Magento
2013-01-16 в 10:14, admin, рубрики: e-commerce, import, Magento, magento ecommerce, php, ПрограммированиеНесколько лет назад я делал много веб-сайтов на основе Magento. В архиве моего блога Вы найдете несколько статей, которые позволяют решить некоторые задачи на Magento.
Недавно я опять работал с Magento (v1.7.0.2). Есть одна вещь, которая невероятно ограничивает использование Magento. Это функционал импорта. Если вы когда-либо импортировали товары через профили Magento Dataflow — Вы знаете, насколько там все криво реализовано:Читать полностью »
Разрабатываем новый формат файла для бэкапа сайтов
2013-01-16 в 5:56, admin, рубрики: php, архивация, бэкап, дедупликация, метки: PHP, архивация, бэкап, дедупликация
Сейчас работаю над новым PHP-скриптом, который будет бэкапить не только базу данных, но и файлы сайта.
Изначально планировалось использовать один из распространённых форматов архивов. В данном случае, первое, что приходит в голову — ZIP и TAR. Для них есть множество готовых классов, а расширение ZIP даже входит в стандартную поставку PHP. Но изучив спецификации форматов, а также опробовал готовые решения, склонился к изобретению своего велосипеда.
Просьба «велосипедохейтеров» воздержаться от комментариев в стиле «хватит нам велосипедов». В конце концов, без создания «велосипедов» не было бы ни Google, ни Google Chrome, ни Facebook, ни WinRAR и 7-Zip.Читать полностью »

