Laravel is a powerful MVC PHP framework. From official docs “Laravel is a web application framework with expressive, elegant syntax”. You must’ve heard about Laravel if you’ve ever worked with PHP. Laravel has experienced major growth since it’s initial release in 2011. Laravel was created by Taylor Otwell. It became the most starred PHP framework on GitHub in 2015.
My goal with this article is to create a guide for those who just want to learn Laravel and explore PHP. This article will not cover every small detail about Laravel but will be enough to get you started with Laravel 6.
You should be familiar with HTML, CSS & most important Object-Oriented programming with PHP 7
A local PHP environment (Valet, Homestead, Vagrant, XAMP, LAMP, etc.)
A database (MySQL, SQLite etc.)
Node & NPM installed and updated
Note: For local environment I’ll be using LAMP (Linux Apache MySQL PHP) as there are no pre-configured environment like Homestead or Valet available for Linux. You can use Homestead for windows or Valet if you’re a Mac user.
I’ll explain how to create a new Laravel 6 application just as I would in real world environment. So let’s get started.
You must plan any project before coding it out. Planning a project before implementation is a major factor in its success. It doesn’t matter how you plan a project. You can plan it on Paper, whiteboard or some simple text file. You can also use Trello for planning out all the components you’re going to create in the project.
Today, we are going to create a Contact Book app. So let’s talk about goals of it.
Display all contacts in a list.
Create a form where people can add new contact.
Validate the form.
Insert the data into the database.
Let’s create a brand-new Laravel project. I like to put all my projects in Development directory. Open your terminal and navigate to this directory.
Next, let’s install Laravel’s command line installer.
composer global require "laravel/installer"
Now, create a new Laravel project.
laravel new ContactBook
This will create a new directory at Development/ContactBook and install a stock Laravel app.
Navigate to newly created directory and run Laravel server by
php artisan serve
You’ll get this output, open your browser and navigate to given address.
Let’s open this newly created project in Editor. You can use any editor or IDE of your choice. My personal favorite IDE for Laravel development is PhpStorm. Now open .env (Environment) file.
Here, you can set different environment variables. You can change the name of the app by editing ‘APP_NAME’. The main part here is ‘DB_*’ variables. You can set different database by specifying driver name. Here you can also set SMTP details.
Setting up Authentication
Laravel made it very easy to enable Login/Registration functionality. In this tutorial, it’s not mandatory to set up authentication, so you can skip this part if you want to.
Laravel’s laravel/ui package provides a quick way to scaffold all the routes and views you need for authentication using a few simple commands:
composer require laravel/ui --dev
php artisan ui bootstrap --auth
npm install && npm run dev
This command will install a layout view, registration and login views, as well as routes for all authentication end-points. A HomeController will also be generated to handle post-login requests to your application’s dashboard.
With the basics set up and working, it’s time to start doing some coding.
Building a Contact List
Building a whole finished project is quite overwhelming, so it’s better if we divide our project in small parts. So let’s start with displaying a list of contacts. It may sound a small task but it still requires a database, table, view and query.
So let’s create a migration. We can create a migration by using Laravel artisan command line tool.
Save it and run the migration by using following command.
php artisan migrate
Now, we’re going to need a model and some dummy data to work with our database. Laravel provides database seeder to populate table with dummy data and a factory class to generate dummy data.
php artisan make:model --factory ContactBook
This command will create a new Contact model. The --factory flag will generate a new factory file. Our newly created factory file will reside in database/factories. Open the ContactFactory.php file and fill the following:
This command will create a new seeder for our contact book table. Open the seeder file by going to database/seeds/ContactBookTableSeeder.php. Now paste the following in it.
public function run()
To activate the following, navigate to database/seeds/DatabaseSeeder.php. Now paste the following in it.
public function run()
Now, run the migration and seed the tables by running the following command.
php artisan migrate:fresh --seed
We have successfully generated fake data for our app! Now we’re ready to create a new view to display a list of Contacts.
Routes & Views
Now it’s time to provide new routes to display a form to add new contact and list existing contacts. We can add new routes to our application in the routes/web.php file.
Here, we can create necessary routes for our app. Laravel provides a default route. To create a new route, we can either use dedicated controller class or closure. For sake of simplicity we’re going to use closure in our app.
Now, let’s update the home route to show all contacts from database table.
This will create a new form with 3 fields, name, phone and description. The form action is ‘/insert’ which we will next. Laravel require to send a csrf token with any type of form submission, so we’ve also included @csrf. This will create a hidden field with a random csrf token.
Navigate to ‘/add’ in your browser, you’ll see something like this.
Handling form submission
Now, with the form is created we can start working on our insert route, to handle the form submission. Open routes file and add the following.
This route is a little complicated than others so let’s walk through it.
First, we are injecting the Illuminate\Http\Request object, which holds the POST data and other data about the request.
Next, we use the request’s validate() method to validate the form data. The validated fields are returned to the $data variable, and we can use them to populate our model.
We require all three fields, and using the pipe character; we can define multiple rules. If validation fails, an exception is thrown, and the route returns the user with the original input data and validation errors.
Next, we use the tap() helper function to create a new ContactBook model instance and then save it. Using tap allows us to call save() and still return the model instance after the save.
Now allow our model to populate given data, we’ve to specify “fillable” properties. Open ContactBook model and add the following.
class ContactBook extends Model
protected $fillable = [
Now, let’s test this in our browser. Navigate to /add and submit the form with proper data.
Congratulations, you’ve created your first Laravel 6 app. This article was designed to get you started on building your app, and you can use this as a building block to gain the skills you need to develop your application.
I hope you liked this article. Subscribe to our mailing list for more articles by me. Have a great day!
What is WordPress? A technical definition is “WordPress is an open source content management system (CRM) built in PHP”. Currently WordPress is the most popular CRM available for free! If you’ve ever used WordPress, you definitely know about themes & plugins in WordPress! In this article I will show you how to create a simple WordPress plugin in less than 15 minutes! But first, let’s talk more about what a plugin actually is.
WordPress plugin is a package of PHP script(s) that can alter your website. A plugin can alter your website in many ways i.e. From adding a simple message in header to creating a whole shop on your website eg. WooCommerce. Plugins can also modify/tweak existing features of your website like changing Login, sending email on specific event etc.
WordPress theme or Plugin?
If you have ever opened a WordPress theme, you’ll know that every theme contains a function.php file. This file contains all the theme related logic and any functionality provided by a particular theme. You can modify this file and add your own custom functionality too. So if we can directly add new feature in function.php, why do we need a plugin? Well the answer is simple, if you only want to add some text in the header or something small like that, you can surely use theme’s function.php. If you want something like a custom chat bot or anything like that, then a plugin would better suit your needs.
The main difference between a theme’s ‘function.php’ and separate plugin is that plugin’s functionality persists regardless of your website’s current theme but any changes from function.php will only be applicable when that particular theme is in use.
Creating our first WordPress Plugin
WordPress plugin’s default structure only requires one PHP file in a separate directory with a PHP block comment containing various data about that plugin. So, to create a plugin you need to navigate to your wp-content/plugins folder. Create a new folder name myFirstPlugin. Inside this new folder create a new file named myfirstplugin.php. Open the created file in any text editor of your choice and paste the following in it.
Plugin Name: My First Plugin
Plugin URI: http://mywebsite.com/
description: My first ever WordPress plugin
Author: Arman Khan
Author URI: https://instagram.com/codingwitharman
Here, only Plugin Name is required, but it’s a good practice to provide as much data as possible about our plugin.
That’s it!! You’ve created your first ever WordPress plugin. You can log in to your wp-admin and go to plugins and active this plugin. Of course, this plugin does not do anything, yet! But it is an active plugin.
How to create a great plugin?
There are some parameters that you should consider while creating your plugin. These parameters will help you create a successful well documented plugin.
How to structure your plugin? Well, this question is quite common among new WordPress developers.
If your plugin provides complex functionality, you should divide it in multiple files. For example, if your plugin has a main class, you should put that in your plugin’s main file and provide connections to other files through it. If your plugin includes UI related files, you should consider sorting them in separate folders like JS/CSS/Images and put all these folders in one assets folder. Well of course this is not a requirement from WordPress but a good plugin structure is always preferred compared to a bad one.
When creating functions in the plugin, you should be very careful naming them. You should never choose more general names for your functions as it might clash with other plugins that have similar functionalities.
The most common solution is to use unique prefix. For example, if your function name is commonFunction then you should replace it with something like ak_commonFunction.
This function runs when a WordPress administrator delete your plugin from backend. This is a great way to remove plugin specific data like tables in database or custom field created by your plugin.
Well, so now you know how to create a simple WordPress plugin. Now you can easily follow articles that require you to create WordPress plugin first. Of course this guide does not contain advance features that a plugin can provide, we’ll cover those topics in future articles for sure. Stay tuned!
Why should I learn PHP 7 in 2020?
PHP is compatible with all leading operating systems such as Windows, Linux, MAC OS and many others. Likewise, it is compatible with all popular web servers such as Apache, NGINXm IIS etc. PHP7 offers great compatibility and performance. Not only is it open source but also it contains many features and it is absolutely easy to install and set-up. We will cover installation part later in this article.
What are features of PHP?
PHP comes with many benefits that let you create wonderful web applications.
1. Open Source
PHP is an open source programming language which means it is free to use. There is a great community to help you if you get stuck anywhere and not able to figure out the problem.
PHP supports all major operating systems and servers.
3. Easy to use
PHP is simple and clean scripting language. Its syntax is convenient to use. Anyone can quickly learn PHP.
It is one of the fastest programming language. It takes so little time to establish a connection with database or fetch data from web services.
How to install PHP7?
You can follow this guide to install PHP7 in your preferred operating system.
Step 1 – Download PHP7
Go to the official PHP website and download the latest version. Save it on your windows PC.
Step 2 – Extract the zip
Step 3 – Setting up Environment variable
We need to configure the environment variable to access PHP from the command line. You can follow these steps to do so.
Right click -> My Computer (This PC) -> Properties -> Advanced system settings
This will open a the following window.
Now click on Environment variables, select path under the System variables section and edit. Add the path of installed PHP to system path.
Click on the new button and add the path to the PHP bin. Save all changes and close all the windows. Now to verify the settings, open console (or CMD) and execute following.
If you get the following output, it means PHP is successfully installed on Windows.
Here, we will see the steps to install PHP in Ubuntu Linux.
Step 1 – Update Ubuntu
Before installing anything new, you should always update your system. Open a terminal and run the following commands:
apt-get upgrade && apt-get update
Step 2 – Install PHP7
You can install PHP7 from Ubuntu’s official repository by following command:
apt-get install php
This command will install PHP7 and it’s required dependencies. To check whether PHP is installed or not execute following command:
It will return the PHP version related information.
PHP7 Syntax Overview
Like any other programming language PHP has a set of syntax rules which we need to follow while programming. PHP files commonly have a .php file extension as they’re always executed on server.
Tags in PHP or Escaping to PHP
The PHP parsing engine needs a way to differentiate PHP code from other elements. PHP tags are used for this.
We can ‘Escape to PHP’ by using the following 4 methods:
Canonical PHP tags
SGML (or) Short HTML Tags
HTML Script Tags
ASP Style Tags
From all of the above, Canonical PHP tags are most commonly used and are compatible with majority of servers.
# Here the echo command prints the message
echo "Hello world";
Comments in PHP
Comments are statements in a program by developers which describe the intent and purpose of the code. There are 2 styles for comments in PHP. Comments in PHP code are not read or executed by the PHP engine. Therefore, they do not affect the output.
Single Line Comment
// This is a single line comment
echo "Hello World";
# This is also a single line comment
Multi line Comment
Example for multiline comment
This is a multiline comment
echo "Hello world";
PHP Syntax is Case-Sensitive
In PHP besides variables, all other keywords are not case-sensitives. We have to be very careful while defining and using variables. Look at this example.
// Here all echo statements will execute
// in the same manner because keywords are case-insensitive
$variable = "Test";
// You will get an "Undefined Variable" error
// Because variable names are case-sensitives
If you want to build a fast and beautiful Frontend for you PHP-Backend Application, consider the popular Framework Vue.JS 2 Course.