Download the PHP package mead-steve/tale without Composer

On this page you can find all versions of the php package mead-steve/tale. 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 tale

Tale

Build Status Scrutinizer Code Quality

What?

Tale is a small library to help write a "distributed transaction like" object across a number of services. It's loosely based on the saga pattern. A good intro is available on the couchbase blog: https://blog.couchbase.com/saga-pattern-implement-business-transactions-using-microservices-part/

Installation

Example Usage

An example use case of this would be some holiday booking software broken down into a few services.

Assuming we have the following services: Flight booking API, Hotel booking API, and a Customer API.

We'd write the following steps:

and so on for any of the steps needed. Then in whatever is handling the user's request a distributed transaction can be built:

If any step along the way fails then the compensate method on each step is called in reverse order until everything is undone.

State immutability

The current state is passed from one step to the next. This same state is also used to compensate for the transactions in the event of a failure further on in the transaction. Since this is the case it is important that implementations consider making the state immutable.

Tale provides a CloneableState interface to help with this. Any state implementing this interface will have its cloneState method called before being passed to a step ensuring that steps won't share references to the same state.

In the example above $startingState, $finalState and $state given to both function calls are all clones of each other so changing one won't affect any earlier states.

Testing / Development

Contributions are very welcome. Please open an issue first if the change is large or will break backwards compatibility.

All builds must pass the travis tests before merge. Running ./run_tests.sh will run the same tests as travis.yml but locally.

The dockerfile provides an environment that can execute all the tests & static analysis.


All versions of tale with dependencies

PHP Build Version
Package Version
Requires php Version >=7.1, <8.0
psr/log Version ^1.0
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 mead-steve/tale contains the following files

Loading the files please wait ....