When you first start out building websites, all you really need is a text editor, some knowledge of HTML and maybe a nice-looking photo to place on your homepage. As you progress into building applications for the web, though, things quickly get much more complicated.
Modern web applications reach into pretty much every aspect of software development from database integration to session handling to you-name-it. In even a moderately complex web application, multiple different functions and components need to seamlessly interact with one another to create an intuitive user experience and achieve the objective of the project.
Managing the structure of a complex application is a big enough challenge when you're working alone. When you're working on a large team of developers, it's an even bigger challenge. Add to this the tight deadlines and pressure of dynamic project cycles that most developers work under these days, and it becomes clear that an efficient framework is needed to make this process more efficient while maintaining a high level of product quality.
This is where web application frameworks like Laravel come in.
A web application framework provides the underlying architecture for a development project and provides tools and libraries to build even enterprise level web applications with relative ease.
If you're tired of re-inventing the wheel for every new project, it's time to learn Laravel. Learning this popular, PHP-based framework will let you breeze through previously tedious development cycles, and will boost your resume as a full stack web developer.
Ready to learn what's involved in becoming a Laravel developer? Read on for helpful tips on what you need to know to get started, where to find educational resources, and how to engage with the existing PHP Laravel developer community.
What is Laravel
As they put it on their own website:
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in most web projects.
Okay, so that's some great sales copy, but let's unpack it a bit to explore what Laravel really does, and how you can put it to work in your web development projects.
What is a web application framework
If you're new to the software development world, you might be unfamiliar with the idea of a development framework. The idea behind a web application framework is to automate or pre-package the most common functionality that developers want to implement in their projects.
Think about it like a toolbox. In the stone age, if you wanted to build a door for your cave, you first needed to go out and find some rocks to fashion into tools for the project. Laravel, and development frameworks in general, provide the basic tools for building your website so you can focus on the creative side of things.
With Laravel, instead of spending countless hours re-inventing the wheel, your team can put their energy into innovation, design, and all the stuff that really matters.
How does Laravel take the pain out of development
Whenever you build even a moderately complex web application there are a lot of functions you'll need to implement that are not unique to your project. Operations like database access, design and coding templates, session management are all fairly standard across every application. Laravel provides extensive tools and libraries to help speed up your development cycle by bypassing the need to re-write these simple functions with each new project.
Where Laravel fits in the web development ecosystem
Web application frameworks like Laravel are a components of the greater development ecosystem, or architecture. Laravel is based on the Model-View-Controller (MVC) architecture. MVC architecture separates the parts of a software project into three distinct categories that can be used to group the different functions, layers, and concepts involved in the application.
How Laravel uses MVC architecture to simplify web development
Laravel lives at the architecture level of software development. The web application framework serves as the guide to fit your project into an MVC architecture. By allowing Laravel to manage the architecture and basic underlying functionality, you as a developer are free to develop, rather than wasting your time with organization, project management, and other less creative aspects of the development process.
What do you need to know before learning Laravel
If reading the above section on Laravel's architectural details left you feeling more confused than when you started, you may need to back up a bit and look at some of the fundamental concepts underlying the use of Laravel.
Understanding the MVC architecture
The Model-View-Controller (MVC) architecture is a software development concept that splits an application into three distinct components or layers. MVC is widely used for creating software interfaces. It was originally developed for desktop environments, but is growing in popularity with web developers.
The Model (M in MVC) is the core data structure of an application. The Model is a central component that manages the data and rules (data validation) involved in the internal logic of a piece of software. Models are usually is what represent business entities and data.
The View (V in MVC) component is the expression of the data and logic that are stored in the Model. An example of a view might be a chart or graph used by a researcher to tabulate the results of study. One researcher might implement a View that uses bar charts, where another might implement a View based on tables or some other visual representation. In the MVC architecture, many Views can be expressed based on the same Model data and rules. Simply put, the View is the user interface that the visitors of the website can see in their browsers.
The Controlller (C in MVC) component of this architecture consists of the functions used to take input (the HTTP requests or data from the input forms), convert it to a usable format and pass it along to the View and Model components. Controllers are responsible for all the business logic and are the central component of the MVC architecture.
The details of MVC are outside the scope of this article, but you can get an introduction to the concept in this Wikipedia article.
General programming knowledge necessary for using Laravel
Laravel is a web application framework that works within the MVC architecture. To make any use of an application framework, you'll first need to have a solid understanding of the tools and technologies that fit into that framework.
Laravel is inherently an Object Oriented Programming (OOP) framework. Basically, this means that the way functions and data are handled within a Laravel application is arranged so that each component is a modular block unto itself. If OOP is a mystery to you, you will want to spend some time learning about this programming concept before diving into Laravel.
As with many topics, Wikipedia is a great place to start your journey, check out this article on Object Oriented Programming (link to the article on Wikipedia).
What programming languages does Laravel work with
Laravel is a framework for building applications, it is not a programming language itself. In order to use Laravel, you'll need to have a firm grasp of of OOP programming concepts, MVC architecture, and the language that Laravel is based on: PHP.
What is PHP
PHP is an extremely popular and powerful general purpose programming language. Its immense range of functionality, flexible approach to data types, and general suitability for use in web applications have made PHP practically a ubiquitous feature of the web development world.
The language was initially intended a very simple add-on for HTML web pages to implement some basic functions that were useful in maintaining websites and generate bug reports. From there, PHP grew organically into a full-fledged programming language over the course of a couple of decades. Because it was not intentionally designed to operate as a language, PHP can be quite confusing to learn.
Rasmus Lerder, PHP's founder, has been quoted as saying:
“I don't know how to stop it. There was never any intent to write a programming language. I have absolutely no idea how to write a programming language, I just kept adding the next logical step on the way.” (https://en.wikipedia.org/wiki/PHP)
Though later versions of PHP have made attempts to root out conflicts and inconsistencies, you may find the naming conventions, data handling, and other aspects of this language a bit maddening as you get used to it. Nevertheless, learning PHP is a crucial step in your journey to becoming a full stack web developer.
How to learn PHP
One of the best features of PHP is its incredibly huge and active developer community. With millions of developers using PHP in their web applications worldwide, there's a lot of help to be had as you work to build you PHP skills. Excellent resources for learning PHP include:
If reading through manuals and forums isn't your thing, or you just want to dig deeper, faster, consider checking out an online PHP course on a platform like Udemy (link to the Udemy Review).
How to learn Laravel
Once you have a solid grasp of the tech underlying Laravel, it's time to get starting learning how to use the tool itself.
Laravel is a large and complex framework that provides a ton of tools, libraries, and other solutions for driving your development projects forward. As such, the learning curve for Laravel can be quite steep. As you being to learn this framework, here are some of the main components you'll need to be comfortable with in order to work as a Laravel developer.
Setting up Laravel
It's best to being at the beginning. Before you can learn and use Laravel in your projects, you'll need to get it installed and configured. You'll also want to familiarize yourself with the basic procedures in using the framework and its various tools.
First steps to getting Laravel set up for use include:
- Installing the PHP development environment
- Install and set up the IDE
- Laravel Composer
- Creating a Laravel project
- Using Virtual Hosts
Using Google and Stack Overflow to engage with Laravel developer community
Once you've got PHP and Laravel installed and configured, you can begin immediately creating your own Laravel applications. If you've got a solid understanding of Object Oriented Programming with PHP, you should be able to quickly implement functional applications using this powerful pairing of development tools.
As you begin to explore PHP and Laravel, don't forget about the large community of developers out there who can serve as a valuable resource as you learn. A quick Google search will reveal immense resources and community forums for PHP development. The Laravel community is growing as well, and there's a lot to be learned from simply talking to your fellow developers.
If you run into snags in building your application, Stack Overflow is an awesome resource. Thousands of developers use Stack Overflow to discuss tough coding problems, share bug fixes and code snippets, and generally help others answer programming questions in pretty much every language imaginable.
Of course, there are many, many forums, tutorials, and other learning resources available for both PHP and Laravel, so don't hesitate to look for help when you have a question.
Online learning options for becoming a Laravel developer
If you prefer a more formal learning path, you can find some excellent online courses that will guide you through the process of becoming a Laravel developer.
Online courses allow you to work around your own schedule and tailor the learning experience to your specific needs. The best online course providers, like Udemy, offer 100% on-demand access to the lectures and course materials in your chosen your topic. Udemy even provides liftetime access to courses for a single, affordable one-time fee.
If you really want to get going with Laravel fast while receiving high quality instruction, a course on Udemy may be the best option available.
What is Udemy
Udemy (link to the Udemy Review) is arguably the most versatile Massively Open Online Course (MOOC) marketplace. On Udemy, anyone can submit a course in any topic for consideration to be offered on the platform. Offerings range from simple topic overviews to multi-week professional certification courses. The bulk of each class is a series of video lectures, The videos are supplemented by interactive quizzes and downloadable resources. The completely on-demand format of Udemy's courses makes it easy to study a new topic while keeping your current job, or going to school.
Compared to other MOOC platforms like Pluralsight and Coursera, Udemy's pricing and flexible approach make it a much more attractive option for individuals who are paying their own way, and for students with busy work schedules.
Beginner level course for Laravel developers
In his course “PHP with Laravel for beginners – Become a Master in Laravel” (link to the course on Udemy), Udemy instructor Edwin Diaz takes you through everything you need to know to become a Laravel developer.
This in-depth course begins with step-by-step instructions for installing and configuring PHP and Laravel on you system. From there you will explore fundamentals of Laravel including controllers, views, and templating. Learn to create, configure and manage databases using Laravel, including how to work with raw SQL queries.
In Edwin's course you will learn the following topics:
- Install Laravel on Windows and Mac
- How to use Routes, and understand Controllers and Views
- Using the Blade template engine
- Connect and use databases
- Use Laravel Tinker command line program
- Use Eloquent queries
- Learn Github and version control
- Install a WYSIWYG editor
- And much more…
Ready to start your journey to becoming a Laravel developer? Check out Edwin Diaz's course on Udemy today!
Learn Laravel project development for PHP programmers
Are you already comfortable with the basics of developing within an application framework? Want to get down to business without spending a lot of time on introductory material? Eduonix Learning Solutions's course titled “Projects in Laravel: Learn Laravel Building 10 Projects” (link to the course on Udemy) gets you using Laravel fast by using the framework to build a business website including a photo gallery and business listings. You'll also see how to install OctoberCMS, which is built on the Laravel framework.
As you progress to more advanced topics in the class, you'll learn to implement a messaging system and contact manager, and install the Backpack packages for creating dynamic admin panels.
This course is great for confident Object Oriented PHP coders who want to increase their efficiency and develop skills and knowledge for participating on development teams using Laravel.
For experienced developers ready to jump right into creating professional web applications using Laravel, head over to Udemy now!
Putting your new Laravel skills to work
Talented web and mobile developers are increasingly in demand. According to indeed.com (https://www.indeed.com/salaries/PHP-Laravel-Developer-Salaries), the average salary for a Laravel developer in the United States is between $88,000 and $128,000.
If you're already working as a web developer, adding Laravel to your skillset will bring you that much closer to being a legitimately full stack developer. Professionals who can build an entire web application from the ground up are extremely valuable to software development companies, and Laravel is the perfect tool for operating within Agile development frameworks.
If you're not a professional developer, Laravel and PHP will help you create the most dynamic and aesthetically pleasing web applications, while helping you to increases your understanding of the technologies that drive the web.