位置: 编程技术 - 正文

深入解析PHP的Laravel框架中的event事件操作(php解析配置文件)

编辑:rootadmin

推荐整理分享深入解析PHP的Laravel框架中的event事件操作(php解析配置文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php解析配置文件,php解析原理,php 解析url,php 解析url,php解析器是什么,php解析器是什么,php 解析,php 解析,内容如对您有帮助,希望把文章链接给更多的朋友!

有时候当我们单纯的看 Laravel 手册的时候会有一些疑惑,比如说系统服务下的授权和事件,这些功能服务的应用场景是什么,其实如果没有经历过一定的开发经验有这些疑惑是很正常的事情,但是当我们在工作中多加思考会发现有时候这些服务其实我们一直都见过。下面就事件、事件监听举一个很简单的例子你就会发现。

&#; 这个例子是关于文章的浏览数的实现,当用户查看文章的时候文章的浏览数会增加1,用户查看文章就是一个事件,有了事件,就需要一个事件监听器,对监听的事件发生后执行相应的操作(文章浏览数加1),其实这种监听机制在 Laravel 中是通过观察者模式实现的.

注册事件以及监听器首先我们需要在 app/Providers/目录下的EventServiceProvider.php中注册事件监听器映射关系,如下:

然后项目根目录下执行如下命令

该命令完成后,会分别自动在 app/Events和app/Listensers目录下生成 BlogView.php和BlogViewListener.php文件。

定义事件

其实看到这些你会发现该事件类只是注入了一个 Post实例罢了,并没有包含多余的逻辑。

定义监听器事件监听器在handle方法中接收事件实例,event:generate命令将会自动在handle方法中导入合适的事件类和类型提示事件。在handle方法内,你可以执行任何需要的逻辑以响应事件,我们的代码实现如下:

注释中也已经说明了一些逻辑。

触发事件事件和事件监听完成后,我们要做的就是实现整个监听,即触发用户打开文章事件在此我们使用和 Event提供的 fire方法,如下:

深入解析PHP的Laravel框架中的event事件操作(php解析配置文件)

现在打开页面发现数据库中的`view_cache已经正常加1了,这样整个就完成了。

事件广播简介:Laravel 5.1 之中新加入了事件广播的功能,作用是把服务器中触发的事件通过websocket服务通知客户端,也就是浏览器,客户端js根据接受到的事件,做出相应动作。本文会用简单的代码展示一个事件广播的过程。

依赖:

redis nodejs, socket.io laravel 5.1

配置:

config/broadcasting.php中,如下配置'default' => env('BROADCAST_DRIVER', 'redis'),,使用redis作为php和js的通信方式。 config/database.php中配置redis的连接。

定义一个被广播的事件:根据Laravel文档的说明,想让事件被广播,必须让Event类实现一个IlluminateContractsBroadcastingShouldBroadcast接口,并且实现一个方法broadcastOn。broadcastOn返回一个数组,包含了事件发送到的channel(频道)。如下:

被广播的数据:默认情况下,Event中的所有public属性都会被序列化后广播。上面的例子中就是$user_id这个属性。你也可以使用broadcastWith这个方法,明确的指出要广播什么数据。例如:

Redis和Websocket服务器:需要启动一个Redis,事件广播主要依赖的就是redis的sub/pub功能,具体可以看redis文档需要启动一个websocket服务器来和client通信,建议使用socket.io,代码如下:

这里需要注意的是redis.on方法的定义,接收到消息后,给client发送一个事件,事件名称为channel + ':' + message.event。

客户端代码:客户端我们也使用socket.io,作为测试,代码尽量简化,仅仅打印一个接受到的数据即可。如下:

服务器触发事件:直接在router中定义个事件触发即可。如下:

测试:

启动redis 启动websocket 打开带有客户端代码的页面,可以看到websocket已经连接成功。 触发事件,打开另一个页面 localhost/event。

这时就可以发现,第一个页面的console中打印出了Object{user_id: 3},说明广播成功。

PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面 AdminLTE是一个基于Bootstrap3.x的免费高级管理控制面板主题,完全响应式管理,适合从小型移动设备到大型台式机很多的屏幕分辨率。AdminLTE的特点:充分

PHP实现补齐关闭的HTML标签 本文实例讲述了PHP实现补齐关闭的HTML标签。分享给大家供大家参考,具体如下:很多时候,在我们做文章截取摘要的时候,如果出现HTML的内容,会出现

php获取文件后缀的9种方法 本文实例为大家分享了9种php获取文件后缀的方法,供大家参考,具体内容如下php/***CreatedbyPhpStorm.*User:liuft*Date:/3/7*Time::*///第一种//functionget_extension

标签: php解析配置文件

本文链接地址:https://www.jiuchutong.com/biancheng/292478.html 转载请保留说明!

上一篇:Android App中DrawerLayout抽屉效果的菜单编写实例

下一篇:PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面(laravel入门与实战:构建主流php应用开发框架)

  • 工资延期发放最多不能超过多少天
  • 报关单完成出口后收汇期限4月30日
  • 捐赠劳务支出可在企业所得税前扣除吗
  • 小规模增值税纳税申报
  • 进口货物销售不开票
  • 小规模纳税人能抵扣进项发票吗
  • 权益性支出与收益性支出区别
  • 外资企业撤退
  • 客观原因导致的没见过世面
  • 厂房怎么计提折旧费
  • 预缴的所得税怎么做分录
  • 经营现金流动比率公式
  • 销售货物并运输增值税
  • 企业网上申报国税流程
  • 公司和个人大额往来怎么办
  • 物业签订的合同
  • 金税盘没票了
  • 纳税人提供不动产经营租赁增值税征收管理
  • 设立独立核算的销售机构的筹划
  • 环保税是甲方交的吗
  • 无票申报后开发票怎么申报
  • 车辆购置税退税条件
  • 土地开垦费怎么征收
  • 财产租赁所得的税率是多少
  • 备用金借款单怎么写
  • 工会账户销户
  • 物业公司收取的广告费开什么发票
  • wind10激活密钥
  • 工商年报纳税总额怎么填写才正确
  • 不动产分期抵扣政策
  • 银行结算账户的种类
  • PHP:apache_response_headers()的用法_Apache函数
  • 融资性租赁的优缺点
  • 跨国并购融资问题
  • 常见的财务报表分析方法有多选题
  • 出租个人住房怎样交税
  • yii2中LinkPager增加总页数和总记录数的实例
  • 劳务报酬所得缴纳税款是公司代缴吗
  • php解析配置文件
  • 基于yolov5的目标检测实验任务
  • 逾期增值税扣税凭证抵扣管理办法
  • c++图像二值化
  • 计算机视觉基础知识
  • 研发费用加计扣除新税收政策
  • 企业销售旧车如何开票
  • 直接人工成本包括五险一金吗
  • mysql常见报错
  • 资产负债表中应收账款的计算公式
  • 员工垫付的费用没有发票,放在工资里可以吗
  • 如何进行捐款活动
  • 事业单位的股东是谁
  • 工会筹备金该按什么计算
  • 联营公司是关联方吗
  • 公司刚成立如何做账
  • 各单位应当根据需要设立专职或者兼职
  • win8宽带连接
  • 摄像头无法启用
  • 通过注册表修改office默认字体
  • win8系统本地连接在哪
  • win8无法安装其它软件
  • mac os操作教程
  • win10 world文档
  • 梦见古字
  • win7系统无法删除打印机驱动
  • 联想 恢复
  • 对用药方案做合理性评估时
  • 服务器自动关机什么原因
  • jquery密码验证
  • html用div来写表格
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • jquery中如何获取元素?
  • linux查看shell脚本内容
  • linux两个版本
  • python按位与操作
  • 重庆电子税务局网页版登录
  • 黄金税率是多少
  • 税务局发涵有几种
  • 深圳全电子发票开具流程
  • 江阴市税务局电话号码
  • 尾矿治理文件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设