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

PHP *

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

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

Как ломать сайты на «1С-Битрикс»

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

Привет! Вероятно, тебе когда-нибудь попадались веб-приложения, построенные на «1С-Битрикс: Управление сайтом», и ты задавался вопросом: как это ломать? Вроде бы прошелся по всем известной методичке, но все равно пусто. На прошлой работе я намучился ломать такие сайты, и вследствие выживания в дикой природе «Битрикса» у меня появились свои векторы атак. Я с тобой ими поделюсь — let’s go!

Читать далее
Рейтинг 0
Комментарии 0

Новости

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Истории

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Версионная миграция структуры базы данных через PHP атрибуты

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

Всегда немного раздражало что при написании миграций в Laravel сначала необходимо прописывать поля в классе модели, а затем эти же поля в миграциях. И когда мне понадобилось написать версионирование структуры БД, то решил совместить класс модели и миграции. И сделал я это через атрибуты PHP. Также вместе с миграциями я получил состояние базы данных с мета-информацией которую можно использовать при работе с ней.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обзор LiveWire 3 и Volt

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

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

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

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

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

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

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

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

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

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

Выбираем подходящий PHP-фреймворк для проекта

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

Привет, Хабр. Меня зовут Денис, я backend-разработчик в Пиробайте. Поговорим о самых распространенных PHP-фреймворках и о том, для каких проектов целесообразнее выбрать тот или иной вариант. 

Статистику распространения бэкенд-фреймворков на PHP я брал с портала JetBrains, она 2021-2022 года, но ситуация к концу 2023 практически не изменилась — вот статистика лучших PHP-фреймворков от Cloudways.

Самыми популярными были и остаются Laravel и Symfony. После них идет WordPress, но в статье его рассматривать не будем (потому что CMS).

Следующий за ним CodeIgniter пропущу намеренно. Я удивился, но разработчики в интернете до сих пор спорят о том, что лучше — Laravel или CodeIgniter. По сути, это full-stack MVC фреймворк, коих много. Он делает то же, что Laravel или Symfony, только отличается архитектурой и рассчитан на маленькие проекты. Он стар (существует с 2006 года) и тот же Laravel был создан как его альтератива.

Вместо этих 2-х ребят я предлагаю рассмотреть следующие — Laminas (Mezzio) и Slim. Эти фреймворки/микрофреймворки, на мой взгляд, более технологичны на фоне предыдущих и хорошо подходят для решения нетипичных задач.

Читать далее
Всего голосов 23: ↑16 и ↓7 +9
Комментарии 39

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

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

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

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

О выборе CMS для сайтовых дел, кратенький обзор Processwire

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

На днях было появилась нужда - создать сайт новостного типа, и недолго думая приступил к поиску того самого чудо движка (CMS, пардон - за терминологию из 90х) который бы осилил задачу с относительной лёгкостью, но и - как понимаете - был бы достаточно поддерживаем (важно!), стабилен и гибок для других возможных задач (заказов) из будущего.

К авангардной тройке (WP, Joomla, Drupal) не приглянулся по N-ным причинам, но, щас не об этом.

В общем, перебрал всевозможные критерии (внушительный список хотелок :)) - гугл + ИИ в помощь смекалке и, перематывая к результату - остановился на чудо инструменте Processwire (далее PW).

Читать далее ->
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 9

Недокументированная возможность в Phpstorm: нативная консоль php -a с автодополнением из IDE

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

В прошлой статье я уже рассказывал о том, что использовать консоль Xdebug как аналог Python Console в Phpstorm. В комментариях меня спросили, чем не подходит для этого нативная консоль php, которую можно вызвать командой php -a (Php Interactive Shell). Я тогда ответил, что она не интегрирована с IDE, и у нее нет соответствующих фич, таких как автодополнение. Однако недавно выяснилось, что на самом деле ее можно "интегрировать" с Phpstorm одним хитрым способом...

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

Пьеса о неудачном запуске предзаказа

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

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

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

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

Работа

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