Обновить
64K+

PHP *

Скриптовый язык общего назначения

73,66
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Профайлинг Laravel приложений с XDebug и PHPStorm

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели10K

Профайлинг приложений важный этап перед релизом ресурсоёмкой фичи. Везде трубят про удобную отладку PHP-приложений при помощи XDebug и PHPStorm, однако напрочь забывают про замеры времени операций, которые, порой, превышают те самые 3 секунды, которые пользователь будет ждать на странице. Если у Вас есть метод API, который долго работает, самое время его проверить профайлером XDebug, а PHPStorm поможет красиво визуализировать и изучить файл профиля.

Начнём профайлинг

Миграции шаблонов бизнес-процессов для Битрикс24. Вот что для этого нужно

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5.7K

Управление большим числом изменяемых шаблонов бизнес-процессов — непростая задача. А необходимость поддержки актуальных версий шаблонов на нескольких копиях проекта добавляет еще больше сложностей. Делюсь своим опытом решения проблемы миграций. 

Читать далее

По локоть в легаси: пошагово перезапускаем устаревший портал на PHP

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели15K

PHP — один из самых популярных языков веб-разработки уже около 20 лет, а самому языку скоро стукнет 30. За это время на нем написали огромное количество больших и маленьких проектов. Некоторые сайты, созданные в 90-х, 00-х и 10-х, хранят код еще с тех давних времен. И чем больше времени проходит с начала разработки, тем меньше на рынке специалистов, готовых разбираться в легаси и не самых современных технологиях.

В похожей ситуации оказался портал fishingsib.ru — один из крупнейших в рунете сайтов о рыбалке, который посещают больше 10 000 человек ежедневно. Он создавался в начале 2000-х как форум для рыбаков-любителей и пережил несколько довольно серьезных обновлений кодовой базы. Последнее из них — переезд на CakePHP 2 в 2012 году. На этом фреймворке и PHP 5 сайт жил до 2017 года.

Владелец fishingsib.ru планировал поддерживать и развивать сайт, внедрять новую функциональность, однако столкнулся с техническими проблемами. Любые доработки были очень долгими из-за неудачных архитектурных решений и сильной зависимости от устаревающего и не особенно популярного CakePHP 2. После каждого обновления появлялось множество багов. В то же время не удавалось найти новых разработчиков, потому что большинство специалистов не хотели работать в проекте с неактуальным стеком. Развитие проекта сильно замедлилось и стало понятно, что с технической частью нужно что-то делать.

Читать далее

PHP и Laravel дайджест новостей за декабрь 2023 года

Время на прочтение5 мин
Охват и читатели5.9K

Краткий обзор новостей из мира PHP и Laravel за декабрь 2023 г от CutCode. Последний дайджест за год

Читать далее

Как защититься от «бестелесных» веб-шеллов

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8.2K

В сегодняшней статье эксперты Сайбер ОК проведут вас за руку по лабиринту хакерских уловок и на пальцах объяснят, что такое "бестелесные" веб-шеллы и как защитить от них свои ресурсы.

Читать далее

Объединяем два крупнейших Ecom на разных стеках в одну общую CRM

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели2.1K

Привет! Меня зовут Данила Соловьёв, я руковожу направлением PHP — самым крупным подразделением в отделе разработки AGIMA. Поделюсь историей о том, как мы встроили новую CRM-систему в два абсолютно незнакомых нам IT-ландшафта и тем самым спасли сейлзов двух крупных интернет-магазинов от бесконечных табличек в почте. Подробно опишу, какие данные мы выгружали, как их дедуплицировали и какие сервисы использовали для их валидации. Поехали!

Читать далее

Headless eCommerce на Laravel: Погружение в модульную архитектуру

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели10K

Привет, Habr! Меня зовут Тальгат Хайруллов, я руководитель команды разработки в компании CS-Cart. В статье расскажу, как мы поверх Laravel реализовали фреймворк для быстрой и гибкой разработки API продукта с модульной архитектурой.

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

Читать далее

Junior PHP. Ответы на часто задаваемые вопросы на технических собеседованиях

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели30K

Привет пользователям Хабра!

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

Читать далее

Защита JPG-файлов от копирования с помощью Exif и IPTC-тегов

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7.4K

Всем привет! На связи Павел Стариков Fullstack-разработчик digital-агентства. Представьте, вы потратили целый день на создание хороших фотографий для статьи на сайте. Выставили свет, поставили «на уши» множество людей, долго работали в «фотошопе». Фотографии получились отличные, вот только спустя год Яндекс внезапно присылает фильтр «малополезный контент», при этом другие статьи, которые своровали нашу картинку – на первых местах по SEO-высокочастотным запросам. Обидно, не правда ли?

Для предотвращения подобных ситуаций поисковые системы обращают внимания на текстовые мета-теги, которые можно записать в каждую фотографию. Основной формат изображений – JPEG имеет сразу несколько механизмов. Как Exif-данные, содержащие сведения об авторе, камере, дате изменения, так и менее известный стандарт IPTC, который хранит данные в двоичном формате.

Читать далее

MemSess — очередной сервер для работы с сессиями

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели2.7K

В этой статье будет рассмотрен самописный сервер для работы с сессиями и пример работы с ним на PHP.

Читать далее

Использование Symfony / PHP (II)

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели8.9K

Привет! Я, Андрей, Symfony разработчик - мы делаем сайты. Каждый день мы тратим много ресурсов на администрирование и базовые настройки проектов. В этой статье я продолжаю делиться опытом, как можно адаптировать фреймворк Symfony под свои нужды. Сегодня я расскажу как мы работаем с базой данных и Doctrine. Поехали

Читать далее

Изучение мидлварей в Laravel 11

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели17K

Выход Laravel 11 намечен на первый квартал 2024-го года, что может произойти уже в следующем месяце.

Я начинаю новый проект, и поскольку дата выхода очень близка, решил взглянуть на то что изменится в новом крупном обновлении. Помню как пол года назад прочитал в Laravel News статью о том, что Http Kernel уходит в небытие, и не придал этому особого значения.

Когда я создал проект с помощью команды laravel new project --dev, я был очень удивлён тем, насколько уменьшился размер проекта. Было очень удивительно видеть пустую папку config (можно опубликовать файлы конфигурации при помощи команды php artisan config:publish)!

И, конечно же, там нет Http Kernel. Итак... как же добавить или изменить мидлвари? До Laravel 11 ядро Http Kernel, располагающееся по пути app/Http/Kernel.php,было местом хранения всей конфигурации для мидлварей. Также до Laravel 11 не было необходимости трогать руками файл bootstrap/app.php, если только Вы не использовали фреймворк Lumen. Однако в новой версии его нужно...

Трогать мидлвари

Использование Symfony / PHP

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели16K

Привет! Я, Андрей, Symfony разработчик - мы делаем сайты. Каждый день у нас уходит много ресурсов на администрирование и базовые настройки проектов. В этой статье поделюсь опытом, как можно адаптировать фреймворк Symfony для оптимизации таких затрат, какие настройки мы проводим для обеспечения быстрого функционирования, и как мы взаимодействуем с REST клиентами. Поехали.

Поехали

Ближайшие события

Разборка в Шторме

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели19K

PhpStorm — лучшая IDE. Но не все дефолтные настройки могут подходить. Особенно в новом UI. Что и почему можно поменять? Сейчас расскажу.

Давай

Многоуровневое логирование: Руководство по структурированному и последовательному ведению логов

Время на прочтение4 мин
Охват и читатели8.8K

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

Читать далее

Как и почему в 2024 году мы разрабатываем сайты для крупных клиентов на WordPress?

Время на прочтение10 мин
Охват и читатели28K

WordPress — это изначально блоговый движок, который появился в 2003 году во времена расцвета LiveJournal и MySpace. Благодаря большому количеству внутренних шаблонов, он стал идеальным инструментом индивидуального паблишмента, позволял быстро собрать свой блог и начать писать. 

С тех пор прошло уже 20 лет, WP сильно изменился и стал мощным инструментом для разработки, в том числе коммерческой.

Читать далее

Как мы внедряли Sentry. Часть 2 — внедрение в разработку

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели13K

В прошлый раз мы рассматривали внедрение Sentry со стороны эксплуатации: устанавливали на сервер self-hosted, делали его высокодоступным при помощи сети доставки td-agent, настраивали мониторинг.

Теперь рассмотрим процесс внедрения Sentry со стороны команды разработки.

Читать далее

Обзор LiveWire 3 и Volt

Время на прочтение13 мин
Охват и читатели12K

Приветствую всех поклонников Laravel!

Эта статья-обзор новой, уже третьей версии Livewire. Решил сделать эту статью после выпуска на youtube-канале видео обзора Livewire, который понравился аудитории. Ну и заодно также взглянем на новинку - Volt. Думаю, многие из вас ждали этот обзор и особенно обзор Volt.

Читать далее

ч.15 Игровой авторитарный сервер на процессах и его архитектура в картинках — Создание сервера для онлайн ММО игр на PHP

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели4.2K

В предыдущей статье я рассказывал об архитектуре приложения , где ее отдельные компоненты могли бы работать параллельно не блокируя выполнения друг друга.

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

Бонус - архитектура игрового сервера в картинках.

Читать далее

Создаём графический информер на PHP

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели2.8K

Глядя на счётчик посещений mail.ru, или на какой-либо другой информер, вы наверняка задумывались о том, как бы сделать такой самому. Эта статья поможет вам осуществить ваши планы.

Читать далее