`
dcj3sjt126com
  • 浏览: 1868480 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lumen写事件

    博客分类:
  • PHP
 
阅读更多

1.在事件里面定义事件

<?php

/**

 * Created by PhpStorm.

 * User: maxwelldu

 * Date: 2018/2/8

 * Time: 上午12:17

 */

 

namespace App\Events;

 

use Illuminate\Queue\SerializesModels;

use Log;

use rekoon\common\models\Test;

 

class TestEvent extends Event

{

    use SerializesModels;

    public $test;

 

    public function __construct(Test $test)

    {

        Log::info('init Test Event' . json_encode($test));

        $this->test = $test;

    }

 

    /**

     * Get the channels the event should be broadcast on.

     *

     * @return array

     */

    public function broadcastOn()

    {

        return [];

    }

}

 

2.在监听里面添加监听器

<?php

/**

 * Created by PhpStorm.

 * User: maxwelldu

 * Date: 2018/2/8

 * Time: 上午12:18

 */

 

namespace App\Listeners;

 

use Log;

use App\Events\TestEvent;

class TestListener

{

    public function __construct()

    {

    }

    public function handle(TestEvent $event) {

        Log::info('deal Test with : ' . $event->test);

    }

}

 

3.在服务提供者里面添加事件对应监听器的对应关系

<?php

 

namespace App\Providers;

 

use Laravel\Lumen\Providers\EventServiceProvider as ServiceProvider;

 

class EventServiceProvider extends ServiceProvider

{

    /**

     * The event listener mappings for the application.

     *

     * @var array

     */

    protected $listen = [

        'App\Events\SomeEvent' => [

            'App\Listeners\EventListener'

        ],

        'App\Events\TestEvent' => [

            'App\Listeners\TestListener'

        ]

    ];

 

//    protected $subscribe = [

//        'App\Listeners\TestListener'

//    ];

}

 

 

4.在控制器里面触发事件

 /**

     * 创建一个测试对象

     * @param Request $request

     * @return \Illuminate\Http\JsonResponse

     */

    public function createTest(Request $request)

    {

        /**

         * 数据验证

         */

        $this->validate($request, [

            'name' => 'required',

        ]);

 

        // 添加数据

        $car = Test::create($request->all());

        if (!is_null($car)) {

            $test = new Test();

            $test->name = 'maxwelldu';

 

            Log::info('start send test event');

//            event(new TestEvent($test));

            Event::fire(new TestEvent($test));

//            Event::fire(new TestEvent($test));

        }

        return response()->json($car);

    }

 

5.在bootstrap/app.php中启动事件服务提供者

$app->register(App\Providers\EventServiceProvider::class);

 

6.触发这个控制器的方法,在postman里面请求

 

7.查看storage/logs/lumen.log里面是否有打印的日志信息

分享到:
评论

相关推荐

    用Lumen写API教程

    Lumen的文档通常会详细介绍如何安装、创建、配置和运行一个Lumen项目,并且在创建API的过程中,还会涉及到路由、中间件、模型和视图等概念的实践应用。在使用Lumen编写API时,通常遵循以下步骤: 1. 安装Lumen 安装...

    Laravel开发-lumen-annotations

    在这个主题中,我们将深入探讨 Lumen 如何利用注解来简化开发过程,尤其是路由和事件绑定。 ### 1. 路由注解 在传统的 Laravel 或 Lumen 开发中,我们通常在 `routes/web.php` 或 `routes/api.php` 文件中定义路由...

    Laravel开发-lumen-generators

    在本文中,我们将深入探讨Laravel开发中的一个重要组件——Lumen Generators,它与Lumen框架密切相关。Lumen是Laravel公司推出的一个轻量级的微服务架构,旨在为小型API提供快速、高效的开发环境。Lumen Generators...

    Laravel开发-lumen-helpers

    【Laravel开发与Lumen助手】\n\n在Laravel框架的世界中,Lumen是一个轻量级的微服务架构,专为构建API和微型应用程序而设计。虽然Lumen继承了Laravel的许多核心特性,但它简化了许多功能以提高性能和速度。然而,这...

    lumen-passport, 使用Lumen制作 Laravel 护照.zip

    lumen-passport, 使用Lumen制作 Laravel 护照 lumen护照 使用Lumen制作 Laravel 护照一个简单的服务提供者,使 Laravel Passport与依赖项PHP&gt; = 5.6.3流明&gt; = 5.3通过Composer安

    Lumen登录实例代码

    在这个“Lumen登录实例代码”中,我们可以期待看到如何在 Lumen 上实现用户登录功能的详细步骤。Lumen 提供了 Laravel 的核心组件,包括路由、中间件、控制器和数据库操作,但具有更小的体积和更高的性能,使得快速...

    Laravel开发-lumen-notification

    本篇文章将深入探讨“Lumen-notification”,这是一个针对Lumen 5.x版本的Laravel通知系统的包装器,它简化了在Lumen中实现通知功能的过程。 首先,我们需要理解Laravel的通知系统。Laravel的通知允许开发者通过...

    Laravel开发-lumen

    Lumen以其高性能、易于学习和强大的功能著称,使得开发者能够快速地构建高质量的服务。 在结合StormPath的场景下,Lumen可以提供一种安全、高效的用户认证和授权解决方案。StormPath是一款云服务,它为开发者提供了...

    Laravel开发-lumen-auth-acl

    在本文中,我们将深入探讨基于Laravel框架的微型Web服务框架Lumen的权限管理和认证(Auth)机制,以及如何实现访问控制列表(ACL)。Lumen是Laravel的一个精简版,设计用于快速构建轻量级API,但它同样支持强大的...

    Laravel开发-lumen-framework

    **Laravel 开发 - Lumen 框架详解** Lumen 是 Laravel 生态系统中的一个微型框架,由 Taylor Otwell 创建,专为构建 API 和 微服务架构而设计。Lumen 提供了与 Laravel 类似的语法和结构,但更加轻量级,性能更优,...

    Laravel开发-lumen-cors

    在本文中,我们将深入探讨Laravel开发中的一个关键主题——使用Lumen框架处理跨源资源共享(CORS)。Lumen是Laravel的一个轻量级版本,专为构建微服务和API而设计。CORS是一个浏览器安全策略,允许Web应用程序从不...

    Laravel/Lumen 使用 Redis队列

    Laravel/Lumen 使用 Redis队列 Laravel/Lumen 框架提供了一个队列系统,允许开发者将耗时操作或高并发操作异步执行,以缓解系统压力、提高系统响应速度和负载能力。在这个系统中,Redis 可以作为队列驱动,负责存储...

    Laravel开发-lumen-starter

    【Laravel开发-lumen-starter】是一个基于Laravel框架的微服务开发项目,它为开发者提供了一个快速入门的模板,帮助他们轻松构建轻量级、高性能的API和Web服务。Lumen是Laravel的一个分支,专为构建API和微服务架构...

    Laravel开发-lumen-transformer

    **Laravel 开发 - Lumen Transformer** 在 Laravel 开发中,数据转换是一个关键步骤,它涉及到将数据库中的数据转换为适合 API 输出的格式。Lumen,作为 Laravel 的一个轻量级版本,同样需要处理这样的需求。`Lumen...

    Laravel开发-lumen-oauth2-dynamodb

    Lumen是Laravel的一个轻量级版本,适合构建APIs和微服务。OAuth2是一种授权协议,它允许第三方应用在用户许可的情况下访问其存储在服务提供者处的信息,而无需获取用户的用户名和密码。 首先,我们来详细了解一下...

    Laravel开发-lumen-config-cache

    Lumen,作为Laravel的精简版,虽然相对小巧,但同样支持配置缓存功能,这对于提升应用的性能非常有帮助。本文将详细介绍如何在Lumen中使用`php artisan config:cache`命令,以及这一操作背后的知识点。 1. **配置...

    Laravel开发-lumen-swagger-generators

    Lumen是Laravel的一个微服务版本,专为构建API和微服务而设计,具有轻量、快速的特点。Swagger是一个流行的API文档工具,它能帮助开发者通过OpenAPI规范来定义、设计、构建、发现和维护RESTful API。 "Laravel开发-...

    Laravel开发-pdf-lumen-bundle

    这个名为"Laravel开发-pdf-lumen-bundle"的项目,显然关注的是如何在Lumen应用中生成PDF文件。 PDF(Portable Document Format)是一种通用的文件格式,能够保留文档的原始布局和格式,使得用户在不同设备和操作...

Global site tag (gtag.js) - Google Analytics