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