Giter Site home page Giter Site logo

phpmessagebus / messagebus Goto Github PK

View Code? Open in Web Editor NEW
186.0 15.0 5.0 62 KB

A MessageBus (CommandBus, EventBus and QueryBus) implementation in PHP7

Home Page: http://nilportugues.com

License: MIT License

PHP 100.00%
event-handlers message-bus command-bus query-bus eventbus cqrs event-sourcing queueing redis rabbitmq

messagebus's People

Contributors

nilportugues avatar readmecritic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

messagebus's Issues

Busses do not function properly without additional middleware

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?

Improve error message

 "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"

Provide generic Command, Event and Query implementations

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;
    }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.