Bird
Raised Fist0
Laravelframework~5 mins

Laravel project structure

Choose your learning style10 modes available
Introduction

Laravel project structure organizes your code and files clearly. It helps you find and manage parts of your app easily.

When starting a new Laravel web application.
When you want to add features like user login or database access.
When you need to keep your code clean and easy to maintain.
When working with a team to build a Laravel app.
When debugging or improving your Laravel project.
Syntax
Laravel
laravel_project/
├── app/
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
├── tests/
├── vendor/
├── artisan
├── composer.json
├── .env

app/ holds your main code like controllers and models.

public/ is the web root where index.php lives and assets are served.

Examples
This shows the app/ folder with main code parts: controllers handle requests, models work with data, and providers set up services.
Laravel
app/
  ├── Http/
  │    ├── Controllers/
  │    └── Middleware/
  ├── Models/
  └── Providers/
The routes/ folder contains files where you define URLs your app responds to, like web pages or API calls.
Laravel
routes/
  ├── web.php
  ├── api.php
  └── console.php
resources/ holds templates for pages (views/), language files, and styles.
Laravel
resources/
  ├── views/
  ├── lang/
  └── css/
Sample Program

This simple route in routes/web.php shows how Laravel uses the project structure. It listens for the home page URL and returns a welcome view from resources/views/welcome.blade.php.

Laravel
<?php
// File: routes/web.php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});
OutputSuccess
Important Notes

Keep your code inside app/ to follow Laravel's best practices.

Use public/ for files that browsers need to access directly, like images and scripts.

Configuration files in config/ let you change settings without touching code.

Summary

Laravel project structure organizes files into clear folders for code, views, routes, and configs.

This structure helps you build, maintain, and scale your app easily.

Understanding the folders lets you find and change parts of your app quickly.

Practice

(1/5)
1. Which folder in a Laravel project contains the files that define the URL routes for the application?
easy
A. config
B. app
C. resources
D. routes

Solution

  1. Step 1: Understand the purpose of the routes folder

    The routes folder holds files that define how URLs map to code actions in Laravel.
  2. Step 2: Compare with other folders

    The app folder contains core code, resources holds views and assets, and config stores configuration settings.
  3. Final Answer:

    routes -> Option D
  4. Quick Check:

    URL routes = routes folder [OK]
Hint: Routes are always in the routes folder [OK]
Common Mistakes:
  • Confusing app with routes folder
  • Thinking views are in routes
  • Mixing config files with routes
2. Which of the following is the correct path to store Blade template files in a Laravel project?
easy
A. public/templates
B. app/Views
C. resources/views
D. config/views

Solution

  1. Step 1: Identify where Blade templates are stored

    Blade templates are stored in the resources/views folder by Laravel convention.
  2. Step 2: Verify other options

    app/Views is not standard, public/templates is for public assets, and config/views is not used for templates.
  3. Final Answer:

    resources/views -> Option C
  4. Quick Check:

    Blade templates = resources/views [OK]
Hint: Templates live in resources/views folder [OK]
Common Mistakes:
  • Putting templates in app folder
  • Confusing public assets with views
  • Trying to store views in config folder
3. Given this Laravel project structure snippet:
app/
  Http/
    Controllers/
resources/
  views/
routes/
  web.php

Where should you place a new controller named ProductController.php?
medium
A. app/Http/Controllers/ProductController.php
B. resources/views/ProductController.php
C. routes/ProductController.php
D. app/ProductController.php

Solution

  1. Step 1: Locate where controllers go in Laravel

    Controllers are placed inside app/Http/Controllers folder to handle requests.
  2. Step 2: Check other folders for controllers

    resources/views is for templates, routes is for route files, and app root is not for controllers.
  3. Final Answer:

    app/Http/Controllers/ProductController.php -> Option A
  4. Quick Check:

    Controllers = app/Http/Controllers [OK]
Hint: Controllers live in app/Http/Controllers [OK]
Common Mistakes:
  • Placing controllers in views folder
  • Putting controllers directly in app root
  • Confusing routes folder with controllers
4. You try to access a configuration value in Laravel using config('database.host') but get an error. What is the most likely cause?
medium
A. The routes/web.php file is empty
B. The database.php config file is missing or misnamed
C. The app/Http/Controllers folder is missing
D. The resources/views folder has no Blade files

Solution

  1. Step 1: Understand how config() works in Laravel

    The config() helper reads values from files in the config folder, like database.php.
  2. Step 2: Identify cause of error

    If database.php is missing or misnamed, config('database.host') cannot find the value, causing an error.
  3. Final Answer:

    The database.php config file is missing or misnamed -> Option B
  4. Quick Check:

    Missing config file = error on config() call [OK]
Hint: Check config files exist for config() calls [OK]
Common Mistakes:
  • Blaming routes or controllers for config errors
  • Ignoring missing or misnamed config files
  • Assuming views affect config values
5. You want to add a new API endpoint in your Laravel app. Which folders must you update to add a route, controller, and response view correctly?
hard
A. Update routes/api.php, create controller in app/Http/Controllers, and add view in resources/views
B. Update routes/web.php, create controller in app/Models, and add view in public
C. Update config/api.php, create controller in app/Http/Controllers, and add view in resources/assets
D. Update routes/api.php, create controller in app/Http/Middleware, and add view in resources/views

Solution

  1. Step 1: Identify where API routes are defined

    API routes go in routes/api.php to separate them from web routes.
  2. Step 2: Locate correct controller and view folders

    Controllers belong in app/Http/Controllers, and views go in resources/views.
  3. Step 3: Check incorrect options

    app/Models is for data models, public is for assets, config/api.php is not standard, and middleware folder is for request filters.
  4. Final Answer:

    Update routes/api.php, create controller in app/Http/Controllers, and add view in resources/views -> Option A
  5. Quick Check:

    API route + controller + view folders = Update routes/api.php, create controller in app/Http/Controllers, and add view in resources/views [OK]
Hint: API routes in routes/api.php, controllers in app/Http/Controllers [OK]
Common Mistakes:
  • Putting API routes in routes/web.php
  • Creating controllers in wrong folders
  • Adding views outside resources/views
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard