{"id":13828258,"url":"https://github.com/szjani/predaddy","last_synced_at":"2025-04-06T23:17:04.686Z","repository":{"id":8515880,"uuid":"10129166","full_name":"szjani/predaddy","owner":"szjani","description":"DDD/CQRS/EventSourcing framework with annotation driven message bus","archived":false,"fork":false,"pushed_at":"2018-03-19T22:40:13.000Z","size":963,"stargazers_count":171,"open_issues_count":0,"forks_count":6,"subscribers_count":10,"default_branch":"4.0","last_synced_at":"2024-04-23T22:20:03.532Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/szjani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-05-17T18:09:29.000Z","updated_at":"2023-02-16T02:18:56.000Z","dependencies_parsed_at":"2022-08-24T04:11:24.075Z","dependency_job_id":null,"html_url":"https://github.com/szjani/predaddy","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szjani%2Fpredaddy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szjani%2Fpredaddy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szjani%2Fpredaddy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szjani%2Fpredaddy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/szjani","download_url":"https://codeload.github.com/szjani/predaddy/tar.gz/refs/heads/4.0","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247563936,"owners_count":20958971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T09:02:38.759Z","updated_at":"2025-04-06T23:17:04.669Z","avatar_url":"https://github.com/szjani.png","language":"PHP","funding_links":[],"categories":["PHP","Uncategorized"],"sub_categories":["Uncategorized"],"readme":"predaddy\n========\n[![Latest Stable Version](https://poser.pugx.org/predaddy/predaddy/v/stable.png)](https://packagist.org/packages/predaddy/predaddy)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/szjani/predaddy/badges/quality-score.png?b=3.0)](https://scrutinizer-ci.com/g/szjani/predaddy/?branch=3.0)\n[![SensioLabsInsight](https://insight.sensiolabs.com/projects/ad36fc7a-f48d-4919-b20d-90eae34aecd9/mini.png)](https://insight.sensiolabs.com/projects/ad36fc7a-f48d-4919-b20d-90eae34aecd9)\n[![Gitter chat](https://badges.gitter.im/szjani/predaddy.png)](https://gitter.im/szjani/predaddy)\n[![MIT license](http://img.shields.io/badge/license-MIT-brightgreen.svg)](http://opensource.org/licenses/MIT)\n\u003ca href=\"https://flattr.com/submit/auto?user_id=szjani\u0026url=https://github.com/szjani/predaddy\" target=\"_blank\"\u003e\u003cimg align=\"bottom\" src=\"https://api.flattr.com/button/flattr-badge-large.png\" alt=\"Flattr this\" title=\"Flattr this\" border=\"0\"\u003e\u003c/a\u003e\n\n|master|1.2|2.2|3.0|\n|------|---|---|---|\n|[![Build Status](https://travis-ci.org/szjani/predaddy.png?branch=master)](https://travis-ci.org/szjani/predaddy)|[![Build Status](https://travis-ci.org/szjani/predaddy.png?branch=1.2)](https://travis-ci.org/szjani/predaddy)|[![Build Status](https://travis-ci.org/szjani/predaddy.png?branch=2.2)](https://travis-ci.org/szjani/predaddy)|[![Build Status](https://travis-ci.org/szjani/predaddy.png?branch=3.0)](https://travis-ci.org/szjani/predaddy)|\n|[![Coverage Status](https://coveralls.io/repos/szjani/predaddy/badge.png?branch=master)](https://coveralls.io/r/szjani/predaddy?branch=master)|[![Coverage Status](https://coveralls.io/repos/szjani/predaddy/badge.png?branch=1.2)](https://coveralls.io/r/szjani/predaddy?branch=1.2)|[![Coverage Status](https://coveralls.io/repos/szjani/predaddy/badge.png?branch=2.2)](https://coveralls.io/r/szjani/predaddy?branch=2.2)|[![Coverage Status](https://coveralls.io/repos/szjani/predaddy/badge.png?branch=3.0)](https://coveralls.io/r/szjani/predaddy?branch=3.0)|\n\nIt is a library which gives you some usable classes to be able to use common DDD patterns. Some predaddy components can be used in any projects regardless of the fact that you are using DDD or not.\nI have got several ideas from [Google's Guava EventBus](http://code.google.com/p/guava-libraries/wiki/EventBusExplained) and [Axon framework](http://www.axonframework.org/).\n\nSome libraries are used which are just API libraries and you must care for their implementations:\n\n1. [lf4php](https://github.com/szjani/lf4php) for logging. Without an implementation predaddy is not logging.\n2. [trf4php](https://github.com/szjani/trf4php) for transaction management. In most cases you will need to use a trf4php implementation (eg. [trf4php-doctrine](https://github.com/szjani/trf4php-doctrine))\n\nComponents\n----------\n\nFor more details see the components (click on the titles):\n\n1. #### [Message handling](https://github.com/szjani/predaddy/tree/3.0/src/predaddy/messagehandling#messagebus)\n\n   It's an annotation based publish/subscribe implementation, can be used any projects even without DDD/CQRS/Event Sourcing.\n\n2. #### [CQRS and Event Sourcing](https://github.com/szjani/predaddy/tree/3.0/src/predaddy/domain#cqrs--event-sourcing)\n\n   Complex solution for handling aggregates, based on the message handling component.\n\n3. #### [Presentation - finders, etc.](https://github.com/szjani/predaddy/tree/3.0/src/predaddy/presentation#paginator-components)\n\n   Common classes and interfaces for handling the read side. It also can be used in any applications.\n   \n4. #### [Testing - helper for aggregate testing](https://github.com/szjani/predaddy/tree/3.0/src/predaddy/util/test#testing)\n\n   Fixtures to ease aggregate testing.\n\nExamples\n--------\n\nYou can find some small CLI examples in the [sample directory](https://github.com/szjani/predaddy/tree/3.0/tests/src/sample).\n\nA sample project is also available which shows how predaddy should be configured and used: https://github.com/szjani/predaddy-issuetracker-sample\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszjani%2Fpredaddy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fszjani%2Fpredaddy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszjani%2Fpredaddy/lists"}