01

什么是 laravel

Laravel 是 Taylor Otwell 开发的一款基于 PHP 语言的 Web 开源框架,采用了 MVC 的架构模式。
由于 Laravel 具备 Rails 敏捷开发等优秀特质,深度集成 PHP 强大的扩展包(Composer)生态,让 Laravel 在发布之后的短短几年时间得到了极其迅猛的发展。
laravel 在过去七年成长速度,在 php 框架自 有史以来也是最快的。

02

路由

laravel 的路由也是自身框架的一个特征点,它的路由样式用法丰富且又简洁明了。让开发者甚是喜欢。接下来讲解的每个模块,都是为了刚接触 laravel 框架的开发者 更容易搞懂 laravel 全局核心要点。以及方便熟悉laravel 的开发者进行参考。

  1. 路由器允许响应任何 HTTP 请求的路由
    Route::get($uri, callback);Route::post(callback); Route::post(callback);Route::post(uri, callback);Route::put(callback); Route::put(callback);Route::put(uri, callback);Route::patch(callback); Route::patch(callback);Route::patch(uri, callback);Route::delete(callback); Route::delete(callback);Route::delete(uri, callback);Route::options(callback); Route::options(callback);Route::options(uri, $callback);

  2. 有时候一个响应多个 Http 请求,这时候使用 match 方法,也可以使用any 方法,any 方法可以实现响应所有 HTTP 请求的路由。
    Route::match([‘get’, ‘post’], ‘/’, function () {
    //支持两种方法
    });

Route::any(‘foo’, function () {
//可以接收所有的方法
});

  1. 访问控制(节流)
    Laravel 包含了一个 middleware 用于控制应用程序对路由的访问。如果想要使用, 请将 throttle 中间件分配给一个路由或者一个路由组。throttle 中间件会接收两个参数,这两个参数决定了在给定的分钟数内可以进行的最大请求数。例如,让我们指定一个经过身份验证并且用户每分钟访问频率不超过 60 次的路由组:
    Route::middleware(‘auth:api’, ‘throttle:60,1’)->group(function () {
    Route::get(’/user’, function () {
    //
    });
    });

  2. 路由缓存/清理
    (注:基于闭包的路由无法被缓存。要使用路由缓存,你需要将代码从闭包转移到控制器类中)
    如果您的应用程序只使用了基于控制器的路由,那么您应该利用 Laravel 的路由缓存。路由缓存会大大减少注册所有路由所需的时间。在某些情况下,路由注册的速度甚至能快上 100 倍。要生成路由缓存,只需执行 artisan 命令
    php artisan route:cache
    运行此命令后,将在每个请求上加载缓存的路由文件。记住,如果添加了任何新的路由,则需要重新生成新的路由缓存。因此,您应该在项目部署的时候运行 route:cache 命令。
    您可以使用 route:clear 命令来清除路由缓存:
    php artisan route:clear

03

中间件

laravel 的中间件想必大家不会那么陌生吧。它自带了一些中间件。如果大家想具体知道 laravel 具体启动哪些中间件,我们是可以通过 app\Http\Kernel.php 文件查看的。对于以\App\Http\Middleware\ 头的中间件(位于 app/Http/Middleware 目录)是我们可以对其行为进行定制的中间件。

下面我也会讲一些中间件,介绍它的项目文件、地址、以及作用,方便大家查找参考。
(1)Authenticate 中间件
源文件:app\Http\Middleware\Http\Middleware\Authenticate.php
作用:用户身份验证。可修改 redirectTo 方法,返回未经身份验证的用户应该重定向到的路径。

(2)CheckForMaintenanceMode 中间件
源文件:app\Http\Middleware\CheckForMaintenanceMode.php
作用:检测项目是否处于 维护模式。可通过 $except 数组属性设置在维护模式下仍能访问的网址。

(3)EncryptCookies 中间件
源文件:app\Http\Middleware\EncryptCookies.php
作用:对 Cookie 进行加解密处理与验证。可通过 $except 数组属性设置不做加密处理的 cookie。

(4)RedirectIfAuthenticated 中间件
源文件:app\Http\Middleware\RedirectIfAuthenticated.php
作用:当请求页是 注册、登录、忘记密码 时,检测用户是否已经登录,如果已经登录,那么就重定向到首页,如果没有就打开相应界面。可以在 handle 方法中定制重定向到的路径。

(5)TrimStrings 中间件
源文件:app\Http\Middleware\TrimStrings.php
作用:对请求参数内容进行 前后空白字符清理。可通过 $except 数组属性设置不做处理的参数。

(6)TrustProxies 中间件
源文件:app\Http\Middleware\TrustProxies.php
作用:配置可信代理。可通过 proxies属性设置可信代理列表,proxies 属性设置可信代理列表,proxies属性设置可信代理列表,headers 属性设置用来检测代理的 HTTP 头字段。

(7)VerifyCsrfToken 中间件
源文件:app\Http\Middleware\VerifyCsrfToken.php
作用:验证请求里的令牌是否与存储在会话中令牌匹配。可通过 $except 数组属性设置不做 CSRF 验证的网址。

04

laravel 迁移/队列

  1. 迁移
    可以利用 raw() 语句来执行原生 SQL :
    $table->timestamp(‘created_at’)->default(DB::raw(‘CURRENT_TIMESTAMP’));
    以上这种用法适用于 Laravel 官方支持的所有数据库驱动器。
    自 Laravel 5.1.25 以后,可以使用 useCurrent() ,如下:
    $table->timestamp(‘created_at’)->useCurrent();

  2. 队列
    Laravel 队列为不同的后台队列服务提供统一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于关系型数据库的队列。

队列配置文件存放在 config/queue.php 。每一种队列驱动的配置都可以在该文件中找到,包括数据库,Beanstalkd ,Amazon SQS,Redis,以及同步(本地使用)驱动。其中还包含了一个 null 队列驱动用于那些放弃队列的任务。
(因 laravel 队列系统内容过多,这里只为参考者抛砖引玉,详细自行goole)

05

laravel 核心服务容器

Laravel 的核心就是一个 IoC 容器,根据文档,称其为 “服务容器”,顾名思义,该容器提供了整个框架中需要的一系列服务。

Laravel 服务容器是用于管理类的依赖和执行依赖注入的工具。依赖注入这个花俏名词实质上是指:类的依赖项通过构造函数,或者某些情况下通过「setter」方法「注入」到类中。

绑定基础
绑定一个单例可以在 App\Providers\AppServiceProvider 中的 register 方法中注册。singleton 方法将类或接口绑定到只解析一次的容器中。一旦单例绑定被解析,相同的对象实例会在随后的调用中返回到容器中:
KaTeX parse error: Undefined control sequence: \API at position 31: …leton('HelpSpot\̲A̲P̲I̲', function (app) {
return new HelpSpot\API($app->make(‘HttpClient’));
})

具体资料可参考下方两个链接:
服务容器-1 :https://learnku.com/docs/laravel/5.5/container/1289
服务容器-2 :https://www.insp.top/learn-laravel-container

laravel框架简单总结相关推荐

  1. php中间件怎么使用,laravel框架中间件简单使用方法示例

    本文实例讲述了laravel框架中间件简单使用方法.分享给大家供大家参考,具体如下: laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如 ...

  2. tp框架中引入php文件,Laravel框架及ThinkPHP框架超级简单的公共文件引入(保留变量)...

    为什么要把两个框架放在一起来说呢?额...因为TP5.1.x与Laravel实在是太像了,本文主要讲述关于大家顶部及底部文件引入的问题. 但是如果顶部和尾部只是单纯的html代码还好说,但是里面通常有 ...

  3. ueditor集成实例php,Laravel框架集成UEditor编辑器的方法图文与实例详解

    本文实例讲述了Laravel框架集成UEditor编辑器的方法.分享给大家供大家参考,具体如下: 一. 背景 在项目开发的过程中,免不了使用修改功能,而富文本编辑器是极为方便的一种推荐,当然,个人认为 ...

  4. php laravel框架项目实例

    laravel框架评价,转知乎的, laravel是个好框架,我也在学习和使用,并且在公司里推广,新项目就是用的laravel.但是我觉得题主说thinkphp是垃圾我是不同意的,国外的月亮真的就更圆 ...

  5. laravel php配置,PHP Laravel框架路由配置及设置技巧全解

    Laravel框架在PHP开发中使用十分广泛,本文主要对Laravel框架中的路由设置作详细的介绍,Laravel的路由配置非常灵活,如何设置好路由对PHP应用来说也是相当关键的. 基本路由 您的应用 ...

  6. laravel框架中文手册_laravel请求参数校验方法

    对于后端开发而言,前端request请求中的参数校验是一个必不可少的环节.无论传来的参数是id还是email还是其他的参数,我们都要对参数的类型.大小.格式等等做这样或者那样的校验,然后才进行逻辑处理 ...

  7. laravel框架应用和composer扩展包开发

    laravel5.5+ laravel官方地址 laravel是目前最流行的php框架,发展势头迅猛,应用非常广泛,有丰富的扩展包可以应付你能想到的各种应用场景,laravel框架思想前卫,跟随时代潮 ...

  8. PHP在WPS中的应用,PHP+Laravel的简单应用教程【ajax的使用】,wps的使用教程

    PHP+Laravel的简单应用教程[ajax的使用]PHP·拉弗尔的简单应用教程[阿贾克斯的使用],下面由Laravel框架教程栏目给大家介绍PHP Laravel的简单应用教程[阿贾克斯的使用], ...

  9. php框架所用到的核心概念,【PHP】PHP现代框架代表-Laravel框架核心技术特性

    一.php语言特点及发展现状 1.服务端脚本语言,自由度太大 ,一个业务逻辑可言写在模型里,控制器里,也可以单独封装成一个类,甚至可以嵌入到html里,这样势必会造成混乱,业务逻辑散落在各处,尤其对于 ...

  10. Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理

    Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理 本博文主要介绍 Laravel 框架中 Eloquent  对一对多关系的处理以及在 Laravel Administra ...

最新文章

  1. 小程序 reduce_使用reduce制作的10个更多实用程序功能
  2. html 中设置样式方式,在html元素中设置css样式的方式是什么
  3. 无法启动outlook “外出时的助理程序”
  4. html5 css3 设计模式,html5+css3设计模式
  5. 趣学python3(32)-enumerate,zip
  6. python 学习经验 转自(http://www.elias.cn/Python/HomePage)
  7. EBS模块介绍和概念解释
  8. e.printStackTrace() 会导致锁死?
  9. mysql 从库 问题_一篇文章帮你解决Mysql 中主从库不同步的问题
  10. 小米远程连接服务器,人文远程桌面
  11. 人脸对齐 matlab,常用几种人脸对齐算法ASM/AAM/CLM/SDM
  12. 为你的域名添加子域名(二级域名)并绑定网站
  13. 精益创业实战 - 第8章 针对解决方案做客户访谈
  14. ECPC16-E. Jumping(bfs)
  15. 学习了pr后的收获_我的PR小结
  16. php liger 表格排序,LigerUI之grid表格点击表头标题排序实现
  17. #453 原汤话原食:除夕夜请热心市民陪我销毁一下烟花爆竹
  18. 第三类边界条件 matlab,matlab怎么解偏微分方程
  19. 大一 C语言课程设计
  20. Android版本新特性(6-12)(13预览)

热门文章

  1. 信息安全理论与技术知识点总结
  2. [转载]马士兵Java视频教程 —— 学习顺序
  3. 软件管理理论—目标管理 SMART 原则
  4. Ubuntu 9.04安装永中Office 2009
  5. 科来过滤jd提示语法解析器错误的解决问题方法
  6. 泛微mysql密码_泛微ecology OA数据库配置信息泄露
  7. 集成系列:低代码对接泛微e-cology
  8. IBM X System ServerGuide 8.41 服务器 系统安装 引导盘图文教程
  9. 计算机硬盘分区重置,重置计算机磁盘分区后如何恢复丢失的数据
  10. java VM option