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

Пых

Логотип телеграм канала @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


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

2021-06-08 18:37:42 API Payload Naming Convention

Всё очень просто: чем меньше трансформаций, тем лучше.

Например, вы проектируете API для сервиса на PHP. Ваши потенциальные клиенты — фронт на TypeScript, приложение для Android на Kotlin и приложение для iPhone на Swift. Беглым гуглением выясняем, что все четверо для свойств объектов используют camelCase. Стоит ли выбирать snake_case? Нет.

Только в случае легаси API имеет смысл дальше строгать эндпойнты в том же стиле, чтобы избежать винегрета.
3.0K viewsВалентин Удальцов, edited  15:37
Открыть/Комментировать
2021-06-04 14:58:55 Continious Integration

CI — must have для проекта любого размера. CI повышает качество кодовой базы, дисциплинирует команду и сокращает количество и продолжительность ревью.

Идеи проверок на базе нашего пайплайна в Happy Inc.:
• кодстайл (PHP CS Fixer, PHP_CodeSniffer),
• статический анализ (Psalm, PHPStan, PHPMD),
• валидность composer.json/lock (composer validate),
• наличие лишних пакетов (composer-unused),
• отсутствие пакетов в списке явных зависимостей (ComposerRequireChecker),
• уязвимости в пакетах (Roave Security Advisories, Local PHP Security Checker),
• синтаксис Yaml-файлов (Symfony Yaml),
• синтаксис Twig-шаблонов в проектах на Symfony (bin/console lint:twig),
• соответствие типов инъекций контейнера Symfony (bin/console lint:container),
• депрекации сервисов и конфигов Symfony (bin/console debug:container --deprecations),
• маппинг Doctrine и соответствие ему схемы БД (bin/console doctrine:schema:validate),
• конфигурация Doctrine для production (bin/console doctrine:ensure-production-settings --env=prod),
• связность/зацепление и направление зависимостей (Deptrac, dePHPend),
• ну и конечно же, тесты!

Также обратите внимание на репозиторий Static analysis tools for PHP и доклад 25+ инструментов для аудита кода.
2.7K viewsВалентин Удальцов, edited  11:58
Открыть/Комментировать
2021-04-24 10:02:19 Сегодня я выступаю в Нижнем на митапе про организацию кода!

В 11:10 Денис Юрьев (Skysmart от Skyeng) расскажет, как переделать Symfony-проект в целое направление.

В 12:05 я расскажу, как структурировать код, чтобы не получить «большой ком грязи». Обсудим разные подходы к структурированию, принципы проектирования пакетов и инструменты для контроля.

Если вы в Нижнем, то приходите в Лекторий Правда, если нет — подключайтесь к трансляции на канале PHP Point!



1.9K viewsВалентин Удальцов, 07:02
Открыть/Комментировать
2021-04-09 17:19:13 22 апреля на первой Dats.Conf я расскажу, как структурировать код, чтобы не получить «большой ком грязи»

А пока приглашаю вас посмотреть интервью, которое в преддверии митапа у меня взял уже знакомый вам Виктор Большаков.



1.7K viewsВалентин Удальцов, edited  14:19
Открыть/Комментировать
2021-04-06 14:30:14
Чего-то не хватало во вчерашнем сниппете, как-то не по-пыховски было, да?

Я имею в виду, конечно, статанализ. Очевидно, Psalm не знает, что в резалт сете имеются ключи 'question_id' и 'title', и потому генерирует ошибку. Наша задача максимально деликатно ему помочь и явно прописать тип как можно ближе к "источнику".

Ещё вчера стаб для PDOStatement был неполным, но сегодня Мэттью смерджил мой PR, и теперь можно дополнить сниппет соответствующим phpdoc. Напоминаю, что необязательно указывать имя переменной в @var, если аннотируется ближайшее выражение справа.

Вуаля: https://psalm.dev/r/8c9ab50ba2.
2.2K viewsВалентин Удальцов, edited  11:30
Открыть/Комментировать
2021-04-05 16:45:14
Полезный сниппет

• Nowdoc с именем SQL сразу включает соответствующий Language injection в PhpStorm. После этого строка подсвечивается и автокомплитится (тонко настраивается в SQL Resolution Scope).

• Nowdoc запроса оформлен с комфортным для чтения отступом слева. Отступ не попадёт в результирующую строку, а будет обрезан в соответствии с закрывающим тегом. Доступно с PHP 7.3.

• PDOStatement с рождения является Traversable, а с 8.0 имплементирует IteratorAggregate.

• Строки резалт сета разобраны на переменные прямо в цикле foreach. Доступно с PHP 7.1.
6.8K viewsВалентин Удальцов, edited  13:45
Открыть/Комментировать
2021-03-19 17:55:01 Уже через 5 минут к нам в гости на PHP Point заглянет Виктор Большаков, и мы из первых уст узнаем, кто такие CTO!

Присоединяйтесь к эфиру и задавате вопросы!



2.3K viewsВалентин Удальцов, 14:55
Открыть/Комментировать
2021-03-18 16:17:42 Антийода-условия и RTFM

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

Рассуждение следующее. Условия Йоды — это способ защитить ногу от пули при использовании присваивания в условиях. Решая надуманную проблему, мы в итоге получаем двукратное ухудшением читабельности кода: и спрятанное в if присваивание, и неестественное условие. Куда правильнее просто запретить присваивания в условиях, а сами условия оформлять как душа бизнес-логика подсказывает.

В итоге мы на проекте отказались от Звёздных войн, и я добавил строчку 'yoda_style' => false в .php_cs.dist, то есть полностью выключил правило.

И только сегодня, спустя 7 месяцев, @EtherLord выяснил, что это правило можно включить в режиме "антийоды": 'yoda_style' => ['equal' => false, 'identical' => false, 'less_and_greater' => false]. Тогда фиксер null !== $value будет преобразовывать в $value !== null и т.д.

RTFM, Валентин

https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/2.18/doc/rules/control_structure/yoda_style.rst
2.8K viewsВалентин Удальцов, edited  13:17
Открыть/Комментировать
2021-03-16 19:40:17 Интервью #1 с Виктором Большаковым

В эту пятницу в 18:00 по Москве я возьму интервью у Виктора Большакова, директора по разработке в dats.team.

Подписывайтесь на канал PHP Point и включайте напоминание , чтобы не пропустить стрим!



3.3K viewsВалентин Удальцов, 16:40
Открыть/Комментировать
2021-03-15 20:06:15 PHP Digest Лайв #200

Сегодня проводим его вместе с Ромой! Присоединяйтесь



698 viewsВалентин Удальцов, 17:06
Открыть/Комментировать