Написание статьи стало последствием работы в довольно интересном проекте, результатом которого должен быть интернет-магазин, с возможностью привязки номенклатуры к каталогу деталей «TecDoc».
Продукт «TecDoc» — это своего рода база данных, включающая в себя не только связи производителей запчастей с конкретными номерами деталей каталога, но и содержит изображения товаров, а так же рекомендуемую цену и самое главное — возможность поиска аналогов.
Рубрика «php» - 185
Интеграция БД TecDoc с интернет-магазином автозапчастей
2013-10-01 в 8:09, admin, рубрики: php, бд, Веб-разработка, электронная коммерция, метки: PHP, бд, электронная коммерцияГенератор utf-8 json на php с поддержкой unicode 6
2013-09-30 в 16:11, admin, рубрики: emoji, json, php, regexp, utf-8Разумеется, в PHP есть прекрасная функция json_encode. Но до версии 5.3 включительно те же русские символы кодируются в виде uXXXX — в разы длиннее, чем utf-8. Чтобы уменьшить объем трафика, необходимо убрать преобразование utf-8 символов в u-последовательности. Да, в PHP 5.4 у json_encode наконец-то появился параметр JSON_UNESCAPED_UNICODE, но многие хостеры до сих пор представляют пользователям выбор только между версиями 5.2 и 5.3.
Я бы не стал изобретать очередной велосипед, но те решения, которые мне попадались, имеют общую проблему — они корректно обрабатывают только символы базовой плоскости юникода.Читать полностью »
Создаём сайт, используя Laravel и Recurly. Часть 1
2013-09-29 в 15:05, admin, рубрики: laravel, php, recurly Планирование и обработка платеже это легко, но не так легок прием регулярных платежей. Сложности могут возникнуть очень быстро. Вы должны решить, как обрабатывать отказы, данные о платежах должны быть постоянно актуальны, и поддерживать актуальность данных на сайте. И пожалуй, самый важный вопрос — держать своих пользователей в курсе платежной информации на сайте.
К счастью, Recurly — это сервис, который выполняет большую часть задач, связанных с обработкой регулярных платежей. Используя JavaScript-библиотеки, вы сможете создавать защищенные формы для отправки и обновления платежной информации, включающие в себя все важные данные платежной карты.
После того, как вы определили сумму и частоту платежей, Recurly заботится о расписании и принятии платежей, до тех пор, пока клиент не будет отписан. Recurly, также учитывает изменения тарифных планов, расчетов, внесении и вычетов дополнительных платежей.
В первой статье из двух, я покажу Вам как создать платную подписку используя сайт, созданный с использование php-фреймворка Laravel и сервиса приема платежей Recurly. Мы начнём с создания сайта с простой регистрацией, авторизацией и правами пользователя. Затем мы добавим обработку платежей, свяжем её с процессом регистрации, что позволит пользователям покупать различные тарифные планы.Читать полностью »
2gisPhpUpdater
2013-09-29 в 9:43, admin, рубрики: 2GIS, php, Геоинформационные сервисы, системное администрирование, метки: 2gisЧто делает
Консольная тулза на PHP, обновляет локальную базу всех .dgdat файлов с сервера 2ГИС. Не знаю, увидят ли этот пост разработчики из 2Гис, но я считаю очень неудобным обновлять карты из msi пакетов. Сделайте хотя бы так, чтобы они не засирали локальный кэш в папке windows/Installer/ и не записывались в Uninstall, честно, я как увидел, заколебался анинсталлить 92 пакета.
Для кого предназначена
— для тех, кто как я устал пользоваться штатным 2Гис апдейтером, который постоянно глючит и обрывает связь — нормально обновить все файлы — нереально;
— для тех, кому надо быстро скачать всю базу;
— для тех, кто потрошит и конвертирует dgdat в другие форматы (xls,mysql).
Читать полностью »
Третья версия типографа Муравьёва
2013-09-27 в 17:35, admin, рубрики: php, Дизайн в IT, инструмент, муравьёв, продукт, сервис, типограф, типографика, типография, метки: PHP, инструмент, муравьёв, продукт, сервис, типограф, типографика, типографияПрактически пять лет назад я опубликовал на Хабре пост про свой типограф: habrahabr.ru/post/67010/. Прошло много времени, он несколько раз обновлялся и получал продолжения в модулях для движков и блогов. Пришло время задуматься о самом лучшем и грамотном инструменте, который будет за вас типографировать текст. Именно по этому я вернулся к своему типографу и все начал заново.
Типограф — инструмент для форматирования текста с использованием норм, правил и специфики русского языка и экранной типографики.
Естественно я понимал, что существуют и другие решения от других разработчиков, которые имеют свои плюсы и минусы. Но мне очень хотелось начать создавать продукт, который будет иметь минимальное количество минусов и сложностей. Другими словами я хочу создать самый лучший типограф в мире — пока только для русского языка. Просмотрев все существующие типографы, собрав все правила, тесты, проверки и книги по типографике, я постарался составить тот список правил, который получится нормально реализовать в новой, третьей версии типографа, а остальные оставить на обдумывание.
О продукте
- Типограф получил поддержку Unicode (это позволяет получать на выходе сразу красивый и форматированный текст без HTML-мнемоники). По умолчанию он отключен, нужно вручную включить.
- Включил около 70 правил, 30 дополнений и исключений к ним. На сайте есть раздел со всеми общими правилами, там можно подробнее прочитать. Но опять-таки они не все, т.к. есть множество под-правил и условий.
- Теперь типограф занимаем всего один файл (EMP.php) и доступен для PHP, но в ближайшее время выйдут версии и для Python (в процессе), Ruby, Perl и JS.
- Инструмент бесплатный и всегда будет оставаться таким. Открытый исходный код. При использовании мы не просим ничего указывать, но будет здорово, если расскажете об этом.
- Каждое правило можно включить или выключить. Внутри много скрытых правил.
- Реализована висящая пунктуация (некоторые это называют оптическим выравниванием).
Админка руками менеджера или как руководитель помог программисту
2013-09-27 в 15:52, admin, рубрики: Excel, php, админка, Мероприятия, разработка, управление проектами, шаблон, метки: Excel, PHP, админка, Мероприятия, шаблон 
При разработке нашего сервиса (мы не скрываемся, но он пока еще весьма сырой и находится в стадии глубокого редизайна) команда столкнулась с задачей описания большого количества шаблонов.

Чтобы было немного понятнее – мы делаем инструмент для организации самых разных мероприятий (тематических встреч, вечеринок, юбилеев, торжеств, свадеб, корпоративов, семинаров, ремонтов, съемок, концертов, фестивалей, выставок и т.п.)
Конечно же, каждый тип мероприятия требует самых разных шаблонов и нужны инструменты их простого создания
Пока программисты были заняты разработкой самой платформы, мне очень сильно захотелось поскорее посоздавать шаблоны, которые уже крутились в голове. Но формат, в котором это разрабатывал программист весьма недружественный для разработки и сопровождения таких шаблонов.
Вот пример того, что должно загружаться в сервис
event_type_groups.config
'default'=>array(
'name' => 'default',
'title' => 'Мои шаблоны'
),
'celebration'=>array(
'name' => 'celebration',
'title' => 'Торжество'
),
'business'=>array(
'name' => 'business',
'title' => 'Бизнес-мероприятие'
),
'tourism'=>array(
'name' => 'tourism',
'title' => 'Пикник, поход'
),
…
Ждать админку нужно было несколько дней, описывать же их в такой форме – задачка весьма нудная и гарантирующая немалое число ошибок. Можно было поручить задачу по созданию админки кому-то еще, но тут пришла в голову довольно простая мысль.
SLI — быстрое создание мультиязычности на сайте
2013-09-27 в 5:20, admin, рубрики: php, Веб-разработка, локализация, мультиязычность, метки: PHP, локализация, мультиязычностьДоброго времени суток! Публикую пост по просьбе программиста ganjar. Он помог нашему интернет магазину быстро сделать мультиязычность этим самым SLI, о котором пойдет речь. В комментах он ответит на все все вопросы.
SLI (Site Language Injection) — PHP скрипт для быстрого создания мультиязычности на сайте.
Наверное, каждому веб-разработчику хотя бы раз приходилось создавать мультиязычность на сайте. И каждый, кто этим занимался, прекрасно понимает сложности, а также количество времени, которое нужно “убить” на скучную работу по реализации задачи.
Перед тем как начать создавать свое решение перечитал множество статьей о том, как разные программисты решали проблему мультиязычности, и ни в одной из них не нашел универсального способа ее решения. Под каждый новый проект нужно было заново использовать функции “обертки” для текста и ссылок, создавать таблицы с переводами, модернизировать админку для локализации контента. Ни один из описанных вариантов мне не нравился, потому что даже на создание небольших сайтов уходило много времени. Вначале требовалось реализовать функционал для работы сохранения/выбора переведенных текстов, доработать админку для локализации, а потом весь текст и ссылки обернуть в функции для локализации контента.
Читать полностью »
Интеграция веб-сервисов в популярные cms
2013-09-25 в 11:08, admin, рубрики: cms разработка, php, Блог компании Cackle, Веб-разработка, метки: cms разработка, PHPВ этой статье мы дадим рекомендации как за короткий срок освоить cms и написать для неё расширение, модуль или плагин, а также расскажем о результатах и нашем опыте интеграции сервиса Cackle в эти системы. Cтатья может стать руководством для тех, кто собирается делать интеграции сервисов с cms системами или просто создать модуль.
Перед тем как решить с какой cms делать интеграцию стоит собрать статистику по запросам на интеграцию своих пользователей, а также посмотреть на общую статистику по cms на сайтах зоны .RU (http://statonline.ru/metrics/webapp_cms?tld=ru) из которой видно, какие cms имеют самую большую популярность.

Исходя из этой статистики можно полагать, что эффект от встраивания своего модуля в эти cms статистически будет пропорционален их популярности. Так ли это для каждой cms мы узнаем дальше.
Интеграция позволяет удобным образом встраивать сервисы в cms и максимизировать выгоду от его использования. Идеальным решением является установка плагина в несколько кликов. Приемлемым решением может быть мод — инструкция по допиливанию cms, при котором изменяются скрипты cms. Для нашего проекта любая интеграция комментариев Cackle для cms обычно включает следующие пункты:
— Cинхронизация комментариев с сервиса Cackle в локальную БД каждые 5 минут
— Отображение html для SEO
— Экспорт существующих на сайте комментариев в Cackle
— Возможность ресинхронизации(повторное копирование комментариев в локальную БД)
— SSO (авторизация своих пользователей)
— Счётчик комментариев на главной странице
— Виджет последних комментариев
Все эти требования к модулю включают реализацию таймера, получение комментариев запросом через API, сохранение в БД, отображение js виджета в шаблонах cms на определенных страницах и админку для ввода ключей API, и других настроек.
Мы сделали интеграции нашего сервиса комментариев Cackle в следующие cms системы:
Wordpress, Drupal, DLE, InstantCms, Joomla, Bitrix.
Теперь хронологическом порядке опишем наш опыт по интеграции для каждой cms.
Читать полностью »
Как работает PHPixie — Жизнь одного запроса, контейнер и парадигма
2013-09-24 в 22:26, admin, рубрики: framework, php, phpixie, Веб-разработка, Программирование, метки: framework, PHP, phpixie, ооп 
Я уже много раз писал о фреймворке PHPixie и программировании на нем. В этот раз мы заглянем внутрь и посмотрим жизненный цикл приложения, к счастью простота и линейность кода позволяют сделать это с относительной легкостью.
Как и например Symfony, PHPixie состоит из двух частей: библиотеки компонентов и базового проекта, правда в случае PHPixie базовый проект более тонкий и состоит всего из нескольких файлов. Он здесь исполняет роль примера и поэтому изменение его под себя не только приветствуется но в некоторых случаях даже необходимо. Именно для этого важно понимать что и как происходит в системе. Используя свои несколько ограниченные умения в области рисования я подготовил диаграмму обработки запроса
Читать полностью »
Хэширование паролей в PHP 5.5 с использованием нового API
2013-09-24 в 16:06, admin, рубрики: bcrypt, php, php5, информационная безопасность, хэширование паролей, метки: bcrypt, php5, хэширование паролейИспользование BCrypt является общепринятым и лучшим способом для хэширования паролей, но большое количество разработчиков по-прежнему используют старые и слабые алгоритмы, вроде MD5 и SHA1. Некоторые разработчики даже не используют соль для хэширования. Новый API хэширования в PHP 5.5 ставит своей целью привлечь внимание к BCrypt, упрощая работу с ним. В этой статье я расскажу об основах использования нового API для хеширования в PHP.
Новый API хэширования паролей предоставляет четыре простых функции:
- password_hash() — используется для хэширования пароля.
- password_verify() — используется для проверки пароля на соответствие хэшу.
- password_needs_rehash() — используется для проверки необходимости создать новый хэш.
- password_get_info() — возвращает имя алгоритма хеширования и различные параметры, используемые при хэшировании.

