
Mateusz Kimont
PHP Skills
Basics
Client and Server, IP Address, Domains, Protocols, URL, DNS, HTML, SQL, CRUD, OOP, MVC, REST, AJAXFrameworks
Symfony, Laravel, CodeIgniter, Lumen, SlimPHP, CraftCMS, Wordpress, Joomla, Magento, Laminas, Zend, bespoken php systemWordpress
Creating custom themesCreating custom plugins
Rest Api (Headless)
WP-CLI
Wordpress as Service
ACF
Custom Fields
Woocommerce
Open LiteSpeed
CDN integration
Security, optimalization and caching
Object-oriented programming (OOP)
Design patternsDependency inversion and Dependency injection
KISS, SOLID, Clean Code (Robert Cecil Martin have printed ver)
OOP vs FE
Databases
Data structures, architecture, managment systemRelational (MySQL) and no relational (Mongo)
Database normalization, indexing, caching, troubleshooting Usage of different ORM ex. Doctrin with lazy loading
Patterns Active Record (small) vs Datamappers (corpo)
Mysql Router
Security
Headers: HTTP CORS + CSP + HTSTOWASP and juice shop
General security best practice
Caching
Caching HeadersMysql + Doctrine 1nd Level and 2nd Level
Redis (Reddis Pattern, Sessions in redis), Redis pitfalls
Memcached and memcachePHP
Symfony caching
CDNs, Load Balancing, DB2Json
Testing and standards
PHPUnit I am aware that PHPUnit testing coverage is crucial but it is such a pain ;(Code sniffers, Static Code Analyzer Tools (PHPStan, PHPCSFixer, Psalm, Rector, ...)
PSR standards (forced by PHPStorm)
declare (strict_types=1)
Composer:
Helpers- Guzzle and PHP-HTTP/Guzzle6-Adapter
- Monolog
- Carbon
- Faker
- PHP-DI
- Firebase PHP-JWT
- Ramsey/Uuid
- PHP dotenv
- SwiftMailer and PHPMailer
- Symfony Yaml, Console
Data related
- Doctrine
- Predis
- Respect/Validation
- PHPUnit
- Twig
Misc
PHP type comparison tables (gettype() empty() is_null() isset() bool : if($x))xdebug
RabbitMQ
Generators, Iterators