Bird
Raised Fist0
Laravelframework~30 mins

Laravel project structure - Mini Project: Build & Apply

Choose your learning style10 modes available
Understanding Laravel Project Structure
📖 Scenario: You are starting a new web application using Laravel. To build it well, you need to understand how Laravel organizes its files and folders.
🎯 Goal: Learn the basic Laravel project structure by creating key folders and files in the right places.
📋 What You'll Learn
Create the main Laravel project folder structure
Add a configuration file for database settings
Create a simple route in the routes file
Add a basic controller file
💡 Why This Matters
🌍 Real World
Laravel projects follow this structure to keep code organized and easy to maintain. Understanding this helps you build web apps faster.
💼 Career
Knowing Laravel's project structure is essential for backend web developer roles using PHP and Laravel framework.
Progress0 / 4 steps
1
Create the main Laravel folders
Create a Laravel project folder structure with these exact folders inside the main laravel_project folder: app, config, routes, and public.
Laravel
Hint

Think of these folders as the main parts of your Laravel app: app for code, config for settings, routes for URLs, and public for web files.

2
Add a database configuration file
Inside the config folder, create a file named database.php with a PHP array variable called $databaseConfig that has keys 'host' set to '127.0.0.1' and 'database' set to 'laravel_db'.
Laravel
Hint

Use a PHP array to hold the database settings inside database.php.

3
Create a simple route
Inside the routes folder, create a file named web.php. Add a route using Route::get that listens to the URL '/' and returns the string 'Welcome to Laravel'.
Laravel
Hint

Routes define what happens when someone visits a URL. Use Route::get for a GET request.

4
Add a basic controller
Inside the app folder, create a PHP file named HomeController.php. Define a class HomeController with a public method index that returns the string 'Home Page'.
Laravel
Hint

Controllers hold the logic for your pages. Define a class and a method that returns a string.

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