No description
Find a file
2022-05-31 18:50:35 +02:00
app/public remove implementation from app directory 2022-05-31 18:50:35 +02:00
implementation add chapter 12 solutions 2022-05-31 18:50:35 +02:00
.gitignore update readme 2022-05-31 18:50:35 +02:00
01-front-controller.md Changing port to 1235 to not clash with smtp default port 2022-05-31 18:50:35 +02:00
02-composer.md Update author name in composer chapter 2022-05-31 18:50:35 +02:00
03-error-handler.md fix some typos 2022-05-31 18:50:35 +02:00
04-development-helpers.md fix some typos 2022-05-31 18:50:35 +02:00
05-http.md fix some typos 2022-05-31 18:50:35 +02:00
06-router.md fix some typos 2022-05-31 18:50:35 +02:00
07-dispatching-to-a-class.md fix some typos 2022-05-31 18:50:35 +02:00
08-inversion-of-control.md fix some typos 2022-05-31 18:50:35 +02:00
09-dependency-injector.md add small typo and wording improvements to chapters 9 and 10, update name of time service 2022-05-31 18:50:35 +02:00
10-invoker.md add small typo and wording improvements to chapters 9 and 10, update name of time service 2022-05-31 18:50:35 +02:00
11-templating.md update chapter 11 2022-05-31 18:50:35 +02:00
12-configuration.md simplify chapter 12 2022-05-31 18:50:35 +02:00
13-refactoring.md add chapter about data repositories, and start work on perfomance chapter 2022-05-31 18:50:35 +02:00
14-middleware.md fix some typos and link to a blogpost about middleware pattern 2022-05-31 18:50:35 +02:00
15-adding-content.md fix typos in chapters 15 to 17 2022-05-31 18:50:35 +02:00
16-data-repository.md fix typos in chapters 15 to 17 2022-05-31 18:50:35 +02:00
17-performance.md fix typos in chapters 15 to 17 2022-05-31 18:50:35 +02:00
18-caching.md add perfomance chapters 2022-05-31 18:50:35 +02:00
LICENSE Create LICENSE 2016-08-31 12:51:41 +02:00
README.md fix some typos and link to a blogpost about middleware pattern 2022-05-31 18:50:35 +02:00
Vagrantfile enable intl extension 2022-05-31 18:50:35 +02:00

Create a PHP application without a Framework

Hello and welcome to this tutorial with helps you in understanding how to write complex apps without the help of a framework. This tutorial is not for people who have never written PHP before, you should at least have some experience with object oriented PHP and be able to look at the official PHP-Documentation to figure out what a function or class we are using does.

I often hear people talking about frameworks as a solution to all the problems that you have in software development. But in my opinion its even worse to use a framework if you do not know what you are doing, because often are fighting more against the framework than actually solving the problem you should be working on. Even if you know what you are doing i think it is good to get to know how the frameworks you are using work under the hood and what challenges they actually solve for you.

Credit:

This tutorial is based on the great tutorial by Patrick Louys. My version is way more opiniated and uses some newer PHP features. But you should still check out his tutorial which is still very great and helped me personally a lot in taking the next step in my knowledge about PHP development. There is also an amazing book which expands on the topics covered in this tutorial.

Getting started.

As I am using a fairly new version of PHP in this tutorial I have added a Vagrantfile to this tutorial. If you do not have PHP8.1 installed on your computer you can use the following commands to try out all the examples:

vagrant up
vagrant ssh
cd app

I have exposed the port 1235 to be used in the VM, if you would like to use another one you are free to modify the Vagrantfile.

Start