wmde/FreezableValueObject

Name: FreezableValueObject

Owner: Wikimedia Deutschland e.V.

Description: PHP Trait for creating freezable value objects

Created: 2017-11-01 04:27:45.0

Updated: 2017-11-01 04:50:41.0

Pushed: 2018-02-03 08:51:19.0

Homepage: null

Size: 23

Language: PHP

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

FreezableValueObject

Build Status Scrutinizer Code Quality Latest Stable Version Download count

PHP Trait for creating freezable value objects.

For motivation and considerations, see Missing in PHP7: Value objects

Installation

To use the FreezableValueObject library in your project, simply add a dependency on wmde/freezable-value-object to your project's composer.json file. Here is a minimal example of a composer.json file that just defines a dependency on FreezableValueObject 1.x:


"require": {
    "wmde/freezable-value-object": "~1.0"
}

Development

For development you need to have Docker and Docker-compose installed. Local PHP and Composer are not needed.

sudo apt-get install docker docker-compose
Running Composer

To pull in the project dependencies via Composer, run:

make composer install

You can run other Composer commands via make run, but at present this does not support argument flags. If you need to execute such a command, you can do so in this format:

docker run --rm --interactive --tty --volume $PWD:/app -w /app\
 --volume ~/.composer:/composer --user $(id -u):$(id -g) composer composer install -vvv
Running the CI checks

To run all CI checks, which includes PHPUnit tests, PHPCS style checks and coverage tag validation, run:

make
Running the tests

To run just the PHPUnit tests run

make test

To run only a subset of PHPUnit tests or otherwise pass flags to PHPUnit, run

docker-compose run --rm app ./vendor/bin/phpunit --filter SomeClassNameOrFilter

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.