phpmessagebus / messagebus Goto Github PK
View Code? Open in Web Editor NEWA MessageBus (CommandBus, EventBus and QueryBus) implementation in PHP7
Home Page: http://nilportugues.com
License: MIT License
A MessageBus (CommandBus, EventBus and QueryBus) implementation in PHP7
Home Page: http://nilportugues.com
License: MIT License
I'm testing out this library in a project of mine. I was having problems with QueryBus returning an EmtpyResponse no matter what I did, but after looking at the code it seems that adding middleware in addition to QueryBusMiddleware causes it to function properly and return the correct response.
I haven't tested the other busses yet, but it looks like they all use $current = array_shift($middleware);
, which, if you're only using the "core" middleware and nothing else, empties $middleware
and the following foreach
does not run.
Did I miss something in the docs or is this not the intention?
"message": "Type error: Return value of NilPortugues\\MessageBus\\CommandBus\\Resolver\\SymfonyContainerResolver::instantiate() must be an instance of NilPortugues\\MessageBus\\CommandBus\\Contracts\\CommandHandler, instance of Modules\\Forum\\Domain\\Services\\TopicDeleterCommandHandler returned"
The following error message would be a bit more clear, could you add it please?
"Make sure that the class TopicDeleterCommandHandler extends from CommandHandler"
It's using the Silex format instead. So it needs fixing.
Not too dramatic, but it's just wrong!
Because DTO are easy to use, but I require passing an object implementing an Interface, provide helper objects. For instance:
<?php
use NilPortugues\MessageBus\CommandBus\Contracts\Command as CommandInterface;
class Command implements CommandInterface
{
public function __get($property)
{
if (property_exists($this, $property)) {
return $this->$property;
}
}
public function __set($property, $value)
{
$this->$property = $value;
}
}
According to many users it will be a nice addition.
Discussion has been carried here: https://www.reddit.com/r/PHP/comments/4f6pb1/phpmessagebusmessagebus/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.