Download the PHP package othercodes/ddd-value-object without Composer

On this page you can find all versions of the php package othercodes/ddd-value-object. 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 ddd-value-object

DDD Value Object

Tests License codecov

Small library to easily manage the Value Object Pattern.

Installation

Use the following command to install with composer:

This will automatically get the latest version and configure a composer.json file.

Alternatively you can create the following composer.json file and run composer install to install it.

Usage

Build a Value object is quite simple, you just need to extend the ValueObject Next, initialize the values in the constructor by using the initialize method. Finally, add invariant rules as protected method, using the prefix invariant (this prefix can be customized) and execute them with the checkInvariants method.

Equality

Value equality is computed by serializing the object and hashing it with the sha256 algorithm. Alternatively, you can override equalityHash to calculate a proper hash for the object. This hash is used to check if the value objects are equals or not.

Immutability

The immutability property blocks any attempt of value modification, that will end in exception:

You can customize the exception that will be thrown by overriding the immutabilityException property. The same happens with the error message, you just need to override the immutabilityMessages property.

Invariants

The invariants methods must return a boolean value, true if the invariant is successfully, false otherwise. If any in variant is violated you will get an exception:

By default, the invariant name is parsed and used as message error on invariant violation, but this can be easily customized, you just need to throw an exception with your custom message instead returning false in the invariants:

Additionally, you can fully customize how the invariant violation are managed by passing a custom function to the checkInvariants method:


All versions of ddd-value-object with dependencies

PHP Build Version
Package Version
Requires ext-json Version *
ramsey/uuid Version ^4.1
nesbot/carbon Version ^2.40
konekt/enum Version ^3.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 othercodes/ddd-value-object contains the following files

Loading the files please wait ....