Getting Started with Laravel: Part I
This is part 1 of a series of tutorials on how to get started with one of the most popular PHP frameworks out there, Laravel. Read on to find out how you can make use of this framework for your own projects!
Join the DZone community and get the full member experience.Join For Free
Laravel is one of the most popular, if not THE most popular PHP framework and after using Laravel and comparing it with the likes of Zend and Symfony it's easy to see why over the courses of multiple tutorials we're going to go over some of the best features of Laravel.
Laravel has so many features and helpful classes that you can quickly and easily build any application or API with Laravel.
There are multiple ways you can install Laravel, the easiest way you can install Laravel is by using composer.
composer global require "laravel/installer"
Once Laravel is installed it will have a command of
laravel new which you can use to create your new project.
laravel new created-new-project
This will add a fresh Laravel installation into the directory you're in.
Once Laravel is installed it will create the structure of the application.
The app folder is used to home the classes for your application such as commandline class or controller classes.
Laravel comes pre-installed with controllers you can use in almost all of your applications such as the Authentication controllers to manage login, reset password and register forms.
Bootstrap folder is used to house objects such as instantiating the Laravel application and defining the autoload functionality.
Config folder is used to house the settings for your application. Some of these application settings can be overridden from the environment settings you define in the root of the application.
The database folder is used to store the factories, migration and seed files for your application.
The public folder is where you documentroot should be pointing to. This is the folder that holds your index.php and is what will be loaded when visitors navigate to your application. This folder is where you will store all your compiled CSS and JS files used in the application.
Laravel development uses the MVC development method and will store the view of the MVC inside the resources folder.
Laravel also chooses Sass and VueJS for your frontend development, you should use the resources folder to store the un-compiled Sass and VueJS files.
This is a new folder in Laravel 5.3, before this will sit in the
app/http folder, it is here that you will include all the routes for your application. This is split up into API routes, Console routes and Web routes allowing you to better organise the routes.
The storage folder is used for any files you need to store in the application such as user uploaded files. This is also where you will store cache and log files for your application.
You need to make sure that the storage folder is writable by your web server or Laravel will not work correctly.
As the name suggests you will store your application's unit tests in this folder.
The vendor folder is where your third party dependencies will be stored after they have been imported using Composer.
To setup your Laravel application you need to generate a unique application, this key is used as the salt for your users sessions and other encrypted data.
To generate an application key you can use the Artisan command
php artisan key:generate
Laravel comes with a local environment setup called Homestead which is a simple Vagrant virtual machine providing you with the perfect setup for your Laravel applications.
Homestead is a pre-built Vagrant box which can be easily installed by
vagrant box add laravel/homestead
Then you can install the Homestead installation files by cloning the repository.
git clone https://github.com/laravel/homestead.git Homestead
Once the repository is cloned run the command
Will create the Homestead configuration file where you can edit the settings of your virtual machine.
Published at DZone with permission of Paul Underwood, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.