As PHP developer, you need to know some common concepts and techniques that help you to write better code and provide solid solutions. It is also important to implement the right tools for the job. Tooling, development practices and development process methodology. If you’re not already familiar with the below content, then perhaps is a good idea to broaden your knowledge. Let me know what other stuff would you add to the list below.
Know PHP data types (8)
1) Integer, 2) Floating point number or Float, 3) String, 4) Booleans, 5) Array, 6) Object, 7) resource 8) NULL. See examples.
How to write Object Oriented Programming in PHP (OOP)
Be familiar with PHP Evolutions over years
Read more on PHP new releases in RFC docs.
PHP releases on php.net/releases
Know common development principles
DRY – Don’t repeat yourself.
KISS – KEEP IT SIMPLE STUPID
- Single Responsibility Principle
- Open-Close Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle (*Dependency Injection)
YAGNI – YOU AIN’T GONA NEED IT
TDA – TELL DON’T ASK
TDD – We write test before code the implementation
BDD – We describe functionality before code the implementation
Software development methodology
AGILE (Scrum) – often used with Jira & Asana (or with both)
Fallow good codding practice
PHP the right way
PSR – PHP Standards Recommendations
Write a clean code [blog]
Use design patterns
Knowing data structures
Data structures:
- struct (can be implemented with array)
- array (Just a classic array we know from C or Java. PHP array is not an actually array structure… it is a implementation of map data structure).
- linked list
- doubly linked list
- stack (LIFO – what’s come last comes out first)
- queue (FIFO whats come last comes out last)
- priority queue (uses heap)
- set
map (PHP array is a map implementation) - tree
- graph
- heap
Understanding Algorithms and Big-O notation
See the PDF presentation on Big-O. Explained by examples, with quiz & answers here.
PHP Development Tools
Testing Tools
Documenting Tools
PHP Framework of a choice:
Symfony
Laravel
Best Tutorial Platforms
Symfony PHP (and others) – https://symfonycasts.com/
Laravel PHP (and others) – https://laracasts.com/
Get to know PHP librarys
PHP Libraries are collections of pre-written code that users can use to optimize tasks. The Standard PHP Library (SPL) is a collection of interfaces and classes that are meant to solve common problems.
Standard PHP Library (SPL) YT
PHP Extension and Application Repository (PEAR)
Other stuff you should to learn
PHP Composer
MySQL / MariaDB / Postgres / SQL / query optimization / database normalisation
MongoDB
Elastic Search + Kibana or Open Search (Elastic open src fork)
Queueing the job with RabbitMQ
Know how to run PHP with docker Docker
Use Kubernetes with your docker images (keep services as standalone containers for better scaling)
Apache / NginX
Linux (Ubuntu, Debian, Fedora)
References
https://www.youtube.com/watch?v=prb_s7HAnP4
https://www.youtube.com/watch?v=txkeLks8IwI&t=732s
Behavior-Driven Development
Test-Driven Development
Refaktoryzacja kodu php z rector