首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Laravel核心概念:服务容器(ServiceContainer),服务提供者(Service Provider),门面(Facade),契约(Contracts)

    我们可以绑定某个类的接口实现,当注入接口类时会注入绑定该接口的那个类 interface Person{ public function walk(); } class Human implements...启动时并不会立马延迟服务,而是等用到之后在加载 方法 要延迟加载提供者,需要实现 \Illuminate\Contracts\Support\DeferrableProvider 接口并设置provides...\Contracts\Broadcasting\Factory Broadcast (Instance) Illuminate\Contracts\Broadcasting\Broadcaster...\PasswordBroker auth.password.broker Queue Illuminate\Queue\QueueManager queue Queue (Instance) Illuminate...\Contracts\Queue\Queue queue.connection Queue (Base Class) Illuminate\Queue\Queue Redirect Illuminate

    3.3K31

    PHP-web框架Laravel-事件(二)

    四、事件的处理在Laravel框架中,事件监听器通常用于执行特定的操作。...事件监听器可以是任何实现了Illuminate\Contracts\Queue\ShouldQueue接口的类。这使得它们可以与队列一起使用,从而在后台异步执行。...下面是一个简单的事件监听器示例:use App\Events\UserRegistered;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate...它实现了ShouldQueue接口,这意味着它可以与队列一起使用。它还使用了InteractsWithQueue特征,这使得它可以与队列交互。handle方法是事件监听器的主要方法。...六、事件的测试在Laravel框架中,可以使用测试工具来测试事件。测试工具可以帮助我们确保事件和事件监听器按预期工作。

    82150

    浅析 Laravel 底层原理:契约(Contracts)「建议收藏」

    简介 Laravel 中的契约是指框架提供的一系列定义核心服务的接口(interface)。...例如,Illuminate\Contracts\Queue\Queue 契约定义了队列任务所需的方法,而 Illuminate\Contracts\Mail\Mailer 契约定义了发送电子邮件所需的方法...php namespace App\Orders; use Illuminate\Contracts\Cache\Repository as Cache; class Repository...简单性 当所有 Laravel 的服务都使用简洁的接口定义,就很容易判断给定服务提供的功能。可以将契约视为说明框架功能的简洁文档。 除此之外,当依赖的接口足够简洁时,代码的可读性和可维护性会大大提高。...php namespace App\Listeners; use App\User; use App\Events\OrderWasPlaced; use Illuminate\Contracts

    1.3K10

    浅析 Laravel 底层原理:契约(Contracts)

    简介 Laravel 中的契约是指框架提供的一系列定义核心服务的接口(interface)。...例如,Illuminate\Contracts\Queue\Queue 契约定义了队列任务所需的方法,而 Illuminate\Contracts\Mail\Mailer 契约定义了发送电子邮件所需的方法...php namespace App\Orders; use Illuminate\Contracts\Cache\Repository as Cache; class Repository {...简单性 当所有 Laravel 的服务都使用简洁的接口定义,就很容易判断给定服务提供的功能。可以将契约视为说明框架功能的简洁文档。 除此之外,当依赖的接口足够简洁时,代码的可读性和可维护性会大大提高。...php namespace App\Listeners; use App\User; use App\Events\OrderWasPlaced; use Illuminate\Contracts\

    1.5K20

    Laravel 5.0 之事件及处理程序

    这行命令会生成下面的代码: namespace SaveMyProposals\Events; use SaveMyProposals\Events\Event; use Illuminate\Queue...\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldBeQueued; class SendMailInSomeParticularContext...但那当然不是 Laravel 的思路, Laravel 提供了事件总线让以上这一系列的工作更简单,更具有一致性和全局性: \Event::fire(new ThingWasDone($param1, $...ShouldBeQueued 与命令系统的机制一样,你可以让你的事件实现 Illuminate\Contracts\Queue\ShouldBeQueued 接口,从而使事件处理程序被加入到队列中异步执行...;也可以给你的事件处理程序加上 Illuminate\Queue\InteractsWithQueue 的 trait,使事件处理程序的 handle 方法变得容易从外部访问,从而使事件处理程序可以和事件队列进行交互

    1.6K50

    Laravel源码解析之用户认证系统(一)

    下表列出了Laravel Auth系统的核心部件 名称 作用 Auth AuthManager的Facade AuthManager Auth认证系统面向外部的接口,认证系统通过它向应用提供所有与用户认证相关的功能...Laravel自带的认证系统默认使用自带的 SessionGuard , SessionGuard除了实现 \Illuminate\Contracts\Auth\Guard契约里的方法还实现 Illuminate...Illuminate\Contracts\Auth\Guard 这个文件定义了基础的认证方法 namespace Illuminate\Contracts\Auth; interface Guard...$user); } Illuminate\Contracts\Auth\StatefulGuard 这个Contracts定义了Laravel auth系统里认证用户时使用的方法,除了认证用户外还会涉及用户认证成功后如何持久化用户的认证状态...定义了用户提供器契约(interface),所有用户提供器都要实现这个接口里定义的抽象方法,因为实现了统一的接口所以使得无论是Laravel 自带的还是自定义的用户提供器都能够被Guard使用。

    3.9K30
    领券