Тема шардинга довольно обширная как с точки зрения программиста, так и с точки зрения администратора БД. Я сейчас хочу коснуться только вопросов генерации уникального ID сущности и алгоритмов выбора шарда.
Читать полностью »
Рубрика «php» - 156
Генерация ID для шардинга в MySQL
2014-08-14 в 14:58, admin, рубрики: mysql, php, sequence, uuid, уникальный id, шардингРеализация перечислений (Enum) в PHP с проверкой типа
2014-08-14 в 14:34, admin, рубрики: enum, php, ПрограммированиеИногда в коде приходится использовать строго типизированные параметры, однако сам язык PHP не является строго типизированным (как, например, C#, в котором присутствует такой тип данных, как перечисления – Enum). Однако выход из данной ситуации все равно можно найти. Порывшись по просторам интернета я так и не нашел подходящего мне решения. Предлагаю вам мое решение данной проблемы.
Проблема заключалась в следующем. Необходимо реализовать функцию, которая бы на вход принимала строго типизированный объект (класс), однако в теле функций необходим перебор значений данного класса и сравнение его с предопределенными константами (этого же класса):
Читать полностью »
О пользе модульного подхода в программировании на любом языке говорилось уже достаточно много, по-этому приведу кратко основные положительные моменты для JS особо не вдаваясь в подробности. Разделение приложения на модули позволяет сделать код:
- значительно более читабельным и прозрачным для понимания
- гораздо более простым в поддержке
- гибким и расширяемым
- пригодным для написания достаточно больших приложений
- легко тестируемым и более простым в отладке
Так же документация модульного кода гораздо более эффективна.
Модульность, наряду с фреймворками, помогает вывести яваскрипт на качественно новый уровень и позволяет ему перейти из ранга вспомогательных и дополнительных в ранг серьезных самостоятельных языков программирования.
Однако, модульный подход на выходе обеспечивает нас множеством файлов, которые совершенно неэффективно вытягивать с сервера на клиент по одиночке из вполне очевидных причин.
Существует хорошо зарекомендовавшие себя библиотеки способные решить большинство поставленных задач и избежать отрицательных моментов. Одной из наиболее популярных библиотек для написания модульных приложений на яваскрипт является RequireJS. RequireJS хорошо документирована и касаться разработки с ее использованием в этой статье мы не будем. Рассмотрим подробнее как интегрировать RequireJS в Symfony2 с последующей оптимизацией созданных нами модулей. Для подобной цели очень кстати может оказаться HearsayRequireJSBundle, так что, какая проблема, берем бандл инсталлируем через компоузер и все! Возможно у кого-то так и получилось, однако могли возникнуть и некоторые нюансы. Чтобы максимально сгладить процесс знакомства с подобной интеграцией предлагаю прочесть то, что изложено ниже.
Читать полностью »
И снова Яндекс.Погода для сайта: время суток, направление ветра и прочие параметры
2014-08-13 в 14:50, admin, рубрики: php, Веб-разработка, погода, Яндекс API, яндекс.погодаВ продолжении поста о погоде «Яндекс.Погода для сайта в деталях». Прочитав данный пост, я пришел к выводу, что тема еще актуальна, и хотел бы дополнить выше упомянутую статью своими наработками.
Ускорение работы Symfony-бандла с помощью Zephir
2014-08-12 в 21:23, admin, рубрики: php, php extension, symfony, symfony2, Zephir, Веб-разработка В ряде Symfony-проектов у нас используется hstore. Для тех, кто не в курсе, hstore — это PostgreSQL-модуль, позволяющий сохранять массивы значений в одном поле. Мы накидали отдельны DBAL-тип hstore, а также тип поля hstore для Doctrine ORM, для прозрачного работы с такого рода полями.
Оформлено все в Symfony-бандл IntaroHStoreBundle. Но речь в целом не о бандле. Речь о том, как мы попробовали оптимизировать его с помощью Zephir.Читать полностью »
Случалось ли с вами, что во время разбора кода стороннего плагина или темы, вы находили довольно полезную стандартную функцию, о которой раньше не знали? В такие моменты любой разработчик ощущает чувство собственной ничтожности, вспоминая какие велосипеды он городил в предыдущих проектах.
Дабы уменьшить количество расстройств, я решил описать несколько малоизвестных, но весьма полезных функций:
make_clickable
Находит в тексте ссылки и делает их кликабельными.
Пример:
$string = "This is a long text that contains some links like http://www.wordpress.org and http://www.wordpress.com .";
echo make_clickable( $string );
popuplinks
Добавляет target='_blank' rel='external' всем ссылкам в тексте.
Пример:
$string = "This is a long text that contains some links like <a href='http://www.wordpress.org'>http://www.wordpress.org</a> and <a href='http://www.wordpress.com'>http://www.wordpress.com</a> .";
echo popuplinks( $string );
wp_list_pluck
Достает определенные поля из коллекции.
Пример:
$posts = get_posts();
$ids = wp_list_pluck( $posts, 'ID' ); // [1, 2, 3, ...]
antispambot
Преобразовывает адреса электронной почты в символы HTML, для защиты от спам-ботов.
Пример:
$email = 'example@email.com';
echo '<a href="mailto:' . antispambot( $email ) . '">' . antispambot( $email ) . '</a>';
Несколько версий PHP в ISPmanager
2014-08-12 в 11:55, admin, рубрики: Debian, ispmanager, linux, php, phpfarm, хостинг Зачастую возникает необходимость обеспечить поддержку сразу нескольких разных версий PHP на одном сервере хостинга, управляемом панелью ISPmanager. В этой панели поддержки такой функции нет, разработчики неоднократно объясняли почему: http://forum.ispsystem.com/ru/showpost.php?p=48511&postcount=2 Поэтому попробуем устранить этот недостаток самостоятельно.
Читать полностью »
Ciklum PHP Speakers’ Corner в Минске, 22 августа
2014-08-12 в 11:46, admin, рубрики: ciklum, php, Блог компании Ciklum 22 августа (пятница) в 18.30 Ciklum Minsk приглашает PHP-разработчиков на открытое мероприятие PHP Developers Speakers’ Corner!
Ciklum Speakers’ Corner — это особый формат открытых мероприятий, способ Ciklum поддерживать и развивать свободный обмен знаниями в различных технологиях и областях среди сотрудников компании и представителей IT-сообществ, а также это отличная возможность для разработчиков находить коллег с общими интересами и расширять свой профессиональный опыт и кругозор.
Читать полностью »
Ресурсы в архиве или как уменьшить количество подгружаемых файлов
2014-08-10 в 10:30, admin, рубрики: html, javascript, php, web-разработка, Веб-разработкаРанним жарким утром спросонья пришла в голову идея. Подозреваю, что у этой идеи есть минусы либо ее уже реализовали куда более годным способом — но, авось да пригодится кому-нибудь.
Очень часто веб-разработчики сталкиваются с проблемой большого количества мелких файлов. Картинки, скрипты, css — неудобно, все дела. Нужно как-то бороться с этим. import, спрайты, блаблабла — это хорошо, но можно попробовать и иначе. Мой вариант — упаковка всех необходимых ресурсов в архив на стороне сервера(реализация — на php), получение данных на клиенте, установка ресурсов в нужных местах.
Проблемы на данный момент: не придумал толком, как кешировать полученный архив, таким способом не стоит паковать динамический контент или большие файлы.
Для распаковки архива на клиенте использована библиотека JSZip, для удобства — jQuery.
Magento шаг за шагом: REST API
2014-08-07 в 13:29, admin, рубрики: api, magento ecommerce, php, Разработка под e-commerceВ предыдущей статье мы рассмотрели создание «скелета» для экспорта заказов. В этой же рассмотриим создание такого же скелета, но импорта через REST API.
С Вики: REST (сокр. от англ. Representational State Transfer — «передача репрезентативного состояния») — в более употребительном узком смысле под REST понимается метод взаимодействия компонентов распределённого приложения в сети Интернет, при котором вызов удаленной процедуры представляет собой обычный HTTP-запрос (обычно GET или POST; такой запрос называют REST-запрос), а необходимые данные передаются в качестве параметров запроса. Этот способ является альтернативой более сложным методам, таким как SOAP, CORBA и RPC.
Читать полностью »

