Introduction
Motivation
The PHP community has evolved considerably over the past decade, beginning with PHP5's support for object-oriented programming in 2006, to the first meetings of PHP-FIG to develop a set of standards for PHP code, to the release of Composer as the de facto package manager in 2012. At the same time the web development community as a whole has been changing, with websites becoming more dependent on Javascript and CSS to provide sophisticated client-side features.
This breakneck pace has caused a lot of people to get left behind. For someone who hasn't been doing web development continuously for the past ten years, it can feel like a hopeless task to try and get acquainted with all of the new tools and frameworks that seem to be coming out every day. Relevant comic from Abstruse Goose:

The problem is that when you're a busy developer with a lot of Real-Life (tm) projects to work on, it's very difficult to set aside time to read a book about technology X - especially when you're not even sure that you really need to learn X!
UserFrosting has a better idea. Instead of learning about these technologies as a purely academic exercise, you'll work on one of your projects, and learn what you need as you go!
What exactly will I learn?
There are three main categories that UserFrosting attempts to cover: software architecture, tools of the trade, and best practices. Most of the PHP developers we see in chat or on Stack Overflow are behind in at least one these areas:
Software architecture
- Object-oriented programming and SOLID
- The model-view-controller (MVC) paradigm
- Designing for maintainability and reuse
- Representational State Transfer (REST)
- Security
Tools of the trade
- Frameworks
- Version control (Git)
- Package management (Composer)
- Templating engines (Twig)
- Data modeling and database abstraction (Eloquent)
- Logging
- Markdown
Best practices
- Coding style and standards
- Development environments
- Debugging
- Test-driven development
- Deployment strategies ("going live")