第1讲-Laravel介绍

1.1 什么是Laravel

laravel是目前一个比较主流的框架,现在很多互联网的公司都在使用该框架。该框架的前身是symfony框架

Laravel的定位就是做一个简洁使用程序员的框架。为web艺术而生。

Laravel学习参考:

官网:https://www.laravel.com/

地址:http://laravelacademy.org/

地址:http://www.golaravel.com/

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框架的更多相关文章

  1. [php]laravel框架容器管理的一些要点

    本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章很长,但是内容应该很有用,希望有需要的朋友能看到.php经验有限,不到位的地方,欢迎帮忙指正. ...

  2. php的laravel框架快速集成微信登录

    最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_provider,详细的介绍请往下阅读. 本文面向的是php语言laravel框架的用户,介绍的是 ...

  3. laravel 框架使用总结 limit

    后台开发就是数据的各种处理很多时候需要做到分页,但是在laravel中使用limit做分页的时候会出现问题,偏移量和每页的条数放进去好像不好使了 下面推荐给大家一种在laravel框架中非常好用的写法 ...

  4. laravel框架总结(十) -- 返回值

    以前用CI框架对于返回值没有过多关注,但是发现使用laravel框架的时候出现了一些小问题,特意实践总结了一些常用情形,希望对大家有所帮助   先理解几个概念: 1>StdClass 对象=&g ...

  5. Laravel框架数据库CURD操作、连贯操作使用方法

    Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍.   Laravel是一套简洁.优雅的PHP Web开 ...

  6. [麦先生]Laravel框架实现发送短信验证

    今天在做到用户注册和个人中心的安全管理时,我借助实现第三方短信平台在Laravel框架中进行手机验证的设置;  由于我们做的是一个为客户提供医疗咨询和保健品网站,所以对客户个人隐私的保护显得尤为重要, ...

  7. [麦先生]初学Laravel框架与ThinkPHP框架的不同(2)

    在经过了一段时间的开发后,我对Laravel框架的认识又在逐步的加深,对于这个世界占有量NO.1的框架...  我想说,我已经在逐步的感受到他的恐怖之处... 一.建表--Laravel在数据库建表上 ...

  8. 使用 Laravel 框架:成为微信公众平台开发者

    转: http://ninghao.net/blog/1441 作者:王皓发布于:2014-05-30 13:16更新于:2014-05-31 12:05 我们可以使用Laravel 框架为微信公众平 ...

  9. laravel框架总结(四) -- 服务容器

    1.依赖 我们定义两个类:class Supperman 和 class Power,现在我们要使用Supperman ,而Supperman 依赖了Power class Supperman { p ...

  10. php后台开发(二)Laravel框架

    php后台开发(二)Laravel框架 为了提高后台的开发效率,往往需要选择一套适合自己的开发框架,因此,选择了功能比较完善的Laravel框架,仔细学来,感觉和Python语言的框架Django非常 ...

随机推荐

  1. OpenWrt上搭建纯L2TP服务器[ZT]

    转自:http://www.openwrt.pro/post-389.html 纯L2TP(l2tp + ppp,无IPSec) 首先安装xl2tpd软件包 opkg update opkg inst ...

  2. Android DevArt2:Android 5.0下 Dialog&AlertDialog 并不会影响Activity的生命周期

    先给出结论:Dialog和AlertDialog并不会影响到Activity的生命周期,但会影响到Activity的优先级. 核心代码: onCreated中: Resources resources ...

  3. delphi 实现用户自定义通知(User Notification)

    unit Form_Main; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Sy ...

  4. 在iOS上使用ffmpeg播放视频

    国外靠谱的有这几个:1.Mooncatventures group https://github.com/mooncatventures-group 2.KxMoviePlayer (use Open ...

  5. KJMusic完整音乐项目

    KJMusic完整音乐项目 KJMusic是一个完整音乐项目,这个项目从欢迎页面到首页以及音乐播放页面都做得非常不错.并且本音乐支持本地音乐,和音乐电台,支持切换上下首个.本项目还支持侧滑出现menu ...

  6. Signing Your Applications(Android签名相关)

    In this document Signing Overview Signing in Debug Mode Signing in Release Mode Signing Android Wear ...

  7. py3 读入和写入csv,txt文件

    import numpy as npimport pandas as pdimport time import datetimeimport csv http://pandas.pydata.org/ ...

  8. pandas.read_csv用法(转)

    的数据结构DataFrame,几乎可以对数据进行任何你想要的操作. 由于现实世界中数据源的格式非常多,pandas也支持了不同数据格式的导入方法,本文介绍pandas如何从csv文件中导入数据. 从上 ...

  9. html页面嵌套---分享功能

    1.使用原因 项目中用到了thymeleaf去渲染模板,但是我们这有一个分享的页面,分享出去的页面要加上与生成模板不一样的内容.因为重新再加一套模板又会引起内容的重复与资源浪费.这里就用到了JS的lo ...

  10. 04_web基础(九)考核与评估