johnniewalker/xandria

A set of classes useful for implementing DDD, Object Mapping patterns.

v0.0.4 2018-04-15 20:22 UTC

This package is not auto-updated.

Last update: 2024-12-22 05:58:24 UTC


README

A library of key object-oriented programming patterns which, coupled with a demo application, shows them being implemented and put to use.

Patterns include those involved in Domain Driven Design, Patterns of Enterprise Architecture and Object-to-Relational Mapping.

Quick Start

Project Home

The project is open source and managed in github at:

Get Xandria

How developers get and test the Xandra library

Get the source

Use the command line to navigate to the directory on your work station where you develop libraries. Create one if necessary.

Clone the repository from Github.

Enter the project directory.

Ensure composer is installed.

Run the install --dev command:

# composer install --dev

Note the --dev option ensures that our testing libraries are also installed.

Run the unit tests

Still within a command-line environment, ensure we are in the root directory of the project.

Run :

# ./vendor/bin/codecept run unit

Using Xandria in your project

We assume you use composer in your project.

Xandria is listed on Packagist.

Navigate to your project's root directory.

# pwd
/My/Projects/SomeProject

Then, 'composer require' the library:

# composer require johnniewalker/xandria

Why called Xandria?

The project is named Xandria after the Ancient Library of Alexandria, in Alexandria, Egypt. Which was one of the largest and most significant libraries of the ancient world. It functioned as a major center of scholarship from its construction in the 3rd century BC until the Roman conquest of Egypt in 30 BC.

The first one is rumoured to have burned down destroying reams of ancient knowledge. Let's hope this digital one doesn't face the same dooooom.

Git Intros

Collaboration

Use the Fork & Pull Model.

Let's follow some advice from page 335 of the book, ZeroMQ by Pieter Hintjens (2013).

Keep everything in the master and use GitHub pull requests to merge changes from multiple contributors.

See: https://help.github.com/articles/using-pull-requests -- Fork & Pull Model

Documentation Formatting

Documents and message are currently written in mark down format.