关于Laravel框架
第1讲-Laravel介绍
1.1 什么是Laravel
laravel是目前一个比较主流的框架,现在很多互联网的公司都在使用该框架。该框架的前身是symfony框架
Laravel的定位就是做一个简洁使用程序员的框架。为web艺术而生。
Laravel学习参考:
Laravel的特点:
1. 单一入口:所有的请求必须从单入口开始:主要是关于管理【统一的参数过滤】。
2. MVC的思想【分层的思想:主要是为了协同开发---实现后期的维护方便 框架本身写好了很多基础性的代码,不再需要重复造轮子】
3. ORM操作数据库【Obeject Relationship Model的简写】
一个模型对象对应数据库里面的一张表,对象的属性就是表的字段名,对象的方法执行curd操作。类似TP中的AR模式
例如:$userModel->username属性===对应=====it_user表username字段
特别注意
Laravel是一个重路由框架,即所有的功能都是由路由发起。
路由:建立HTTP请求(URL地址)与控制器中方法的联系
Laravel框架
- 必须有路由
- 可以没有控制器、模型、视图
1.2 为什么学习Laravel
① 移动互联网的兴起
目前移动互联网非常的火,基本都是前后端分离,前后端需要建立数据的联系,这个时候一般都是通过API接口完成的,API接口就是一个URL地址请求,也就是一个路由!
因为Laravel在接口调用里面有其独特的优势。在执行效率与编码效率方面都有优势,因此被很多公司作为目前开发的首选框架。CI框架,TP框架等很多国内框架都在借鉴Laravel的设计思想。
② 有益于大家找工作
目前很多公司要求至少会1~2个框架的使用。学习Laravel有利于大家找工作。
③ 培养学习新框架的能力
有些公司是使用的自定义框架,学习Laravel可以培养大家学习新框架的能力,更快的适应公司的要求
1.3 如何学习Laravel
不论学习什么框架,都需要从下面几个方面着手
- 环境配置—第2讲
- 目录结构—第3讲
- 路由—第4讲
- 控制器—第5讲
- 视图-第6讲
- 配置—第7讲
- 模型(CURD)第7讲
- 调试
第2讲-搭建开发环境
2.1 Laravel版本选择
目前,最新版本的Laravel是5.4。推荐大家使用Laravel5.1版本。因为Laravel5.1是目前的LTS版本。目前大部分公司会选用5.1。同时学会5.1版本后,学习5.5版本也比较轻松。
什么是LTS(Long Term Support)版本:
2.2 安装phpStudy
Laravel框架有运行对环境是有严格要求的。
在Laravel里有很多::class的语法,是在php5.5以后支持的
在Laravel里定义数组的写法: [‘name’ => ‘xiaoming’, ‘age’ => 23] 也是在php5.4之后支持的
由于Laravel会使用Openssl扩展库、PDO扩展库的类,所以确保开启这些扩展
由于Laravel会使用token(令牌)技术, 所以确保tokenizse开启
在Windows下建议使用集成开发环境phpstudy这个产品,目前还支持php7,并且可以非常方便的做版本切换。
Step1. 运行phpstudy.exe
Step2. 选择“是”
Step3. 切换版本
Step4. 查看phpinfo
Step5. 修改php.ini配置
配置文件目录如下:
开启openssl扩展
Step6. 重启Apache服务
Step7. 检查php配置
2.3 Apache配置
Step1. 开启Rewrite模块
PhpStudy默认开启, 不用修改
Step2. 配置虚拟主机
编写index.php测试环境
访问设置的域名: “local.laravel.com”
2.4 设置环境变量
Q: 为什么需要设置环境变量?
A: 需要在命令行下执行Laravel提供的artisan脚本
Q: artisan脚本是什么?
A: artisan脚本是Laravel提供的一个自动生成工具,可以自动生成控制器文件、模型文件、中间件文件等
Win7下配置
“我的电脑”-右键-“属性”
特别注意:
如果之前有配置环境变量, 需要将之前配置的环境变量删除
测试
如果不一致, 依然是之前配置的php版本, 执行set命令,让环境变量生效
2.5 Laravel的安装
Laravel两种安装方式
- Composer安装
Q. 什么是Composer?
A. Composer是php的类库管理器(上传类、验证码类....),可以帮我们自动去互联网下载开发过程中所需要的类库文件和Linux下包管理器yum比较类似。可以理解成360软件管家 QQ软件管家
由于Composer安装需要FQ,通过Composer方式安装的速度也比较慢,不适合在课堂上演示,咱们采用源码包安装:
- 源码包安装
Step1. 下载一键安装包
Step2. 解压
解压到配置好的虚拟主机
Step3. 测试
访问local.laravel.com发现不能正常访问
[原因]
由于Laravel的入口文件在public目录下. 因此, 虚拟主机的目录要配置到public目录
[解决]
修改虚拟主机配置
第3讲-目录结构
Xmind目录结构图
第4讲-路由
4.1 路由的介绍
4.1.1 什么是路由
简单的说就是将用户的请求转发给相应的php程序去处理
4.1.2 路由的作用
路由的作用就是建立url请求和php程序之间的映射,需要注意laravel框架里面路由是必须的【laravel可以不写控制器、也不可以写模型、也可以不写视图】,并且每个路由规则是唯一性的。laravel是一个重路由的框架。
4.1.3 Http请求的种类
Http请求类型get、put、post、patch、delete、tarce、options...等【http请求分7种,但是并不是所有的请求web服务器都支持】,一般使用的get或者post居多。
4.1.4 参考手册
4.2 路由的使用
4.2.1 基本路由
4.2.2 带必选参数的路由
如果路由没有写参数,则会报错
4.2.3 带可选参数的路由
使用可选参数路由时, 需要给默认值, 否则会出错
4.2.4 参数的正则约束
使用连续操作:where()
- 单参数: 传递 参数名, 正则表达式
- 多参数: 传递 关联数组
4.2.5 路由到控制器的方法
第5讲-控制器
5.1 手写控制器
Step1. 新建文件
在Http/Controllers目录下新建一个文件TestController.php
Step2. 编写内容
Step3. 优化
5.2 自动生成
使用artisan脚本生成控制器
Step1. 进入artisan脚本目录
Step2. 执行命令
php artisan make:controller 目录\控制器
生成如下文件
可以使用参数 --plain: 生成简洁版本
php artisan make:controller Test\UserController
--plain
5.3 编写路由
第6讲-视图
6.1 加载视图
Larvael使用blade模板引擎, 所有视图文件存放在resources\views目录下
模板使用.blade.php文件命名
6.2 加载带目录的视图
6.3 视图传参
Step1. 使用View的第二个参数
第二个参数传递一个关联数组,
关联数组的Key为模板变量, value为php数据
Step2. 编写模板
6.4 模板标签语法
使用php原生语法访问变量
使用php函数
使用遍历
第7讲-中间件
7.1 什么是中间件
顾名思义: 处于Http请求与响应中间的部分
中间件所在位置:
在Http请求之后, 在控制器处理之前.
7.2 中间件的作用
作用:
数据过滤
权限验证
7.3 中间件的使用
Step1 生成中间件
通过 artisan 脚本生成中间件
php artisan make:middleware 中间件
Step2 编写中间件
Step3 注册中间件
Step4 编写路由
Step5 测试
第8讲-Http请求
8.1 依赖注入(设计模式)
Q: 什么叫依赖?
A: 如果一个类的实现需要另一个类的支持, 就叫做一个类依赖另一个类
例如:
人要开车, 就说人类依赖汽车类
汽车要能跑, 需要有轮子. 就说汽车依赖轮子
Q:什么叫注入?
A:一般是在类的构造方法里传入另一个类的对象做为参数
Q:什么叫容器?
A:容器一般包含两个方法:bind和make
Bind:建立类与一个闭包的联系
Make:产生一个对象,并解决依赖关系
8.2 Http请求的简单案例
编写User/add路由
1. 使用依赖注入Request对象
2. 使用Request的all()方法
3. 使用Request的input()方法
4. 使用Request的method()方法
第9讲-Http响应
9.1 什么是Http响应
Http响应就是服务器返回给浏览器的数据
包括三个方面
- 响应行
- 响应头
- 响应体(数据)
9.2 Http响应的简单案例
1. 设置响应头
用法
Response里可以写空字符串
什么都不写会报错!
2. 设置cookie
用法
编写代码
获取cookie
也是支持中文的
3. Ajax返回JSON数据(重点)
用法
Step1. 编写/ajax路由
Step2. 编写ajax模板
Step3. 通过ajax发送get请求
Step4. 测试
关于Laravel框架的更多相关文章
- [php]laravel框架容器管理的一些要点
本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章很长,但是内容应该很有用,希望有需要的朋友能看到.php经验有限,不到位的地方,欢迎帮忙指正. ...
- php的laravel框架快速集成微信登录
最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_provider,详细的介绍请往下阅读. 本文面向的是php语言laravel框架的用户,介绍的是 ...
- laravel 框架使用总结 limit
后台开发就是数据的各种处理很多时候需要做到分页,但是在laravel中使用limit做分页的时候会出现问题,偏移量和每页的条数放进去好像不好使了 下面推荐给大家一种在laravel框架中非常好用的写法 ...
- laravel框架总结(十) -- 返回值
以前用CI框架对于返回值没有过多关注,但是发现使用laravel框架的时候出现了一些小问题,特意实践总结了一些常用情形,希望对大家有所帮助 先理解几个概念: 1>StdClass 对象=&g ...
- Laravel框架数据库CURD操作、连贯操作使用方法
Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍. Laravel是一套简洁.优雅的PHP Web开 ...
- [麦先生]Laravel框架实现发送短信验证
今天在做到用户注册和个人中心的安全管理时,我借助实现第三方短信平台在Laravel框架中进行手机验证的设置; 由于我们做的是一个为客户提供医疗咨询和保健品网站,所以对客户个人隐私的保护显得尤为重要, ...
- [麦先生]初学Laravel框架与ThinkPHP框架的不同(2)
在经过了一段时间的开发后,我对Laravel框架的认识又在逐步的加深,对于这个世界占有量NO.1的框架... 我想说,我已经在逐步的感受到他的恐怖之处... 一.建表--Laravel在数据库建表上 ...
- 使用 Laravel 框架:成为微信公众平台开发者
转: http://ninghao.net/blog/1441 作者:王皓发布于:2014-05-30 13:16更新于:2014-05-31 12:05 我们可以使用Laravel 框架为微信公众平 ...
- laravel框架总结(四) -- 服务容器
1.依赖 我们定义两个类:class Supperman 和 class Power,现在我们要使用Supperman ,而Supperman 依赖了Power class Supperman { p ...
- php后台开发(二)Laravel框架
php后台开发(二)Laravel框架 为了提高后台的开发效率,往往需要选择一套适合自己的开发框架,因此,选择了功能比较完善的Laravel框架,仔细学来,感觉和Python语言的框架Django非常 ...
随机推荐
- Rust语言学习笔记(5)
Structs(结构体) struct User { username: String, email: String, sign_in_count: u64, active: bool, } let ...
- Haskell语言学习笔记(84)Concurrent
Control.Concurrent Prelude> import Control.Concurrent Prelude Control.Concurrent> Control.Conc ...
- Kotlin语言学习笔记(1)
fun main(args: Array<String>) { println("Hello, World!") } 基本语法 声明常量用val,声明变量用var,声明 ...
- js 替换字符串中所有匹配的字符
var str = 'abcadeacf'; var str1 = str.replace('a', 'o'); alert(str1); // 打印结果: obcadeacf var str2 = ...
- vue项目动态控制数据变动时箭头样式
html代码 <div class="top_precent"> <span :class="{arrow:numPrecent<0}" ...
- C# windows服务:通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)
步骤: 1.运行--〉cmd:打开cmd命令框 2.在命令行里定位到InstallUtil.exe所在的位置 InstallUtil.exe 默认的安装位置是在C:/Windows/Microsoft ...
- pandas.DataFrame.to_excel
1. file_name = 'aa.xlsx' df.to_excel(file_name) #这种file_name不能重复,已经生成过的就会报错 writer = pd.ExcelWriter( ...
- redis 存储java对象 两种方式
根据redis的存储原理,Redis的key和value都支持二进制安全的字符串 1.利用序列化和反序列化的方式存储java对象我们可以通过对象的序列化与反序列化完成存储于取出,这样就可以使用redi ...
- 启用mongodb授权认证
linux下 1.以–auth 启动mongod 2.在配置文件mongod.conf 中加入 auth = true
- Flux architecture
[Flux architecture] Flux is a pattern for managing data flow in your application. The most important ...