Получи случайную криптовалюту за регистрацию!

Пых

Логотип телеграм канала @phpyh — Пых П
Логотип телеграм канала @phpyh — Пых
Адрес канала: @phpyh
Категории: Технологии
Язык: Русский
Количество подписчиков: 6.51K
Описание канала:

Блог @vudaltsov о разработке на PHP.
Чтобы поддержать канал, подпишись на Пых Boosted: https://boosty.to/phpyh.
Реклама и вакансии НЕ размещаются.

Рейтинги и Отзывы

4.00

2 отзыва

Оценить канал phpyh и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

2

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения 4

2021-10-07 12:01:00
?-> вместо NullObject

Иногда вместо NullObject удобно использовать null-safe оператор ?->.
2.8K viewsВалентин Удальцов, 09:01
Открыть/Комментировать
2021-09-20 15:15:58 Тесты должны быть независимыми

Юнит-тесты должны быть независимыми по определению. Всё необходимое инициализируется в блоке Arrange и утилизируется из памяти после Assert. Использовать в юнитах setUp / tearDown я не рекомендую.

Тесты, работающие с общим состоянием, должны после выполнения возвращать его в исходную точку. Для этого можно использовать in-memory хранилища или откатывать транзакции.

Чтобы защитить себя от неявных зависимостей между тестами, следует запускать их в случайном порядке. Для этого прописываем в phpunit.xml или выполняем phpunit с флагом --order-by=random.
2.5K viewsВалентин Удальцов, 12:15
Открыть/Комментировать
2021-09-17 10:05:06 Кодишь 2.0

Мама, я в телевизоре!

Большое спасибо организаторам конференции Кодишь 2.0 за приглашение и отличные выходные в Брянске!





P.S. Thesis ну прям очень скоро будет, в поезде многое доделал.
2.3K viewsВалентин Удальцов, edited  07:05
Открыть/Комментировать
2021-08-30 15:46:44
2.3K viewsВалентин Удальцов, 12:46
Открыть/Комментировать
2021-08-12 14:36:11
#[Route(name: self::class)]

Лайфхак для симфонистов. Если вы размещаете каждый экшн в отдельном invokable классе, то его имя можно использовать в качестве имени роута.

При таком подходе не нужно соблюдать никакие конвенции именования и хардкодить строки.

Работает и с атрибутами, и с аннотациями, однако в аннотациях нельзя использовать self, только само имя класса. На скрине оба примера.
3.2K viewsВалентин Удальцов, edited  11:36
Открыть/Комментировать
2021-06-30 19:24:39 PHP Russia 2021

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

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

Огромное спасибо @samdark, @Halfnomad и @pronskiy за глубокое понимание и поддержку! С таким программным комитетом можно успешно выступить прямо в аду.

А ещё я был рад видеть вас, подписчиков, в зале! Легко и приятно на сцене, когда с половиной аудитории ты давно в диалоге.

Я счастлив как слон, до встречи на следующей конференции!
2.6K viewsВалентин Удальцов, edited  16:24
Открыть/Комментировать
2021-06-11 10:20:07 PHP Russia 2021

Два года назад я дебютировал на PHP Russia с митапом Как контрибьютить в Symfony и зачем это делать.

В этом году у меня полноценный доклад Thesis: как забыть про ORM и перейти на нативные SQL-запросы с очень интересной повесткой! Всех жду, в первую очередь оффлайн в Москве.

По промокоду PHPforFriends можно сэкономить 7% на билетах.

https://phprussia.ru/moscow/2021/abstracts/7654
2.1K viewsВалентин Удальцов, edited  07:20
Открыть/Комментировать
2021-06-10 09:43:17
Продвинутая интерполяция

Иногда в длинную строку нужно подставить константы / статические свойства или результаты функций / статических методов.

Первой на ум приходит интерполяция, но в PHP она невозможна без переменной, даже при использовании фигурных скобок. То есть вот так нельзя: echo "Число Эйлера: {M_E}". Можно для всех выражений объявить переменные и уже их интерполировать, но получится слишком громоздко. Можно оформить через sprintf, но в многочисленных безымянных %s и %20$d будет легко запутаться.

Костыль Выход есть! Присвоим переменной имя функции strval. Мы получили "интерполятор" callable(mixed): string, при помощи которого в литерал можно подставить любое приводимое к строке выражение:

$intrp = 'strval';
echo "Число Эйлера: {$intrp(M_E)}";

Если пойти чуть дальше и обернуть sprintf в класс с __invoke, зафиксировав первый аргумент (partial application!), получится мощный универсальный интерполятор.

https://3v4l.org/DogHB
2.6K viewsВалентин Удальцов, edited  06:43
Открыть/Комментировать
2021-06-09 16:44:57 PHP Дайджест Стрим #202-204

Сегодня вечером на канале PHP Point пробегусь по трём весенним PHP Дайджестам. Начало, как обычно, в 20:00, всех жду!



2.7K viewsВалентин Удальцов, edited  13:44
Открыть/Комментировать