前言

上回说到接手了一个 PHP 项目,使用 Laravel 框架实现,今天将介绍 Laravel 项目的搭建过程。

一、环境安装

  1. 安装 PHP 的开发环境

    安装过程请见上一篇文章 PHP运行环境配置 。这里我安装的版本是 PHP 7.4.27 (cli)

  2. 安装 Composer

    Laravel 是 PHP 开发应用广泛的框架,创建 Laravel 工程需要使用到 Composer,可以通过命令行安装,或下载安装 Composer-Setup.exe 程序。

    这里我使用下载 exe 程序安装的方式,注意,有的教程会说设置镜像源,这里不建议设置,因为镜像源中的软件不够全,很容有些软件下载不到。

    默认目录安装时,composer.phar 文件路径为:C:\ProgramData\ComposerSetup\bin ,Conposer 的配置文件目录为:C:\Users\maye\AppData\Roaming\Composer 。这里我安装的版本是 Composer version 2.2.6 2022-02-04 17:00:38

  3. 创建 Lravel 工程

    Laravel 英文文档 中文文档

    在指定目录下打开 cmd 命令行执行:composer create-project --prefer-dist laravel/laravel laravel-demo "5.5.*" 。目前 Laravel 版本已经到 8.x 了,这里我创建 5.5.x 是因为接手的项目是 Laravel 5.5.49 版本的。 由于是从国外服务器下载的,注意保持网络畅通,然后用 PhpStorm 打开。

    工程创建也可以使用 PhpStorm,具体方式百度,需要指定 composer.phar 文件,然后在创建步骤中搜索 Laravel/Laravel 即可。

  4. 安装 NodeJs

    这里我下载的是 v14.15.5 版本,在列表中找到 node-v14.15.5-x64.msi 文件下载安装。

    npm 设置淘宝镜像,加速下载:npm config set registry https://registry.npm.taobao.org,通过 npm config get registry 查看是否配置成功。然后在 Laravel 工程中运行 npm install 下载依赖。

二、工程运行

上述操作完成后,我们就成功创建了一个 Laravel 工程,在工程的根目录下执行 php artisan serve 即可启动,默认启动在 8000 端口,也可以通过 php artisan serve --port=9000 指定端口,然后使用浏览器打开 localhost:8000 查看。按下 Ctrl + C 即可关闭服务。

三、目录说明

Laravel 工程目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
laravel-demo
├── app
| ├── Console
| ├── Envents
| ├── Exceptions
| ├── Http
| ├── Jobs
| ├── Listeners
| ├── Mail
| ├── Notifications
| ├── Policies
| ├── Providers
| └── Roles
├── bootstarp
├── config
├── databse
├── public
├── resources
├── routes
├── storage
├── tests
└── vendor

根目录

app (目录): 包含应用程序的核心代码,默认情况下,这个目录位于命名空间 App 下。

Console (目录): 包含了所有自定义的 Artisan 命令。

Events (目录): 包含了事件类。可以使用事件来提醒应用其他部分发生了特定的操作,为应用提供了大量的灵活性和解耦。

Exceptions (目录): 包含了应用的异常处理器。

Http (目录): 包含了控制器、中间件和表单请求。几乎所有的进入应用的请求的处理逻辑都被放在这里。

Listeners (目录): 包含了用来处理 事件 的类。事件监听器接收事件实例并执行响应该事件被触发的逻辑。例如,UserRegistered 事件可能由 SendWelcomeEmail 监听器处理。

Providers (目录): 包含了应用的所有 服务提供器。服务提供器通过在服务容器中绑定服务、注册事件、以及执行其他任务来为即将到来的请求做准备来启动应用。

bootstrap (目录): 包含引导框架并配置自动加载的文件。该目录还包含了一个 cache 目录,存放着框架生成的用来提升性能的文件,比如路由和服务缓存文件。

config (目录): 包含应用程序所有的配置文件。

database (目录): 包含数据填充和迁移文件。你还可以把它作为 SQLite 数据库存放目录。

public (目录): 包含了入口文件 index.php,它是进入应用程序的所有请求的入口点。此目录还包含了一些资源文件,图片、JavaScript 和 CSS。

resource (目录): 包含了视图和未编译的资源文件(如 LESS、SASS 或 JavaScript)。此目录还包含所有的语言文件。

routes (目录): 包含了应用的所有路由定义,Laravel 默认包含了几个路由文件:web.php、api.php、 console.php 和 channels.php。

web.php (文件): 包含 RouteServiceProvider 放置在 web 中间件组中的路由,它提供会话状态、CSRF 防护和 cookie 加密。如果应用不提供无状态的、RESTful 风格的 API,则所有的路由都应该在 web.php 文件中定义。

api.php (文件): 包含 RouteServiceProvider 放置在 api 中间件组中的路由,它提供了频率限制。这些路由都是无状态的,所以通过这些路由进入应用请求旨在通过令牌进行身份认证,并且不能访问会话状态。

console.php (文件): 定义所有基于闭包的控制台命令的地方。每个闭包都被绑定到一个命令实例并且允许和命令行 IO 方法进行简单的交互。尽管这些文件没有定义 HTTP 路由,但它也将基于控制台的入口点(路由)定义到应用程序中。

channels.php (文件): 用来注册你的应用支持的所有的事件广播渠道的地方。

storage (目录): 包含编译的 Blade 模板、基于文件的会话和文件缓存、以及框架生成的其他文件。

app (目录): 可以用来存储应用生成的任何文件。

framework (目录): 用来存储框架生成的文件和缓存。

logs (目录): 包含应用的日志文件。

tests (目录): 包含自动化测试文件。

vendor (目录): 包含 Composer 依赖包。

以上列出了 Laravel 工程的部分目录,详见 Laravel 的文件夹结构。Laravel 没有严格地限制任何给定的类的位置,你可以按照喜好整理应用的目录结构,只要它们能被 Composer 自动加载。

Laravel 框架的所有配置文件都保存在 config 目录中。在新安装好的 Laravel 应用程序中,其根目录会包含一个.env.example文件。如果是通过 Composer 安装的 Laravel,该文件会自动更名为.env。否则,需要你手动更改一下文件名。
应用程序当前所处环境是通过.env文件中的 APP_ENV 变量确定的。

PHP 中与数据库交互的模型称之为 Eloquent,它并不需要像 Java 一样定义 Entity 实体,倒像是 Java 的 Dao 层。默认把 Eloquent 的模型放在 app 目录下,并且允许开发者自行选择放置在何处。

四、部署方式

使用 Nginx 部署 Laravel 工程,常见文档