Рубрика «php» - 195

Доброго времени суток.

Сперва небольшое вступление.
Во время разработки своего собственного проекта я столкнулся с задачей ресайза GIF файлов исключительно средствами PHP без использования программного пакета ImageMagick (думаю сами догадались почему). Если есть задача значить ее надо решить, не придав ей большого внимания и сложности я пошел на просторы Интернета искать реализованный скрипт в виде функции или класса. И к своему удивлению и огорчению (так как ресайз должен быть однозначно) я нашел всего два скрипта на PHP, авторы которых сделали попытку реализовать эту нетривиальную задачу (о других языках я вообще молчу там только безальтернативный ImageMagick), хоть перерыл Интернет вдоль и поперек.
Читать полностью »

В этой статье я расскажу как мы построили процесс разработки сайта не поднимая локальных копий веб-сервера в небольшой команде разработчиков с использованием Xdebug на тестовом сервере и автоматического развертывания репозитория на боевой сервер.

PHPStorm + XDebug + Bitbucket: разработка на удаленном сервере в небольшой команде
Читать полностью »

Почему ещё одна CMS?

На самом деле скорее CMF, а название сложилось исторически. Смысл CMS/CMF в том, чтобы сделать разработку сайта проще, быстрее и дешевле. Но в реальной жизни можно столкнуться с тем, что отклонение от стандартного поведения в CMS вынуждает лезть в исходники ядра, что чревато последующими проблемами с обновлением и безопасностью, а в CMF можно столкнуться с высоким порогом входа и достаточно большим весом системы.

Моей целью было сделать баланс функциональности, сложности и удобства как можно более гармоничным.
Система имеет определённое количество велосипедов, немного магии, и большие планы.
На данный момент CleverStyle CMS может быть интересной игрушкой именно для разработчиков, так как позволяет быстро начать разработку и получать результаты, предоставляет сложным и/или рутинным задачам простой интерфейс, потому и статья об некоторых технических особенностях с примерами в общем.
Читать полностью »

Данный способ не претендует на оригинальность, но, как мне кажется, может быть полезен в понимании принципов работы подобных систем (см. например Varien_Object, написанный разработчиками Magento, идея была взята в первую очередь оттуда) и, возможно, будет полезен в проектах, куда не очень хочется подключать тяжелые фреймворки, но уже нужно как-то систематизировать код.

Сложно представить достаточно крупный проект, в котором не было бы работы с моделями данных. Скажу больше: по моему опыту около трех четвертых всего кода — это создание, загрузка, изменение, сохранение или удаление записей. Будь то регистрация пользователя, вывод десятка последних статей или работа с админкой — все это мелкая работа с базовыми операциями моделей. И, соответственно, такой код должен писаться и читаться быстро и не должен забивать голову программиста техническими деталями: он (программист) должен думать о логике работы приложения, а не об очередном UPDATE-запросе.
Читать полностью »

Архитектура высоконагруженных приложений. Масштабирование распределенных систем. Часть вторая На этой неделе мы выкладывали первую часть расшифрованного подкаста. Сейчас подготовили вторую часть.

О чем мы говорим во второй части подкаста:

  • Горизонтальное масштабирование проекта

— когда стоит использовать облачные сервисы, а когда физический хостинг;
— «красивость решения» против «грязного, но производительного» кода. ORM и всякие подобные штуки;
— мультиязычность и мультизонность проекта, проблемы и решения.

  • Асинхронные задачи. Очереди.

— асинхронные задачи в распределенных системах;
— когда они приходят на помощь, какие технологии существуют и активно развиваются сейчас;
— какие подходы организации асинхронных задач используются в Badoo;
— c какими проблемами приходилось и приходится сталкиваться при работе с очередями;
— полезные книги и интересные конференции;
— интересные кейсы с собеседований.

Читать полностью »

Доброго времени суток. Вышла первая стабильная версия нового шаблонизатора Fenom. Для нетерпеливых, Fenom — это легковесный (статистика прилагается), быстрый (бенчмарк прилагается), гибкий (API прилагается) шаблонизатор, который может стать удачной заменой шаблонизаторам Twig или Smarty.
Читать полностью »

У вас никогда не было желания реализовать свой var_dump с html и стилями? Что правда никогда, никогда?
Читать полностью »

Архитектура высоконагруженных приложений. Масштабирование распределенных систем. Часть первая Некоторое время назад зам.главы московского офиса разработки Badoo Алексей Рыбак и ведущие IT-Компот записали выпуск подкаста «Архитектура высоконагруженных приложений. Масштабирование распределенных систем".

Сейчас мы сделали расшифровку подкаста, привели ее в удобный для чтения вид и разбили на 2 части.

О чем говорили в первой части:

  • Общая информация о проекте Badoo: стек технологий, характер и объем нагрузки, посещаемость.
  • Горизонтальное масштабирование проекта:

— веб-сервера, кеширование, мониторинг etc;
— подводные камни при масштабировании проекта;
— масштабирование баз данных, как правильно делать шардинг.

Читать полностью »

На Хабре уже было несколько статей с примерами использования замыканий в PHP. Некоторые из них были достаточно абстрактными, некоторые нет. Я приведу ещё один способ применения замыканий в реальных условиях.
Читать полностью »

В этой статье мы поговорим про анонсы и коммерческую доступность сервиса Windows Azure Web Sites.

Windows Azure Web Sites

Windows Azure Web Sites — это сервис предназначенный для быстрого создания новых или размещения существующих веб-приложений в надежном, масштабируемом облачном окружении.

Ключевыми особенностями Windows Azure Web Sites являются:

  • Поддержка разнообразных платформ и языков программирования для размещения веб-приложений;
  • Непрерывная интеграция со службами и системами контроля версий;
  • Публикация готовых приложений, фреймворков и CMS за две минуты из галереи шаблонов;
  • Масштабирование по требованию и автоматическое масштабирование вычислительных ресурсов на основе заданных правил;
  • Подробные мониторинг, ведение логов и диагностика через панель администрирования;
  • Удобное конфигурирование, поддержка SSL, привязка собственных доменов, поддержка 32 и 64-битного размещения;
  • Гибкое ценообразование: бесплатный тариф, быстрое масштабирование сайта на другие тарифы при росте приложения.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js