Как стать автором
Обновить
80.16

PHP *

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

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

Joomla-дайджест. 2-е полугодие 2023 года

Время на прочтение 33 мин
Количество просмотров 669

Все главные новости из мира Joomla с момента выхода предыдущего дайджеста 4 августа 2023 года в одной статье. Также в дайджест попадает январь 2024 года. Традиционно наш дайджест обозревает новости, расширения, шаблоны и статьи из мира Joomla. Прошлый выпуск вы можете прочитать здесь.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 5

Новости

Итоги ежегодного опроса PHP-сообщества: результаты за 2023

Время на прочтение 5 мин
Количество просмотров 6.7K

Привет! Как и в предыдущие три года, в декабре 2023 было запущено исследование русскоязычного PHP-комьюнити. По итогам получился срез данных: на каких версиях PHP сидят в командах, какой фреймворк выбирают для рабочих проектов, а какой для личных, как относятся к ИИ-инструментам для разработки, кого считают человеком года и многие другие аспекты. Опрос помогают составлять и распространять ребята, которые развивают городские и региональные PHP-сообщества, а также руководят каналами и подкастами про PHP.

Посмотрим, каким был 2023 для сообщества, в 1120 мнениях.

Результаты также можно найти на phpcommunity.ru. Вот итоги за 2022, 2021, 2020.

Читать далее
Всего голосов 34: ↑34 и ↓0 +34
Комментарии 6

Laravel трюки: автоматическое подключение каналов логирования

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

Всем привет! Меня зовут Иван Шишкин и я руковожу разработкой в агентстве Intensa.

В этой статье хотел бы поделиться методом автоматического подключения каналов логирования в Laravel через механизм сервис контейнеров(DI).

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 3

Logstash, Manticore, Nginx и Symfony: сбор, агрегация и быстрый поиск логов

Время на прочтение 25 мин
Количество просмотров 3.1K

Мысль о централизованном мониторинге логов хранилась в моей голове много лет, но реализовать ее я смог только совсем недавно. Рассказываю о настройке и подводных камнях связки Logstash + Manticore + Nginx + Symfony.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

Истории

Управление устройствами умного дома Яндекс своими скриптами

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

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

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 16

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

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

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

Начнём профайлинг
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 9

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

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

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

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

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

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

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

Читать далее
Всего голосов 56: ↑56 и ↓0 +56
Комментарии 14

Построитель SQL запросов на основе мета-информации миграций БД

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

В век когда ORM шагает по планете обычный построитель запросов выглядит откатом назад. Однако тут есть нюанс — Sql Query Builder использует пакет версионирования shasoft/db-schema и владеет всей информацией о структуре базы данных. Это позволяет реализовать все стандартные для таких решений функции, прозрачно конвертировать типы данных SQL<=>PHP + реализовать нестандартные возможности в виде выборки данных с использованием КЭШирования. (Просьба не искать логику в SQL запросах в статье и примерах, её там нет. Искусственные примеры предназначены для демонстрации возможностей пакета и никакой другой смысловой нагрузки не несут).


Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 9

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

Время на прочтение 5 мин
Количество просмотров 5.1K

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

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 1

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

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

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

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 1

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

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

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

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 2

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

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

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

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

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 7

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

Открытый урок «Behaviour Tree в Unity»
Дата 8 февраля
Время 19:00
Место
Онлайн

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

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

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

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

Читать далее
Всего голосов 23: ↑17 и ↓6 +11
Комментарии 27

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

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

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

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

Читать далее
Всего голосов 16: ↑13 и ↓3 +10
Комментарии 17

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

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 9

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

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

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

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 20

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

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

Выход 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. Однако в новой версии его нужно...

Трогать мидлвари
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 5

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

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

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

Поехали
Всего голосов 15: ↑11 и ↓4 +7
Комментарии 15

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

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

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

Давай
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 41

Вклад авторов

Работа

PHP программист
133 вакансии