7

Necesito integrar un despachador de eventos en mi propia base de código (biblioteca PHP personalizada), así que miré lo que están haciendo tanto Symfony2 como Zend Framework 2.¿Cuál es la mejor manera de integrar un despachador de eventos en una biblioteca PHP?

Obviamente, no hay una interfaz compartida para despachar eventos, porque ambos marcos tienen diferentes necesidades y decidieron implementar su propio código ... así que estoy un poco perdido: no quiero reinventar mi rueda personal.

Probablemente las interfaces SPL para implementar el patrón de observador son un poco ingenuas, entonces estoy aquí preguntando: ¿qué harías?

EDITAR

Dado que no está claro ... Quiero volver a utilizar un servicio de urgencias existentes, dejando que el desarrollador inyectarla en mi biblioteca.

Digamos que desarrollas una lib con un despachador y sabes que tu lib formará parte de un paquete de Symfony y también se reutilizará en los proyectos de ZF: seguramente querrás volver a utilizar los despachadores de Symfony y ZF. tuyo.

Por lo tanto, estaba buscando interfaces compartidas para despachadores existentes implementadas en bibliotecas convencionales, pero parece que no hay solución.

Respuesta

4

se podría definir una interfaz para sus necesidades y luego implementa con diferentes adaptadores para cada marco.

+0

cojo, pero la única opción por ahora :) – odino

+0

@odino, ¿por qué no iniciar otro PSR comparando Symfony2, ZF2, Aura, Fuel ... y quién más ... De todos modos, no estoy seguro si será aceptado o no. Puede ser una interfaz base solo se aplica. –

2

Creo que su primer instinto para elegir uno de los componentes más utilizados es el camino a seguir.

Esas dos son las opciones que estaría considerando también. Debería simplemente echarles un vistazo a los dos y elegir el que creas que funcionará mejor para ti.

Enchufe deshilachado: si quieres algo muy, muy ligero, puedes echar un vistazo a Événement.

2

Debe implementar un patrón de observador mediante la implementación de la interfaz PHP SplObserver, SplSubject. No solo Zend, Symphony hace eso para apoyar hooks, pero generalmente cada operador de eventos funciona de esta manera al implementar un patrón de observador.

Aquí es un artículo para saber más http://devzone.zend.com/article/4284

+1

Hola OSL, echar un vistazo a la edición, el punto de la cuestión no es qué patrón de usar, es obvio que Nedd para ir con el observador ;-) – odino

1

Publicación anterior que ya se ha aceptado, pero hay una solución para una solución EDP en PHP para aquellos que se encuentran con esto como yo.

http://prggmr.org

La funcionalidad es muy diferente a la de Symfony del e implementación de Zend como su no hay interfaz o las clases que necesitan que se extienden a usar la biblioteca, en lugar sólo tiene que llamar funciones típicas php para manejar el despacho de eventos.

// Subscribe to dispatched events 
subscribe(callback, signal) 

// Dispatch an event 
fire(signal) 
Cuestiones relacionadas