Dev2
Ops
Dmytro Dzubenko
About me
● 3 years in Interkassa
● 3 years at PayCore.io
● 10 years in production
● https://github.com/dzubchik
Project lifecycle
Local development
● Docker
● Docker-compose
● GNU make
● README.md
IDE
● Correct php version
● Hotkeys
● Necessary plugins
● IDE templates
● Refactoring
Xdebug
● Enable and use it
● Condition enable
● Breakpoint dependency
Hint: for debug from cli export PHP_IDE_CONFIG="serverName=server_name"
Code style
● PSR-1
● PSR-2
● PSR-12 in review
● Framework style guide
○ Symfony
○ Laravel
○ Zend
● Php-cs-fixer
● PHP_CodeSniffer
● EasyCodingStandard
Code analyzer
● Phpstan/phan/psalm
● Php Inspections (EA Extended)
Testing
● Cover at least critical parts
● Write functional tests
● Write tests after something is broken
API standard
● HAL
● JSON-LD
● Collection+JSON
● SIREN
● JSON API
● Hydra
● HATEOAS
JSON-API vs HAL
Api specification
● OpenAPI
● RAML
● ApiBlueprint
Database migration
● Make database dump accessible for CI
● Run migrations on CI
● Evolutionary Database Design
Error handling
● Sentry
● NewRelic
● Rollbar
Links
● https://habr.com/ru/company/southbridge/blog/323554/
● https://habr.com/ru/company/badoo/blog/426605/
● https://fwdays.com/event/php-fwdays-2018/review/static-analysis
● https://github.com/Symplify/EasyCodingStandard
● https://github.com/php-fig/fig-standards/blob/master/proposed/extended-codin
g-style-guide.md
● https://modeling-languages.com/modeling-web-api-comparing/
● https://martinfowler.com/articles/evodb.html

Dev + DevOps для PHP розробника