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

Что общего у gamedev а с космонавтикой или работа с итераторами в PHP

Привет.

Так сложилось, что недавно мне в руки попала замечательная книжка Pro PHP, в которой целый раздел посвящен итераторам. Да, я знаю что на Хабре эта тема уже поднималась (и наверняка не раз), но все же позволю себе дописать данную статью, т.к. бОльшая часть примеров в вышеупомянутых статьях достаточно оторваны от реальности. И так — если Вам интересно какую же реальную задачу мы собираемся решать с помощью итераторов — добро пожаловать под кат.
Читать полностью »

PHP и различные виды NoSQL
В последнее время набирают популярность различные NoSQL базы данных. Эта статья начиналась как изучение особенностей графитовой графовой базы данных Neo4j. Но, в процессе подбора информации, мне захотелось систематизировать информацию о NoSQL решениях и о графовых базах данных, в частности.
В ходе этого небольшого исследования, были выбраны для подробного рассмотрения СУБД, успешно применяющиеся в области Web. И, поскольку в тегах присутствует «PHP», я выбирал СУБД, которые уже можно использовать с этим языком.

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

Full Page Cache

Magento Enterprise: Что такое Full Page Cache и почему он нужен.

Для тех, кто знаком с Magento, не секрет, что этот e-commerce движок довольно требователен к железу. Но разработчики этого интернет-магазина попытались решить эту проблему и придумали много различного рода «ускорялок», без которых, пожалуй, запускать магазин на движке Magento в продакшн не стоит. Слишком долго Magento будет отдавать конечному пользователю страницу. Среди таких «ускорялок» кеши, индексы, компиляция, объединение JS/CSS в один сжатый файл и др.

Одной из основных «фишек» Magento Enterprise является Full Page Cache (далее FPC). Эту «фишку» реализует модуль Enterprise_PageCache, входящий в состав пакета Magento Enterprise.

В статье рассматривается самая свежая на момент написания статьи версия Magento Enterprise: 1.13.1.

FPC позволяет отдавать серверу страницу за считанные миллисекунды, практически не нагружая сервер. Я провел замеры времени отдачи страницы продукта сервером (в одном из проектов, над которым работал), вот результаты:

FPC

  • 65 ms при включенном FPC (когда все блоки были закешированы);
  • 1250 ms при выключенном FPC (при этом все остальные виды кеша включены);
  • 2500 ms при отключенном кеше всех видов.

Почему разница настолько велика? Давайте разберёмся.

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

Контрактное программирование В реальной жизни мы повсюду сталкиваемся с различными контрактами: при устройстве на работу, при выполнении работ, при подписании взаимных соглашений и многими другими. Юридическая сила контрактов гарантирует нам защиту интересов и не допускает их нарушения без последствий, что дает нам уверенность в том, что те пункты, которые описаны в контракте — будут выполнены. Эта уверенность помогает нам планировать время, планировать расходы, а также планировать необходимые ресурсы. А что если и программный код будет описываться контрактами? Интересно? Тогда добро пожаловать под кат!
Читать полностью »

Вступление

Очень часто при разработке разных сайтов или модулей приходится использовать — постраничную навигацию. Каждый программист использует свои способы или же готовые библиотеки, но сегодня я наведу пример как можно упростить работу с этой функцией.

Немного теории

В основе работы алгоритма лежит использование SQL — запроса с ключевым словом LIMIT. Для реализации механизма постраничной навигации, нужно: смещение от начальной точки отсчёта — START и число выводимых элементов — LIMIT.

Как же это работает ???
Рассмотрим пример разбивки информации на страницы по 3 — элемента. При такой разбивке мы поочередно будем получать значения с n по n + 3 (размер вывода). Вот наглядная демонстрация:

Постраничная навигация на PHP это очень просто

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

Вчера захотелось протестировать один из своих проектов на производительность при определенных нагрузках. Конечно, если тестировать, то уж тестировать. Проехаться Танком по проекту это минимум.

Подумав 10 минут, от танков пришлось отказаться. Лучше начать с малой артиллерии и, если что, подключать тяжелую. Запрос «нагрузочное тестирование» выдал пару проектов, но все хотят денег или дают только главную страницу нагрузить.

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

Laravel. Интернет ресурсы
Привет!

Когда я узнал, что на Хабре у Laravel появился собственный хаб, то сразу понял о чем будет моя первая статья для Хабрахабр. Точнее не статья, а обзор интернет-ресурсов о Laravel, большую часть которых я использую для того, чтобы каждый день радовать участников нашего сообщества свежими новостями. И, конечно же, это не все ресурсы, а только самые интересные и полезные. А если кому-то из вас интересны не только ссылки на интернет-ресурсы, но и сами материалы по Laravel, то с радостью приглашаю к нам в группу ВКонтакте. Так получилось, что за все время своего существования, а это всего 10 месяцев, наша группа стала самым большим и полным в мире ресурсом по количеству материалов о фреймворке Laravel. И другого такого Laravel интернет-ресурса я не знаю.
Читать полностью »

Добрый день коллеги, сегодня я расскажу сказку о своём опыте организации контроллеров в проекте на ZF 1 (так исторически сложилось).
В хороших книжках по ООП часто пишут, что наследованием нельзя увлекаться, нужно предпочитать делегирование или делать так, чтобы они работали совместно. К сожалению, не всегда можно быстро догадаться, как применить сухую теорию на практике (а когда наконец-то доходит, удивляешься «что тут сложного?»), поэтому надеюсь мой опыт кому-нибудь пригодится.

И так сначала о проблемной области:
31 Controller Action, большинство из них имеет методы indexAction(), addAction(), editAction(), searchAction().
проблема №1: большинство, но не все. В остальных наличие этих методов варьируется,
проблема №2: методы editAction() и addAction() массивные сами по себе, и почти одинаковые для всех контроллеров, отличаются инициализация формы, и сохранение модели.

Как я это решил, покажу сразу в коде.
Читать полностью »

В предыдущих двух частях (Делаем вебсокеты на PHP с нуля и Межпроцессное взаимодействие) в качестве демонстрации я использовал чаты, но в этой статье на примере онлайн-игры я покажу, что сфера применения вебсокетов может быть гораздо шире.

Как обычно, в конце статьи ссылки на демонстрационную игру и исходный код на гитхабе.

Содержание:

  • Поддержка вебсокетов браузерами
  • Разработка онлайн-игры
  • Благодарности
  • Демка и исходный код

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

Добрый вечер.

Платформа LendWings анонсирует выпуск небольшого бесплатного курса в русском переводе «Основы PHP» от замечательной команды Eduonix Learning Solutions.

Под катом более подробная информация.

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


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