- 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
- Router and Dispatcher
- Text translations
- Dependency injection
- Version control
- Security
- Architecture
- Domain Driven Design (DDD)
- Continuous integration and Continuous Delivery
- Community and News
- Laravel PHP Practitioner (Free)
- PHP Pandas
- Hacking with PHP
- PHP Essentials
- PHP 101: PHP For the Absolute Beginner
- Make your own blog beginners tutorial
- Codecademy PHP
- W3Schools PHP
- Tutorialspoint PHP
- Devzone PHP
- Learn X in Y minutes
- Modern PHP: New Features and Good Practices
- Learning PHP 7
- Phparchitect's Zend PHP 5 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)
- Netbeans
- PHPStorm ($)
- 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, inpired by Ruby on Rails)
- Laravel (A very popular framework)
- Symfony (A modular enterprise framework)
- Zend (A modular enterprise fraemwork)
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
- MVC overview
- MVC for Noobs
- A Better Understanding Of MVC
- Thin controllers, fat models
- Best Practices Controllers
- MVC for advanced PHP developers
"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)
- OOP mit PHP5 (german)
- Object-Oriented Bootcamp
- SOLID Principles in PHP
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."
- 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
- PSR-5 PHPDoc
- 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
- PHPUnit Explained (ebook)
- Database Testing
- Best practices for database testing with PHPUnit
- Database Tests With PHPUnit
- Database Fixture Setup in PHPUnit
- Unit test, Integration Test, Smoke test, Regression Test
- Unit Testing, Integration Testing and Functional Testing
- The correct way to use integration tests
- The Test Pyramid
- The Way of Testivus (pdf)
- 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
- todo
- todo
- todo
- 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
- PHP Security Cheat Sheet
- PHP The Right Way - Security
- XSS
- HTML encoding
- What ENT_* should I use for htmlspecialchars?
- The latest information about secure PHP software
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- Implementing Domain-Driven Design