Laraver 的安装与测试
1. 简介
laravel框架基于经典的MVC架构
- M :
model
,数据库操作,也包括队列,缓存等 - V :
view
,视图,由一个或多个模板组成,格式化输出响应的数据 - C :
controller
,控制器,主要是接受请求,选择模型,渲染视图
2. Laravel 的安装
2.1 安装要求
服务器需要满足以下要求:
- PHP >= 7.2.5
- BCMath PHP 拓展
- Ctype PHP 拓展
- Fileinfo PHP 拓展
- JSON PHP 拓展
- Mbstring PHP 拓展
- OpenSSL PHP 拓展
- PDO PHP 拓展
- Tokenizer PHP 拓展
- XML PHP 拓展
对于这样的开发环境配置,Laraver 也自己提供了一个虚拟机 Laravel Homestead,它可以满足所有的要求,但是这个虚拟机也特别大,有1G+,如果不想使用这么大的文件,也可以选择第三方工具,集成开发环境,比如:phpstudy,它也自动配置了这样的开发环境
2.2 安装 Laravel
学习最常用的方式吧!
先使用命令行工具切换到自己的项目目录
使用 composer
的 create object
命令:
composer create-project --prefer-dist laravel/laravel blog
使用此条命令就能下载 laraver 框架
其中: blog
表示项目名称,这个是可以自定义的
另外:下载框架时一般也会指定版本号,如下:
composer create-project --prefer-dist laravel/laravel laraverStudy 7.*
框架下载好以后如下:
2.3 Web 目录指向
框架安装好以后必须将Web服务器的根目录指向 public
目录,该目录下的 index.php
文件将作为所有进入应用程序的 HTTP 请求的前端控制器。
现在可以访问一下 www.laraverStudy.com
这个网址:
文件夹结构
1. app
目录
app
是 application(应用)
单词的简写,这里是应用程序的核心代码,应用中所有类几乎都应该放在这里
2. bootstrap
目录
这个不是前端框架bootstrap
,这个单词的英文意思是 引导 ,所以这里是一个引导程序,在public
目录中的index.php
有一行代码如下:
$app = require_once __DIR__.'/../bootstrap/app.php';
这里引入了bootstrap
中的app.php
,在这个app.php
文件中,可以看到也是new
了很多东西,就在在引导程序的执行
3. config
目录
这里放的是应用程序的所有配置文件
- 此目录中的
app.php
文件中有两个比较重要的配置:
'timezone' => 'UTC'
:这里将时区设置的是国际时区,开发中可能需要自己配置'key' => env('APP_KEY')
:这里的key
是我们下载Laraver框架时生成的key
(秘钥),保证每个人的key
都不一样,才能提高程序的安全性
database.php
:这里存放的是数据库配置文件,有多种数据库类型filesystems.php
:文件系统,不过这里的文件系统是指跟文件操作相关的程序,比如:将文件存储到云端cloud
,本地local
,公共目录public
。
4. database 目录
database
目录包含数据填充和迁移文件以及模型工厂类。你还可以把它作为 SQLite 数据库存放目录。
5. resources
目录
resources
目录包含了视图和未编译的资源文件(如 LESS、SASS 或 JavaScript)。此目录还包含你所有的语言文件。
此目录下有一个views
目录,里面的welcome.blade.php
,可以看出,它并不是真实的视图层,而是一个模板引擎,它的语法很奇怪,既然它是一个视图模板引擎,以后我们写的视图相关的一些HTML,都应该写在这个views
目录中
6. routes
目录
目录包含了应用的所有路由定义,Laravel 默认包含了几个路由文件:web.php
、api.php
、 console.php
和 channels.php
主要知道api.php
和web.php
大部分与视图交互相关的路由都是通过web.php
,它就相当于一个门卫,用户的所有HTTP请求都要先通过路由才能访问
在Laraver框架中,路由是强制性的,所有的请求都必须通过路由,有多少请求,你就要写多少路由
api.php
呢,是处理与接口相关的请求
差异:web.php
输出的是HTML页面,api.php
输出的是JSON数据,比如,网页中页面的一些视图请求,都是通过web.php
7. storage
目录
存储目录,目录包含编译后的 Blade 模板、session 会话生成的文件、缓存文件以及框架生成的其他文件。这个目录被细分成 app 、 framework 和 logs 三个子目录。app 目录可以用来存储应用生成的任何文件。 framework 目录用来存储框架生成的文件和缓存。最后, logs 目录包含应用的日志文件
在此目录中也有一个views
目录,它的结构和resources
目录中的welcome.blade.php
很相似,实际上呢,其实welcome.blade.php
就相当于是一个翻译模板,它会读取文件,然后将文件翻译,最后视图的运行还是在storage
的views
目录中,welcome.blade.php
实际上是不会运行的。
8. tests
目录
tests
目录包含自动化测试文件
9. vender
目录
vendor
目录包含你所有的 Composer 依赖包
10. 根目录
根目录中的.env
配置文件优先级是最高的,只要它的内容改变,其他配置文件,比如config
目录中的文件,生成的值都会改变
11. artisan
命令
比如,我们要生成一个控制器,常规做法可能就是去找到存放控制器的目录:app
目录—》Http
目录—》Controllers
目录,然后在里面新建文件,但是这样比较麻烦
Laraver框架呢,给我们提供了一个命令,使用这个命令,就能很方便的创建,如下:
它会自动给你创建好控制器,并且控制器结构也为你生成好了,如下:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserInfo extends Controller
{
//
}