事件

如何使用 PHP 的 Symfony 事件调度程序

今天,我们将学习如何使用 Symfony 事件调度程序组件,它允许您在 PHP 应用程序中创建事件和侦听器。因此,应用程序的不同组件可以通过松散耦合的代码相互通信。

什么是 Symfony 事件调度程序组件?

您可能熟悉事件观察者模式,它允许您为系统生成的事件定义侦听器,以便在触发事件时执行它们。类似地,Symfony EventDispatcher 组件允许您设置一个可以在其中创建自定义事件和侦听器的系统。通过这种方式,您可以允许应用程序中的组件在系统中发生某些情况时做出反应。

事实上,事件调度程序组件提供了三个元素,您可以围绕它们构建应用程序架构:事件、侦听器和调度程序。整个系统由调度程序类编排,它在应用程序中的适当点引发事件并调用与这些事件关联的侦听器。

假设您希望允许应用程序中的其他组件在缓存被清除时做出反应。在这种情况下,您需要首先定义清除缓存事件。清除缓存后,您可以使用调度程序引发清除缓存事件,并通知所有正在侦听此事件的侦听器。这使侦听器有机会清除特定于组件的缓存。

在本文中,我们将探讨事件调度程序组件的基础知识。我们将从安装和配置开始,我们还将创建一些实际示例来演示上述所有概念。

安装和配置事件调度程序

在本节中,我们将安装事件调度程序组件。我假设您已经在系统上安装了 Composer,因为我们需要它来安装 EventDispatcher 组件。

安装 Composer 后,请继续使用以下命令安装 EventDispatcher 组件。

1
$composer需要 symfony/事件调度程序

这应该已经创建了composer.json文件,该文件应如下所示:

1
{
2
    “要求” : {
    

关于PHP的回调函数及事件回调的用法

PHP的回调机制,是通过使用 call_user_func(call_user_func_array)实现的。回调函数可以很好地将一些功能从核心功能剥离开。
回调机制类似于一种通知机制,在异步编程中经常用到。 就是 我让你做一件事情,你做好了,通过我提供的接口通知我。

代码如下。…

                    

关于PHP你可能不知道的-PHP的事件驱动化设计

最近在做一个需要用到异步PHP的项目, 翻阅PHP源码的时候,发现了三个没有用过的模块,sysvsem,sysvshm,sysvmsg,一番研究以后,受益非浅。

在PHP中有这么一族函数,他们是对UNIX的V IPC函数族的包装。
它们很少被人们用到,但是它们却很强大。巧妙的运用它们,可以让你事倍功半。…

    

浅谈我对协程的理解

我心中的协程

最近在研究网络服务框架方面的东西,发现了一个神奇的东西-协程。
一句话说明什么是线程:协程是一种用户态的轻量级线程

一句话并不能完全概括协程的全部,但是起码能让我们对协程这个概念有一个基本的印象。
从硬件发展来看,从最初的单核单CPU,到单核多CPU,多核多CPU,似乎已经到了极限了,但是单核CPU性能却还在不断提升。server端也在不断的发展变化。如果将程序分为IO密集型应用和CPU密集型应用,二者的server的发展如下:
IO密集型应用: 多进程->多线程->事件驱动->协程…