Laravel 101

Laravel is a free, open source PHP web application framework, designed for the development of model–view–controller (MVC) web applications.

Why Laravel?

A survey conducted by Sitepoint in March 2015 shows Laravel is the most popular PHP framework for both work and personal projects. Comparing the most popular frameworks on Google Trends shows a similar result.

Of course you should never choose a framework simply because it is the most popular one, so having tried it out myself, I find it a joy to develop in. The documentation (if you include Laracast as a sort of unofficial documentation) is great, the community is thriving, and it uses the more modern aspects of PHP like Namespaces (PHP 5.3) and Traits (PHP 5.4).

Above all else, it is intuitive and simple enough for a beginning to understand, setting them on the right path to the better practices of programming.

Why Frameworks?

Many developers begin their programming life by writing vanilla (no framework) PHP, and can be quite alien to the idea of a framework. So why would you use a framework?

Using a framework instead of writing code yourself means complicated features such as authentication, routing, sessions, and caching have been abstracted for us, allowing us to write code faster and more securely.

Most frameworks are also open-sourced, meaning if you like to see a feature implemented, you can contribute with your code so others can benefit. In the long run, your code gets refactored and you end up with better solution than on your own - a win-win situation.

Laravel 101

In this series, we will be learning the basics of Laravel 5 by developing a mini-CMS (content management system) for new sites, where users will need to log in and update content.

Here are the different parts of the series. Although I have made my best efforts to write each article as a stand-alone piece, there will likely be overlaps and it's advised you follow the steps from beginning to end.

  1. Concepts (Draft)
  2. Setting Up
  3. Overview (Draft)
  4. Routing and Response
  5. Views and Templates (Draft)
  6. Database
  7. Namespaces
  8. Eloquent ORM (Draft)
  9. Forms (Draft)
  10. Middleware (Draft)
  11. Authentication (Draft)
  12. Elixir (Draft)

We will explore more Services and Facades on a (possible) different series. This series will focus on the fundamentals, but touches on more advanced topics in order to finish our project.