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

image

Joomla очень плохо переваривает базу данных даже с несколькими тысячами статей в таблице _content. При нескольких десятках тысяч запросы в базу стандартных модулей типа mod_articles_popular могут зависать на секунды.

Всё дело в ACL (Access Control List) — политике контроля доступа. Проверка законности доступа пользователя к материалам занимает свыше 98% времени выполнения запроса.Читать полностью »

Забьем еще один гвоздь в крышку гроба Роскомнадзора.

Напрямую получить доступ сообщениям своего канала для вывода их в веб страницу нельзя. Но можно написать bot, который будет поступающие к нему сообщения отправлять куда нужно, чтобы их обработать и вывести на сайт. А можно воспользоваться готовым.

Странно, что на Хабре еще не упоминался этот замечательный бот — Journalist (@JournalistBot). На сайте указано, что beta, но работает более чем стабильно.Читать полностью »

Вопрос, стоит ли хранить javascript и css ресурсы веб-страницы в LocalStorage браузера или позволить ему самому отрабатывать кэширование, не имеет однозначного ответа. Есть плюсы и минусы. С моей точки зрения, основной плюс — скорость загрузки — перевешивает все остальное. Это очень хорошо чувствуют пользователи EDGE и 3G.

Для поклонников стандартного кэша браузеров, гордо показывающих на слово «Кэшировано» в Средствах разработчика, советую открыть Fiddler и увидеть, что по каждому кэшированному ресурсу за 304 HTTP ответом всё равно идет запрос. Затем советую зайти на что-нибудь типа pingdom.com и увидеть, что непосредственно передача данных во всем времени исполнения запроса занимает проценты. То есть толку в абсолютном значении от такого кэширования — кот наплакал, особенно если файлы небольшие.Читать полностью »

Под занавес прошлогоднего DevConf Артем Дегтярь и Павел Степанец рассказали как они мигрировали ERP-систему написанную на «голом» PHP5.3, работающую на винде, в Symfony + PHP7, и построили на его основе облачный сервис в сфере b2b. Видео доступно по ссылке доклада. А я представлю текстовый, немного сжатый, вариант.

DevConf: из шаурмы в Symfony или миграция legacy - 1

Мы работали над большой системой, которая позволяла создавать заявки и менять статусы, плюс биллинг, учет ТМЦ и много всего. Сегодня мы расскажем как рефакторили эту систему, мигрировали ее в Symfony. Первоначально система была написана на чистом PHP, и имела много «особенностей». Например, этот пятиуровневый тернарник на слайде весьма оригинально работал с датой, пришедшей от юзера. Читать полностью »

Оптимизация бэкенда при переходе на api-based архитектуру - 1

Привет.

На недавнем митапе в офисе Tutu я рассказывал о том, как мы в рамках редизайна superjob.ru совершали переход от монолитного приложения к api-based архитектуре с красивыми single page applications на ReactJS на фронте и шустрым PHP-приложением на бэке. В этой статье я бы хотел подробнее рассказать о том, как мы оптимизировали наше бэкенд-приложение, чтобы оно действительно стало шустрым.

Заинтересовавшихся — прошу под кат.
Читать полностью »

Как известно DDoS атаки на сайт бывают разной интенсивности, имеет значение количество хостов участвующих в атаке, количество сетевых пакетов и объем передаваемых данных. В самых тяжелых случаях отбить атаку возможно только применяя специализированное оборудование и сервисы.

Если же объем атаки меньше пропускной способности сетевого оборудования и вычислительных мощностей сервера (пула серверов) обслуживающих сайт, то можно попробовать “заглушить” атаку не прибегая к сторонним сервисам, а именно включить программный фильтр трафика поступающего на сайт. Этот фильтр будет отсеивать трафик ботов участвующих в атаке, при этом пропуская легитимный трафик “живых” посетителей сайта.

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

image

5 апреля в офисе сервиса путешествий Туту.ру прошел первый PHP Meetup. В гости пришло более 120 backend-разработчиков. Мы записали все выступления и делимся ими с вами.
Читать полностью »

Анонс митапа ThinkPHP #16 в Харькове - 1

Ты — не ты, когда голоден! Мы же не дадим вам проголодаться, потому что в меню ThinkPHP #16 будут огро-оо-омные порции полезной информации, новых знакомств, вопросов и ответов, ну и компот. Да и среда — это же маленькая пятница :).
Читать полностью »

Железнодорожные перевозки, как грузовые, так и пассажирские — один из самых востребованных видов транспорта в нашей стране. То, что поезда ездят только по рельсам, с одной стороны упрощает и снижает вариативность модели, с другой — добавляет массу зависимостей. Если на путях случается какая-нибудь непредвиденная ситуация — это может иметь значительные последствия для всей сети. Отклонение от графика одного состава или авария на рельсах могут повлиять на движение целого направления. Это сказывается как на компаниях, которые не получат вовремя груз, так и на пассажирах, которые могут опоздать на работу, пропустить нужную электричку, сесть не в тот поезд, или проторчать на платформе лишние полчаса (а то и больше).

Меня зовут Александр Подлевских, я ведущий разработчик в компании Туту.ру, тимлид в команде «Электричек», и в этой статье я расскажу, как мы прогнозируем отклонения электричек от графика — опоздания и опережения. А ещё о том, что такое ГВЦ РЖД, как технически устроена система пригородного ж/д-транспорта, и как мы рассказываем об опозданиях пассажирам.

Как научиться предсказывать опоздания электричек - 1
Читать полностью »

Проблема.

Предположим такую ситуацию: Вам необходимо создать сервис, который будет основой для ряда последующих. Наследники этого сервиса, например, могут создаваться копированием папки родителя и установкой зависимостей внутри себя. И жить они все должны в моно-репозитории.

Какие пути решения сразу приходят на ум? Самое простое, наверное, создать подобный alias (если вы в *nix):

alias create-project="cp -r project/ new-project/ && cd new-project/ && composer install"

Конечно есть желание сделать все более элегантно и поэтому следующим по счету, но первым по разумности, в голову приходит решение использовать возможности Composer.

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


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