laravel框架简单总结

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, c a l l b a c k ) ; R o u t e : : p o s t ( callback); Route::post( callback);Route::post(uri, c a l l b a c k ) ; R o u t e : : p u t ( callback); Route::put( callback);Route::put(uri, c a l l b a c k ) ; R o u t e : : p a t c h ( callback); Route::patch( callback);Route::patch(uri, c a l l b a c k ) ; R o u t e : : d e l e t e ( callback); Route::delete( callback);Route::delete(uri, c a l l b a c k ) ; R o u t e : : o p t i o n s ( 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
作用:配置可信代理。可通过 p r o x i e s 属 性 设 置 可 信 代 理 列 表 , proxies 属性设置可信代理列表, proxiesheaders 属性设置用来检测代理的 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel 是一款优秀的 PHP Web 应用开发框架,它拥有优秀的文档、丰富的功能和完善的生态系统。在使用 Laravel 进行 Web 应用开发时,我们可以快速构建出高质量的 Web 应用,提高开发效率和质量。 在使用 Laravel 进行 Web 应用开发时,需要掌握以下几个方面: 1. 环境搭建 在使用 Laravel 进行 Web 应用开发之前,需要先搭建好开发环境。通常情况下,我们需要安装 PHP、Composer 和 Laravel。在 Windows 系统上,可以使用 XAMPP 或 WAMP 等工具来搭建环境;在 Linux 系统上,可以使用 apt-get 或 yum 等包管理器来安装 PHP 和 Composer;在 macOS 系统上,则可以使用 Homebrew 来进行安装。 2. 路由 路由是 Web 应用中非常重要的一个部分,它负责将 URL 映射到相应的控制器方法上。在 Laravel 中,我们可以使用 Route 类来定义路由,例如: ```php Route::get('/', function () { return view('welcome'); }); ``` 上述代码定义了一个 GET 请求的路由,当用户访问网站根目录时,会返回一个名为 `welcome` 的视图。 3. 控制器 控制器是 Laravel 中用来处理 HTTP 请求的一种方式。通常情况下,我们会将不同的路由映射到不同的控制器方法上,例如: ```php Route::get('/users', 'UserController@index'); ``` 上述代码定义了一个 GET 请求的路由,当用户访问 `/users` 时,会调用 `UserController` 类中的 `index` 方法来处理请求。 4. 视图 视图是 Laravel 中用来渲染 HTML 页面的一种方式。通常情况下,我们会将控制器中处理完的数据传递给视图,并在视图中进行渲染,例如: ```php public function index() { $users = User::all(); return view('users.index', ['users' => $users]); } ``` 上述代码调用了 `User` 模型中的 `all` 方法来获取所有的用户数据,并将其传递给名为 `users.index` 的视图进行渲染。 5. 数据库操作 在 Laravel 中,我们可以使用 Eloquent ORM 来进行数据库操作。Eloquent ORM 是一种简单而优美的 ActiveRecord 实现,它允许我们通过定义模型来进行数据库操作,例如: ```php class User extends Model { // } ``` 上述代码定义了一个名为 `User` 的模型,它对应着数据库中的 `users` 表。使用 Eloquent ORM,我们可以很方便地进行数据库操作,例如: ```php $user = new User; $user->name = 'John Doe'; $user->email = 'john@example.com'; $user->save(); ``` 上述代码创建了一个新的用户,并将其保存到数据库中。 总之,Laravel 是一个非常优秀的 PHP Web 应用开发框架,它可以帮助我们快速构建出高质量的 Web 应用。在学习和使用 Laravel 的过程中,我们需要掌握以上几个方面的知识,才能更好地进行 Web 应用开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值