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

Symfony *

Свободный фреймворк, написанный на PHP5

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

Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)

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

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

Все упало из-за ошибки в процессе деплоя, которая связана с тонкостью PostgreSQL. К сожалению, на этом моменте у нас прокололась не одна команда. И чтобы такое больше не произошло ни у нас, ни в другой компании — велкам под кат.

Читать далее
Всего голосов 146: ↑143 и ↓3 +140
Комментарии 165

Новости

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

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

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

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

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

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

Как мы планировали повысить версию PHP за месяц, а потратили на это год

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

Как и множество больших сервисов, Яндекс Еда основана на микросервисной архитектуре. В общей сложности у нас чуть больше 200 микросервисов. Но есть один сервис, который совсем не микро – легаси-монолит.

Он написан на PHP 7.2 разработчиками разного уровня и в разное время. Мы подумали, что так больше нельзя, и решили навести порядок. В ходе разбирательств выяснилось, что версия языка, на котором всё написано, устарела и уже не поддерживается, что ведёт к рискам безопасности. Делать нечего — мы приняли решение обновиться до 8-й версии.

В этой статье я расскажу, чего стоило нам проапгрейдить монолит, сколько тестов мы сломали и как в этом проекте поучаствовали почти все PHP-разработчики Яндекс Еды. Это интересный и уникальный опыт, которым я хотел бы с вами поделиться. В конце дам несколько советов тем, кто тоже захочет ввязаться в подобную авантюру.

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

Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

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

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

Статья написана на основе доклада с PHP Russia 2022.

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

Истории

PHP Дайджест № 222 (7 – 21 февраля 2022)

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


Подборка свежих новостей, инструментов, видео и материалов из мира PHP.

Приятного чтения!
Читать дальше →
Всего голосов 68: ↑66 и ↓2 +64
Комментарии 12

PHP Дайджест № 220 (10 – 24 января 2022)

Время на прочтение 3 мин
Количество просмотров 12K
Картинка Vincent Pontier.

Подборка свежих новостей, инструментов и материалов из мира PHP.

Приятного чтения!
Читать дальше →
Всего голосов 52: ↑52 и ↓0 +52
Комментарии 10

PHP Дайджест № 219 (1 – 10 января 2022)

Время на прочтение 3 мин
Количество просмотров 13K
Фото David Stockton.

Подборка свежих новостей, инструментов и материалов из мира PHP.

Приятного чтения!
Читать дальше →
Всего голосов 68: ↑68 и ↓0 +68
Комментарии 6

PHP Дайджест № 216 (15 – 30 ноября 2021)

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


Подборка свежих новостей и материалов из мира PHP.
В выпуске: вышел PHP 8.1, создана организация PHP Foundation с целью развития и поддержки PHP, критическая уязвимость в doctrine/dbal, в PHP 8.2 будут объявлены устаревшими динамические свойства, вышли Symfony 6 и Symfony 5.4.
Также в выпуске полезные статьи, видео и другие новости сообщества.

Приятного чтения!
Читать дальше →
Всего голосов 54: ↑54 и ↓0 +54
Комментарии 12

PHP Дайджест № 215 (1 – 15 ноября 2021)

Время на прочтение 4 мин
Количество просмотров 11K
Картинка: Gabriel Nunes.

Подборка свежих новостей и материалов из мира PHP.
В выпуске: последний релиз кандидат PHP 8.1 перед финальным релизом, бенчмарки PHP 8.1; в PHP 8.2 планируется задепрекейтить динамические свойства — добро или зло?; про перенос багов с bugs.php.net на GitHub; немного обновлен PSR-16.
Также в выпуске полезные статьи, видео и другие новости сообщества.

Приятного чтения!
Читать дальше →
Всего голосов 50: ↑50 и ↓0 +50
Комментарии 11

PHP Дайджест № 213 (27 сентября – 11 октября 2021)

Время на прочтение 4 мин
Количество просмотров 11K
Фото: Noriko YAMAMOTO.

Подборка свежих новостей и материалов из мира PHP.

Для PHP 8.2 предложили добавить тип null; опубликована уязвимость в PHP с disable_functions, которая на самом деле не уязвимость; новый сайт от сообщества — phpopendocs.com; PHP 8.1 RC 3, Xdebug 3.1 и другие релизы.

Также в выпуске порция инструментов, полезные статьи, видео.

Приятного чтения!
Читать дальше →
Всего голосов 55: ↑55 и ↓0 +55
Комментарии 12

PHP Дайджест № 212 (13 – 27 сентября 2021)

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

Подборка свежих новостей и материалов из мира PHP.

Вышел PHP 8.1 RC2 и уже доступен первый пакет с использованием перечислений, будет сделан форк Magento, новый тип стандартов PER в дополнение к PSR, стартовала PhpStorm 2021.3 EAP, Symfony 6 будет полностью типизирован — как обновляться?

Для PHP 8.2 предложены новые оптимизированные структуры данных.

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

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

PHP Дайджест № 209 (1 – 16 августа 2021)

Время на прочтение 4 мин
Количество просмотров 11K
Фото: Florian Engelhardt.

Подборка свежих новостей и материалов из мира PHP. В выпуске: вторая бета PHP 8.1 и много материалов об этой версии, два свежих RFC для PHP 8.2, ReactPHP и Amphp объединяют усилия над базой для асинхронного PHP. А также другие новости и релизы, порция полезных инструментов, статьи и видео.

Приятного чтения!
Всего голосов 54: ↑54 и ↓0 +54
Комментарии 5

Зачем нужен static при объявлении анонимных функций?

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

Буквально на днях пришел вопрос от одного из подписчиков касательно одного из постов моего telegram канала. Его смутил вот такой кусок кода:

usort($firstArray, static function($first, $second) { return $first <=> $second;
});

Вопрос звучал так:

"Зачем делать callback’и в функции сортировки (usort), статическими?"

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

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

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн

PHP Дайджест № 204 (17 – 31 мая 2021)

Время на прочтение 4 мин
Количество просмотров 10K
Фото: Christian Münch.

В эти две недели core команда PHP активно обсуждала предложение по Partial function Application и в качестве альтернативы Никита Попов предложил более простой синтаксис для получения ссылки на любые функции. Также в уже принятые в PHP 8.1 енумы предлагается добавить статические свойства.

Symfony 6 будет требовать PHP 8.0, а вышедшая Doctrine 2.9 поддерживает указание метаданных в атрибутах вместо PHPDoc.

Еще в выпуске классная статья про регекспы и инструкция по использованию Deployer, а также другие полезные статьи, пачка инструментов, немного видео и подкастов.

Приятного чтения!
Читать дальше →
Всего голосов 51: ↑51 и ↓0 +51
Комментарии 23

3 года программирования вслепую. Часть 2

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

Всем доброго времени суток! Продолжаю свой рассказ о том, как "Войти в IT" без подгляда. Прошлая часть была посвящена, в основном, обучению. В этой больше расскажу о работе.

Читать дальше →
Всего голосов 96: ↑95 и ↓1 +94
Комментарии 33

PHP Дайджест № 198 (25 января – 8 февраля 2021)

Время на прочтение 6 мин
Количество просмотров 11K
Фото: Иван Ганцев.

Обновление стандартов PSR-6 и PSR-13, кеширование наследования в опкеш, аксессоры свойств и другие новости из PHP Internals, диалект Lisp компилируемый в PHP, а также инструменты, видео, подкасты и PHP Дайджест Live.

Приятного чтения!


Всего голосов 59: ↑59 и ↓0 +59
Комментарии 17

PHP Дайджест № 196 (1 – 11 января 2021)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: релиз PHP 8.0.1, MySQL движок на PHP от Vimeo и другие релизы, обновленный Enum и свежие предложения для PHP 8.1, «уязвимость» в Laminas, инструменты, статьи, видео, PHP Дайджест Live в 20:00 МСК.

Приятного чтения!


Всего голосов 52: ↑52 и ↓0 +52
Комментарии 18

PHP-Дайджест № 191 (19 октября – 2 ноября 2020)

Время на прочтение 5 мин
Количество просмотров 13K
Фото: Валерий Горбачев (PHP Krasnodar)

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8.0 RC 3 и видеообзоры новых возможностей, Composer 2, завершение разработки Faker (теперь в новой организации), два новых RFC для PHP 8.1, порция полезных инструментов, статьи, видео с прошедших митапов.

Приятного чтения!


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

PHP-Дайджест № 190 (5 – 19 октября 2020)

Время на прочтение 4 мин
Количество просмотров 12K
Фото: Илья Шихалеев.

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8.0 RC 2, Xdebug 3 beta, PhpStorm EAP с поддержкой PHPStan и Psalm, порция полезных инструментов, статьи, видео, митапы.

Приятного чтения!


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

PHP-Дайджест № 188 (7 – 21 сентября 2020)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Beta 4, инициатива по консолидации PHP-сообщества, концепт PHP для GraalVM, предложение по дженерикам в Internals, полезные инструменты, видео, подкасты, статьи.

Приятного чтения!

Всего голосов 55: ↑54 и ↓1 +53
Комментарии 15

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

Работа

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