PHP best practices😏

 Публичный пост

здравствуйте 🙂

читал пост про python и подумал о php. почему бы и нет?

давайте возьмём версии 7+ и от уйдём от излишнего ругательства php 😉🙃

как обычно, можно так же поделиться блогами, книжками, видео, github и т. д.

надеюсь, обойдёмся без холиваров🙏🏻

Связанные посты
15 комментариев 👇
  1. https://phptherightway.com/
  2. https://phprussia.ru/ - моя конфа. Тут не только про настоящее, но и про будущее. Темы 2019-го только-только начинают становиться мейнстримом. Видео что с 2019, что с онлайна 2020 уже на YouTube в свободном доступе.
  3. - чуть про код, который не ломается. Применимо ко всему, не только к PHP.
  4. Про Yii 3 пока рано, но некоторые штуки можно и почитать тоже:
  Развернуть 1 комментарий

люто плюсую за phptherightway
еще можно добавить https://github.com/jupeter/clean-code-php

  Развернуть 1 комментарий
Egor Zotov Ищу смысл жизни 9 апреля 2021

Phpstan + psalm + linter + codesniffer + infection.
Все это в купе с тестами сильно поднимает качество кода, особенно если выкрутить на максимум infection.

  Развернуть 1 комментарий

помоему бест практис с пхп в 2021 - это поменять стек... :)

  Развернуть 1 комментарий

@6XfNNxkthKu7me8L, Так говорят уже лет 10 наверно :)

  Развернуть 1 комментарий

@tmko16, haters gonna hate

  Развернуть 1 комментарий

Самое важное уже в принципе описали, добавлю просто парочку полезных ссылок.

Чтобы не быть в бункере:

  • блог баду на хабре
  • php-дайджесты (искать на хабре, в телеге)
  • https://www.youtube.com/c/PHPPoint/videos, записи докладов fwdays и проч. ивентов

Исторически так сложилось, что в PHP довольно низкий порог вхождения, поэтому много низкоквалифицированных разработчиков в индустрии, которые слепо следуют за тем, что им навязал фреймворк или что нагуглили на стековерфлоу. Культура написания красивого кода, правильной архитектуры итд только в последние годы начала развиваться. Очень советую не ограничиваться рамками фреймворка и больше абстрагироваться, смотреть на все как инструмент для решения определенной проблемы, разделять где бизнес-логика, а где техническая реализация/инфраструктура. Учитывая что вопрос задан и много классной инфы уже накидали, базовые задатки уже есть. :)

  Развернуть 1 комментарий

Ну в самых первых - PSR, а точнее PSR-12 как основа code style, ну и логгер, мидлваря, контейнер.

Codesniffer чтобы проверять code style, куча готовых проверок чтобы закрутить пожёстче есть тут slevomat/coding-standard.

Какой-то статический анализатор с поддержкой дженериков и расширенного описания массивов: PHPStan, Psalm.

Тесты писать: Codeception, PHPUnit, Infection. И, соответственно, писать тестируемый код, использовать Inversion of Control.

Использовать актуальную версию PHP (это 8 сейчас).

Отделять бизнес-логику от инфраструктуры.

Писать код в PHPStorm.

Инфраструктура - PHP-FPM + Nginx базово, для тех кому побыстрее можно и Swoole, Roadrunner, etc.

Настроить сам PHP (настроить opcache, выключить xdebug на проде, включить preload, включить jit).

  Развернуть 1 комментарий

@Offout,

<s> Инфраструктура - PHP-FPM + Nginx базово, для тех кому побыстрее можно и Swoole, Roadrunner, etc.

Настроить сам PHP (настроить opcache, выключить xdebug на проде, включить preload, включить jit).

</s>

Docker для локальной разработки (даже если прод не на докерах)+ Ansible/Puppet/Salt/Terraform etc для автоматизации конфига серверов - тогда ничего включить/выключить не забудешь

Jit - вопрос спорный, как я поняла - это не серебрянная пуля и надо проверять - подходит или нет

  Развернуть 1 комментарий

Best practices это не совсем про язык. Можно почитать Фаулера, Роберта Мартина (дядя Боб), Эванса (Domain-driven design). PSR это, конечно, хорошо, но оно отлично автоматизируется, а вот гексагональная архитектура - это то, что неплохо было бы раскурить. Возможно, я слишком испорчен "правильным" java подобным энтерпрайзом, но я бы советовал обратить внимание на symfony и все, что вокруг него. На мой взгляд все правильные и взрослые вещи пришли в пыху из java-мира. Еще раз: фреймворк, который помогает, а не мешает строить большие системы (symfony), Inversion of control, тесты, гексагональная архитектура, DDD. Остальное автоматизируется. Стоит еще так же понимать, для чего нужен php, и для чего его использовать не стоит. Собственно, как бы это странно ни звучало, но стоит обратить внимание еще и на го, потому что тенденция совершенно очевидна, что это второй необходимый инструмент.

  Развернуть 1 комментарий

https://deworker.pro

https://elisdn.ru
https://laracasts.com (Не стоит бояться, что на английском, воспринимается хорошо даже с не высоким уровнем. И много годноты не только по laravel) - ну если совсем тяжко - то качать английский

  Развернуть 1 комментарий
Georgii Khomaldishvili PHP-разработчик автор 9 апреля 2021
  Развернуть 1 комментарий

Дико рекомендую почитать Matthias Noback.

Очень хорошо на примерах PHP рассказывает про правильные подходы и как не стрелять себе в ноги

https://matthiasnoback.nl/books/

  Развернуть 1 комментарий

В принципе в предыдущих комментах уже много годноты накидали.

Добавлю сюда https://3v4l.org/ - онлайн REPL c over 300 версиями PHP.

Еще мне показался интересным Laravel Octane (https://github.com/laravel/octane) как попытка прикрутить Swoole/RoadRunner к популярному фреймворку и тем самым увеличить производительность.

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб