Difficulty: Beginner → Intermediate
A typical Laravel project contains directories such as:
app/ bootstrap/ config/ database/ public/ resources/ routes/ storage/ tests/ vendor/
app/
Contains application code.
Common areas include:
app/ ├── Http/ ├── Models/ ├── Console/ ├── Providers/ └── ...
Models:
namespace App\Models; use Illuminate\Database\Eloquent\Model; class Product extends Model { }
routes/
Contains route definitions.
For example:
Route::get('/products', [ ProductController::class, 'index' ]);
Depending on the application and Laravel version/configuration, routes may be separated into web, API, console and other route files.
resources/
Contains frontend resources.
For example:
resources/ ├── views/ ├── css/ └── js/
Blade templates:
resources/views/products/index.blade.php
database/
Contains:
migrations factories seeders
Migration:
Schema::create('products', function (Blueprint $table) { $table->id(); $table->string('name'); $table->decimal('price', 10, 2); $table->timestamps(); });
public/
Contains publicly accessible files and the application's entry point.
Typical contents include:
public/ ├── index.php ├── images/ ├── css/ └── js/
storage/
Used for application-generated files.
Examples:
logs cache uploaded files framework-generated files
config/
Contains configuration files.
Examples:
app.php database.php cache.php mail.php queue.php filesystems.php
Configuration frequently references environment variables.
For example:
'driver' => env('DB_CONNECTION', 'sqlite'),
.env
Contains environment-specific configuration such as:
APP_ENV=local APP_DEBUG=true DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_DATABASE=myapp DB_USERNAME=root DB_PASSWORD=
Sensitive production credentials should not be committed to source control.
0 Comments