Laravel Application Directory Structure

Laravel Application Directory Structure

In this new laravel 6 application directory structure tutorial, we would love to share with you the directory structure of new laravel 6.

Before, you are learning the laravel framework. You must know about the laravel application directory structure. In this tutorial, we will explain to you, laravel application directory structure.

New Laravel Application Directory Structure

Laravel has two main directories, first is the root directory structure and the second one is the app directory. Let’s see the new laravel 6 directories structure.

The Root Directory Structure of Laravel

The first directory is the most important directory structure in laravel any version, In this directories, you will find some other directories like the app, config, database, services, providers, etc. These directories are below:

appThe app directory holds the base code for your Laravel application.
bootstrapThe bootstrap directory holds all the bootstrapping scripts used for your application.
configThe config directory holds all your project configuration files (.config).
databaseThe database directory holds your database files.
publicThe public directory helps in starting your Laravel project and also holds other scripts (JavaScript and CSS) as well along with images required for your project.
resourcesThe resources directory holds all the Sass files, language (localization) files, templates (if any).
routesThe routes directory hold all your definition files for routing such as console.php, api.php, channels.php, etc.
storageThe storage directory holds your session files, cache, compiled templates as well as miscellaneous files generated by the framework.
testThe test directory holds all your test cases.
vendorThe vendor directory holds all composer dependency files.

The App Directory Structure in Laravel

This is second directory that holds other subdirectories for additional purposes. These are below:

ConsoleThe Console directory contains all your project artisan commands.
EventsThe Events directory hold event files that your laravel application may pop up. Events is used for sending messages or signals to other parts of the laravel project that any action had taken place within the project.
ExceptionsThe Exceptions directory holds your laravel project’s exception handling files that handle all the exceptions thrown by your Laravel project.
HttpThe Http directory holds different filters, requests, and controllers.
JobsThe Jobs directory holds all lineup jobs in this directory. But it does not get created initially, rather, you need to type and run this artisan command php artisan make:job
ListenersThe Listeners directory holds all your project’s handler class for which are used for receiving and handling events.
MailThe Main directory holds all the emails send by through your Laravel project, and this directory needs to be created using the command: php artisan make:mail
NotificationsThe Notifications directory contains all your transactional notifications sent through your Laravel project, and this directory needs to be created using the command:make:notification
PoliciesThe policies directory holds different policies for your laravel project.
ProvidersThe Providers directory is used for containing different service providers.
RulesThe Rules directory hold all the different objects related to custom validation rules, and this directory needs to be created using the command php artisan make:rule


In this new laravel 6 application directory structure tutorial, You have seen the laravel 6 application directories structure.

If you want to learn more about laravel 6 directory structure click here

AuthorTuts Make

My name is Devendra Dode. I am a full-stack developer, entrepreneur, and owner of I like writing tutorials and tips that can help other developers. I share tutorials of PHP, Javascript, JQuery, Laravel, Livewire, Codeigniter, Vue JS, Angular JS, React Js, WordPress, and Bootstrap from a starting stage. As well as demo example.

Leave a Reply

Your email address will not be published. Required fields are marked *