Метка «PHP» - 36

Добрый день, уважаемыее. В данном посте речь пойдет о совместном проекте S. C. Chen и John Schlick под названием PHP Simple HTML DOM Parser (ссылки на sourceforge).

Идея данного проекта — создать инструмент позволяющий работать с html кодом используя jQuery подобные селекторы. Оригинальная идея принадлежит Jose Solorzano's и реализована для php четвертой версии. Данный же проект является более усовершенствованной версией базирующейся на php5+.

В обзоре будут представлены краткие выдержки из официального мануала, а так же пример реализации парсера для twitter. Справедливости ради, следует указать, что похожий пост уже присутствует на habrahabr, но на мой взгляд содержит слишком малое количество информации. Кого заинтересовала данная тема, добро пожаловать под кат.
Читать полностью »

Приветствие

Всем привет! В этот радостный и, достаточно, теплый пятничный денек приключилась у меня (процитирую в более приятном варианте) «рука-лицо». Честно говоря, приключается сие действие достаточно часто, но, по обыкновению, вызывается оно от ощущения:

Боже, какой же я тупой.

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

Всем привет!

Сегодня я хочу поделиться с вами решением задачи, с которой мы столкнулись при разработке социальной игры. Игровой клиент был написан на flash, а для back-end был выбран php. Игра относится к тайм-менеджмент играм.
Схема работы была выбрана следующая:

  1. игрок совершает действие на клиенте
  2. клиент проверяет возможность совершения действия
  3. отсылает команду на сервер
  4. сервер проверяет возможность совершения действия, выполняет команду, производя изменения в базе
  5. клиент уведомляется о том, что все ок или информируется об ошибке

Все работало отлично, пока не происходило резкое возрастание количества игроков.
Сначала начались тормоза со стороны php. Основная проблема данной реализации заключалась в том, что на каждое действие игрока дергается сервер, который производит довольно много вычислений по обсчету объектов на карте перед выполнением команды. Эта проблема была решена путем добавления дополнительных серверов с обработчиками php.
Потом мы уперлись в производительность mysql. Было слишком много запросов. Так как шардинг не был заложен в систему, то выкручивались как могли. Что-то перенесли в mongodb, где-то улучшили работу с кэшем.

Кстати, mongodb оказался не таким простым хранилищем, как может показаться на первый взгляд. Учитывая то, что у нас было включено шардирование и стояли правильные индексы, мы все равно словили там тормоза, с которыми не смогли разобраться на тот момент. Периодически просто высыпалась пачка запросов в log, которые вдруг затупили. Хотя через секунду те же запросы работали нормально при том же количестве запросов. Но это тема отдельного поста.

Собственно для нового аналогичного проекта было принято решение использовать другую схему взаимодействия клиента и сервера.
Именно об это я и хочу рассказать.

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

в 9:47, , рубрики: php, метки:

Привет всем! Работаю я в одной компании по написанию различных web систем, к нам довольно часто приходят на собеседование, и оказалось, что довольно трудно найти человека которые знает что такое паттерны, а еще сложнее того, кто умеет ими пользоваться. А ведь паттерны, это ничто иное как решение тривиальных задач. По идеи это то, что начинающий программист должен сразу изучить и понять. В интернете довольно много статей на эту тему с примерами, но не все понятны и прозрачны. Я хотел бы рассказать о них по своему. В каждом посте я буду рассказывать об одном паттерне. Для кого эта статья, для тех кто знает что такое ООП (наследование, полиморфизм, инкапсуляция и т.д), также знает какие виды паттернов бывают. Я буду рассматривать их в произвольном порядке. Сегодня хотелось бы поговорить о Strategy Pattern.
Читать полностью »

Четвертого апреля на stackoverflow появился вопрос, касающийся работы операторов сравнения в PHP. Почти сразу же на него поступил развернутый ответ. Наверняка для многих это является интересной темой.

Вопрос

PHP славится своим приведением типов. Я потратил много времени в поисках основ логики сравнения в нем.

Например: если $a > $b является истиной и $b > $c является истиной, значит ли это, что $a > $c также является истиной?

Руководствуясь простейшей логикой я могу предположить что это выражение также верно, однако я не очень доверяю PHP в этом в вопросе. Может кто-нибудь привести мне пример, в котором данное утверждение будет ложным?
Читать полностью »

Пролог

Написать эту статью помогли мои эксперименты с Объектно-ориентированной парадигмой.
Собственно, php-гуру эта статья вряд ли покажется интересной, а вот только что знакомящимся с языком, я надеюсь, поможет обойти подводные камни. Статья не претендует на мануал по ООП, а лишь разъясняет некоторые моменты.
Читать полностью »

Дайджест интересных новостей и материалов из мира PHP за последние две недели №14 (26.03.2013 — 08.04.2013)

Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать полностью »

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

Самопальная ORM для Битрикс
Самопальная ORM для Битрикс
Читать полностью »

Проблемы «долгих» скриптов PHP Иногда возникает необходимость писать скрипты, работа которых занимает продолжительное время. Например, скрипты создания/развертывания бэкапов, установки демо-версии какого-то приложения, агрегирования больших объемов данных, импорта/экспорта данных и т.п. Для того, чтобы такие скрипты не прекращали свою работу в неожиданный момент, нужно знать и помнить о некоторых вещах.
Читать полностью »

Подходя к вопросу статического роутинга мы сталкиваемся с дилемой скорость или интуитивность.
Объектом стал сам роутер, а средвом маршруты.
Возможные варианты хранения:

YAML

+ Интуитивый
— Требуется кеширования (для повышения производительности)
— Требуется библиотека для парсинга (минус, поскольку в случаях лицензирования могут возникнуть трудности)

ini

+ Быстрый парсинг php
+ Отсутствие потребности в библиотеках
— Желательно все-же кешировать
— Далеко не интуитивный

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


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