What to Expect from This Course

Get an overview about who this course is for and what you’ll learn from it.

Who is this course for?

This course is for you if you’ve learned the basics of programming in PHP but still struggle to use what you have learned in practice. There’s a big gap between knowing how to write code and making functional web applications. This course will address that gap.

To enjoy this course, you should be able to read and understand PHP code.

What you’ll learn during this course

In this course, you’ll learn the back-end development of PHP web applications. This course is intended to provide you with enough knowledge to make website and mobile application backends while also developing an understanding of how PHP applications communicate with the outside world. In particular, you’ll learn:

  • How to divide code into multiple files.
  • How to split big projects into comprehensible elements.
  • How to store data in databases.
  • How to store data without databases.
  • How to test your application automatically.
  • How to use libraries and frameworks to simplify your work.
  • How to make applications that are easy to maintain.

After this course, you’ll have enough knowledge to start building applications and applying your skills.

Although the course is PHP specific, most covered topics also apply to web development in general. So the gained knowledge will be helpful even if you use another language.

What isn’t covered in this course

This course is not a documentation rewrite. It refers to many tools you’ll use during application development and doesn’t duplicate the documentation for these tools. Instead, it provides the main ideas you need to know.

This course is not exhaustive. Some topics mentioned are big enough to be separate courses. In such cases, lessons provide just enough information to familiarize you with the subject. You won’t become an expert, but you’ll know what to look for when the need arises.

This course is not simplistic. It doesn’t pretend to have a simple answer to every question. Some problems in this couse don’t have a single correct solution. In such cases, the course will provide the pros and cons of every option and leave the decision to you.

Course chapters

  • Communicating with the Client”: The first chapter covers how PHP works. You’ll learn how web applications communicate with a client and the role of PHP in this process. Also, you’ll familiarize yourself with HTTP, HTML, and the REST API.

  • Mini Project (Static Web Application)”: You’ll do mini projects that cover the same topics as lessons but in a practical way. The first project is a static web application implemented as HTML files. You’ll use the Bulma CSS framework for styling.

  • “Structuring Code Files”: This chapter covers how to split the code into multiple files and wire them together. Also, it explains how to use open-source code in our applications via Composer.

  • “Application Architecture Basics”: This chapter covers the main principles of application architecture, such as MVC architecture and SOLID principles. These principles provide a straightforward way to structure applications.

  • “Mini Project (PHP-Based Web Application)”: We’ll rewrite the application from the first project in PHP. We’ll make an MVC application based on the Symfony framework. Also, we’ll use the hexagonal architecture pattern, which you’ll learn about in detail at the end of the course.

  • “Storing State”: This chapter covers different non-database methods of preserving information between client requests. It includes files, sessions, and an APC cache.

  • “Databases”: When it comes to data stores, databases are big enough to have their own chapter. You’ll learn the basics of relational databases and how to use them in PHP. Also, you’ll get a glimpse of NoSQL databases.

  • “Mini Project (Using a Database in the PHP Application)”: You’ll take the application made in the previous project and move all the data into the SQLite database. You’ll use Doctrine because it’s much easier than building it from scratch. Also, we’ll generate CRUD forms to edit the application data.

  • “Testing”: This chapter covers different kinds of automated tests and how to use them. “Mini Project (Testing the PHP Application)”: We’ll take the application made in the previous project and cover it with automated tests. We’ll use PHPUnit, Prophecy, and Doctrine Data Fixtures in this project.

  • “Advanced Architecture Patterns”: This chapter provides a sneak peek into more advanced topics like domain-driven design and hexagonal architecture. It’s not a comprehensive guide, but it provides some ideas you might want to incorporate into your coding.

  • "What’s Next": The last chapter provides some suggestions for future learning.


There’s an incredible journey waiting for you. So let’s get started!