📜  堆栈一次 laravel - PHP (1)

📅  最后修改于: 2023-12-03 15:08:08.819000             🧑  作者: Mango

堆栈一次 laravel - PHP

简介

Laravel 是一款经典的 PHP 开发框架,采用 PHP 的 MVC 开发模式,结构清晰、简洁优雅、优秀内核,是目前开发中最为流行的 PHP 框架之一。本文将介绍 Laravel 的开发流程及堆栈搭建方法。

环境要求
  • PHP >= 7.2.5
  • BCMath PHP Extension
  • Ctype PHP Extension
  • Fileinfo PHP extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
安装步骤
步骤1:composer 安装 Laravel

以 macOS 为例

环境准备

请先确认已安装好 PHP 和 composer,可以使用以下命令确认:

# 检查 PHP 是否安装
php -v

# 检查 composer 是否安装
composer -V

安装 Laravel

使用以下命令完成 Laravel 的安装:

# 安装 Laravel
composer create-project --prefer-dist laravel/laravel blog
步骤2:数据库配置

修改 .env 文件,填写相应的数据库连接参数:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
步骤3:生成秘钥

使用以下命令生成 Laravel 应用的秘钥:

php artisan key:generate
步骤4:启动服务

使用以下命令启动 Laravel 应用内置的服务:

php artisan serve
步骤5:浏览器访问

在浏览器中输入 http://localhost:8000 访问 Laravel 程序。

文件结构

Laravel 的文件结构如下:

- app/  
    - Http/  
        - Controllers/   // 控制器文件
        - Middleware/    // 中间件文件
        - ...
    - Providers/          // 初始化配置文件
    - ...
- bootstrap/            // 引导 Laravel 应用的文件目录
    - app.php
    - cache/
- config/               // 应用程序配置文件,如数据库、邮件服务等配置
- database/             // 数据库访问、迁移、填充等目录
- public/               // 可供访问的 css、JavaScript、静态图片资源等
- resources/            // Laravel 资源目录,如 Lang, Views 等
    - views/
- routes/               // 路由目录
- storage/              // 存储目录,如文件、缓存等文件
- tests/                // 测试文件
- vendor/               // Composer 依赖库
- .env                  // 环境配置文件
- .gitignore
- composer.json
- composer.lock
- package.json
- phpunit.xml           // PHPUnit 配置文件
- server.php            // PHP 内置服务器目录配置文件
基本操作
路由

routes/web.php 文件中定义路由:

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

上面的代码定义了一个路由但并没有指定访问的控制器,直接返回了一个视图模板。在 Laravel 中可以使用路由返回任何想要的内容。

控制器

在控制器中定义一个方法,这个方法返回一个视图模板:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('user.index');
    }
}

routes/web.php 文件中定义路由指定访问的控制器:

Route::get('/user', 'UserController@index');
视图

视图是展示给用户看的文件,视图文件位于 resources/views 目录下。

在控制器中返回一个视图,如下:

public function index()
{
    return view('user.index');
}
数据库

在 Laravel 中,可以使用 Eloquent ORM 或 Query Builder 两种方式进行数据库操作。

Eloquent ORM

首先在数据库中创建一个 users 表,通过 Eloquent ORM 查询:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Models\User;

class UserController extends Controller
{
    public function index()
    {
        // 使用 Eloquent ORM 查询
        $users = User::all();

        return view('user.index', compact('users'));
    }
}

在视图模板中遍历返回的数据:

@foreach($users as $user)
    <div class="card">
        <div class="card-body">
            <h5 class="card-title">{{ $user->name }}</h5>
            <h6 class="card-subtitle mb-2 text-muted">{{ $user->email }}</h6>
            <p class="card-text">{{ $user->password }}</p>
        </div>
    </div>
@endforeach

Query Builder

使用 Query Builder 查询结果:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class UserController extends Controller
{
    public function index()
    {
        // 使用 Query Builder 查询
        $users = DB::table('users')->get();

        return view('user.index', compact('users'));
    }
}

在视图模板中遍历返回的数据:

@foreach($users as $user)
    <div class="card">
        <div class="card-body">
            <h5 class="card-title">{{ $user->name }}</h5>
            <h6 class="card-subtitle mb-2 text-muted">{{ $user->email }}</h6>
            <p class="card-text">{{ $user->password }}</p>
        </div>
    </div>
@endforeach
总结

Laravel 是一个优秀的 PHP 开发框架,具有优秀的功能和性能,即使是初学者也可以快速上手并开发出完整的应用。本文介绍了 Laravel 的安装、配置、应用程序结构以及常见的操作,希望能对 PHP 程序员们有所帮助。