This guide provides a foundational understanding of Laravel and walks you through setting up a small project. Laravel, a popular PHP framework, is known for its elegant design and powerful features, making it suitable for projects of all sizes.
Prerequisites: Setting Up Your Laravel Environment
Before starting, ensure you have the necessary tools:
php -v
in your terminal. If not, download the latest version from the official PHP website or use Laravel Homestead for a pre-configured environment. Homestead offers a streamlined setup, especially for beginners.composer global require laravel/installer
. Remember to add Composer's global bin directory to your system's PATH environment variable. Alternatives like Laravel Herd (a Docker-based solution) offer lightweight alternatives to Homestead.With PHP, Composer, and the Laravel installer (or Homestead/Herd) in place, you're ready to build your Laravel application.
Creating a New Laravel Project
Use the following command to create a new project:
composer create-project --prefer-dist laravel/laravel my-project
Replace my-project
with your desired project name. This command downloads Laravel and sets up the project directory.
Understanding the Laravel Project Directory Structure
Laravel uses a well-organized directory structure:
app
: Contains your application's core logic (controllers, models, etc.).bootstrap
: Bootstrapping and configuration files.config
: Configuration files for database connections, services, and more.database
: Database migrations and seeders.public
: Publicly accessible assets (CSS, JavaScript, images, index.php
).resources
: Uncompiled assets (Blade templates, Sass, JavaScript).routes
: Routing configuration.storage
: Temporary files, cache, and logs.vendor
: Composer-managed dependencies.Database Configuration and Environment Variables
Configure your database connection in the .env
file (located in the project root). This file contains environment-specific settings like database credentials. For security, use environment variables to store sensitive information. Example .env
entries:
composer create-project --prefer-dist laravel/laravel my-project
Access these variables in your configuration files using the env()
function:
<code>DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=my_database DB_USERNAME=my_username DB_PASSWORD=my_password</code>
Routing, Controllers, and Views
Laravel uses a MVC (Model-View-Controller) architecture.
routes/web.php
): Define routes to map URLs to controller actions. Example: Route::get('/welcome', [WelcomeController::class, 'index']);
app/Http/Controllers
): Handle requests and interact with models.resources/views
): Present data to the user using Blade templating.Database Migrations and Seeding
php artisan make:migration create_books_table
.php artisan make:seeder BooksTableSeeder
.Eloquent ORM (Object-Relational Mapping)
Eloquent simplifies database interactions. Create models using php artisan make:model Book
.
Building a Simple CRUD Application (Book Registration)
This section outlines creating a basic book registration application to demonstrate CRUD (Create, Read, Update, Delete) operations. This example focuses on the initial setup; completing the full CRUD functionality is left as an exercise.
Migration: Create a migration for the books
table: php artisan make:migration create_books_table
. Define the table structure (id, title, author, timestamps) within the migration file. Run the migration: php artisan migrate
.
Seeder: Create a seeder: php artisan make:seeder BooksTableSeeder
. Populate the books
table with sample data. Run the seeder: php artisan db:seed --class=BooksTableSeeder
.
Controller: Create a BookController
. Implement methods for index (listing books), create (displaying the creation form), store (saving new books), etc.
Views: Create Blade views (e.g., resources/views/books/index.blade.php
, resources/views/books/create.blade.php
) to display and manage book data.
Conclusion
This guide covered the fundamentals of Laravel project setup and a basic CRUD application. Refer to the official Laravel documentation for more advanced topics and best practices. Consider exploring Laravel boilerplates for pre-configured project structures.
The above is the detailed content of A Beginner's Guide to Setting Up a Project in Laravel. For more information, please follow other related articles on the PHP Chinese website!