A curated list of resources for PHP
- Must read
- Tutorials
- Videos
- Books
- Online schools
- Reference
- LAMP: Linux, Apache, MySql, PHP
- HTML / HTML 5
- CSS
- JavaScript
- Protocols
- Tools
- IDEs
- Graphic tools
- Frontend
- Webdesign
- Frameworks
- Micro Frameworks
- Libraries
- Model-View-Controller
- Object-oriented programming
- Design patterns
- Best Practices
- Templating
- View libraries (frontend)
- Database basics
- Database books
- Relational database management system (RDBMS)
- Database normalization
- Prepared Statements
- NoSQL
- Database tutorials
- Database libraries
- Database tools
- Standards
- Errors and exception handling
- Debugging
- Unit testing
- Documentation
- PHP Sessions
- Text translations
- Dependency injection
- Regular Expressions
- XML
- API
- Version control
- Security
- Architecture
- Domain Driven Design (DDD)
- Continuous integration and Continuous Delivery
- Community and News
- Laravel PHP Practitioner (Free)
- PHP Pandas
- W3Schools PHP
- Tutorialspoint PHP
- Devzone PHP
- Learn PHP in Y minutes
- Modern PHP: New Features and Good Practices
- Learning PHP 7
- Phparchitect's Zend PHP 5 Certification Study Guide
- PHP 7 Zend Certification Study Guide
- Free Programming Books
- CodeAcademy - Web Development
- KnpUniversity - Learn PHP
- KnpUniversity - Learn Symfony 4
- Treehouse - Learn PHP
The LAMP stack:
- JavaScript (aka ECMAScript)
- Basic JavaScript
- JSON
- JSON Reference
- JavaScript Tutorial
- Eloquent JavaScript
- You Don't Know JS (book series)
- Awesome JavaScript Learning
- XAMPP (Apache, MariaDB, PHP)
- Composer (dependency management)
- WinSCP (Free SFTP, SCP and FTP client)
- Putty (A free SSH and telnet client)
- PoEdit (gettext translations editor)
- Smartgit (GUI client for Git)
- Notepad++ (Text editor)
- 7-ZIP (File archiver)
- PHPStorm ($)
- Netbeans
- Zend Studio ($)
- Adobe Photoshop ($)
- Adobe Fireworks ($)
- Gimp
- IrfanView
- jQuery (The most widely deployed JavaScript library, DOM manipulation, Ajax)
- HTML5
- CSS
- Bootstrap (The most popular HTML, CSS, and JS framework in the world)
- Font Awesome (The web’s most popular icon set)
- CakePHP (A MVC, CRUD, Scaffolding framework, inspired by Ruby on Rails)
- Laravel (A very popular framework)
- Symfony (A modular enterprise framework)
- Zend (A modular enterprise framework)
- Slim Framework (A PHP micro framework that helps you quickly write simple yet powerful web applications and APIs)
Most frameworks in PHP follow some sort of MVC structure. The theory is simple:
The user interfaces with the view, which passes information to a controller. The controller then passes that information to a model (layer), and the model passes information back to the controller. The controller effectively stands between the view and the model. (Brandon James Savage)
- MVC Wikipedia
- MVC in simpler terms or the structure of a modern web-application
- MVC overview
- MVC for Noobs
- A Better Understanding Of MVC
- Thin controllers, fat models
- Best Practices Controllers
- MVC for advanced PHP developers
- A Better Understanding Of MVC
"Write shy code -
modules that don't reveal anything unnecessary to other
modules and that don't rely on other modules' implementations."
- Classes and Objects
- Mastering Object Oriented PHP (ebook)
- Objektorientierte Programmierung (german)
- Object-Oriented Bootcamp
- SOLID Principles in PHP
- Learning OOP in PHP
- Gang of Four Design Patterns
- Design Patterns for Humans™
- DesignPatternsPHP
- Several design patterns in PHP
- Design Patterns in PHP Course
Simplicity is prerequisite for reliability.
— Edsger W. Dijkstra
"DRY ‐ Don't Repeat Yourself
Every piece of knowledge must have a single,
unambiguous, athoritative representation within a system."
- TheCodingMachine Best Practices
- Return early, return often
- Global Variables Are Bad
- Thin controllers and fat models
- PHP Dos and Don’ts aka Programmers I Don’t Like
- Composition over inheritance
- Clean Code PHP
- Object Calisthenics
- Database
- Database model
- The only proper PDO tutorial
- SQL Tutorial
- Datenbank Grundlagen (german)
- ERM
- Datenbank-Grundlagen Tutorial (german)
- Datenbank-Grundlagen Tutorial: Primärschlüssel (german)
Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
- Database normalization
- Der Königsweg: Normalisierung (german)
- Normalisierung (german)
- MySQL - Normalisierung (german)
- NoSQL
- Redis (In-memory data structure store, used as a database, cache and message broker)
- MongoDB (Document-oriented database)
Follow common PHP conventions for object-oriented code, and established industry best practices: PSR-1, PSR-2, PSR-4.
- PHP Framework Interop Group
- PSR-1 Basic Coding Standard
- PSR-2 Coding Style Guide
- PSR-3 Logger Interface
- PSR-4 Autoloader
- Standard PHP package skeleton
- A skeleton repository for League Packages
- Semantic Versioning 2.0.0
- Errors and Exceptions
- Error Handling PHP Best Practices
- Exceptions
- Predefined Exceptions
- SPL Exceptions
- Errors and error handling
- Xdebug (Debugger)
- Installing Xdebug for XAMPP
“Software testers do not make software; they only make them better.” – Anonymous
- PHPUnit - testing framework
- Unit test, Integration Test, Smoke test, Regression Test
- Unit Testing, Integration Testing and Functional Testing
- The Test Pyramid
- The Way of Testivus (pdf)
- Database Testing
- Best practices for database testing with PHPUnit
- Database Tests With PHPUnit
- Database Fixture Setup in PHPUnit
- The correct way to use integration tests
- 100% Code Coverage via automated tests in Symfony applications
Code never lies, comments sometimes do.
- Introduction to PhpDoc
- The PHPDoc standard (PSR-5) for comments
- PHPDoc wiki
- PHPDoc basic syntax
- Anatomy of a DocBlock
- Your First Set of Documentation
- Internationalization and localization (i18n)
- Symfony: The Translation Component
- PoEdit Gettext Translations Editor
- What is Dependency Injection?
- The Clean Code Talks - Don't Look For Things! (Video)
- Dependency Injection and Dependency Inversion (Video)
- PSR-11: Container interface
- Regular expression
- PCRE Functions
- PHP Live Regex (A Live Regular Expression Tester for PHP)
- REST, RESTful, REST-like API Resources
- REST, RESTful API Quick Reference
- API Guidelines
- 7 Rules for REST API URI Design
- SOAP (Simple Object Access Protocol)
- The SOAP extension The SOAP extension can be used to write SOAP Servers and Clients.
- Web service
- WSDL (Web Services Description Language)
- Implementing a SOAP API with PHP
- What is version control
- Github
- Got 15 minutes and want to learn Git?
- gittutorial - A tutorial introduction to Git
- git - the simple guide
- How to contribute to an open source project on GitHub
A good programmer looks both ways before crossing a one-way street.
- Web security essentials - A crash course
- PHP Security Cheat Sheet
- PHP The Right Way - Security
- XSS
- HTML encoding
- How to use htmlspecialchars() in PHP
- The latest information about secure PHP software
- Security Tips for a PHP Application
- The Ultimate PHP Security Checklist
- Unclebob’s “Clean Architecture” book
- Patterns of Enterprise Application Architecture - Martin Fowler
- The Onion Architecture Part 1
- The Clean Architecture
- Creating services you won’t hate
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- Implementing Domain-Driven Design