Download the PHP package makinacorpus/goat without Composer

On this page you can find all versions of the php package makinacorpus/goat. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package goat

Goat domain driven design tools

Provides a set of tooling for domain driven design. Automatic integration to Symfony >= 4 is provided via makinacorpus/goat-bundle package.

Status

This was kind of micro-framework, including many features:

All together this represents a huge functionnal surface, and many items in this list don't belong together.

The name goat itself refers to something stupid or insecure.

This project has lived throught 4 production projects, and still exist and is maintained, but not for long.

Next version major, i.e. 5.x will be the last one, it reprensents the current state where:

This will enter a state of bugfixes only, for our production projects still using it, but most of its code will progressively be deprecated in favor of new independant and more accurate packages:

Pre-requisites

Due to SQL RETURNING clause usage, this cannot work with MySQL. This feature is not SQL standard, but all of PostgreSQL, SQL Server and Oracle have a variant of this feature, therefore could work with this package.

As of now, only PostgreSQL is an active target and have been tested with.

Features

Installation

Usage

Please document me.

Dispatcher

The Dispatcher is a component that behaves like symfony/messenger component, it is the user facing interface for sending and consuming messages from a bus.

It gives two methods:

Base implementation comes down to:

All other advanced features, including event store support are implemented using dispatcher interface decorators.

A console consumer command exists, it simply fetches messages from the message broker and call dispatcher's dispatch() method.

Event store

Introduction

The EventStore is a very primitive implementation of what you might use for implementing event sourcing. It saves all events that have been throught the applications into an ordered and immutable append-only log.

Every event that have been executed in the application will be saved into this journalisation mecanism.

It works the following way:

Its usage is optional.

Some concepts

The event store allows to partially implement an event sourcing based system or it can be used a pure journalisation mecanism without being source of the actual data.

In both case, it will be plugged onto the message bus, and store every message or domain event that happen to the system. For this to work gracefully, your own events should implement the Goat\Dispatcher\Message\Message interface in order for the event store to be able to identify every aggregate or entity that gets created or update within the system and keep track of objects life time.

It doesn't matter if you actually identify creation or modification, only a UUID is necessary, if it doesn't exist in the index, a new event stream will be created, if it exist a single event will append to the existing stream.

Advanced configuration

Please document me.

Monolog integration

Provide some extra options for monolog.

Please see the README.monolog.md file for more information.

Testing

A docker environement with various containers for various PHP versions is present in the sys/ folder. For tests to work in all PHP versions, you need to run composer update --prefer-lowest otherwise PHP 7.4 tests will fail.


All versions of goat with dependencies

PHP Build Version
Package Version
Requires makinacorpus/goat-query Version ^2.1.7 || ^3.0
php Version >=7.4
psr/log Version ^1.0
ramsey/uuid Version ^3.8 || ^4
symfony/event-dispatcher Version >=4.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package makinacorpus/goat contains the following files

Loading the files please wait ....