ARC is a set of components, build to be as simple as possible. Each component does just one thing and has a small and simple API to learn. ARC uses static factory methods to simplify the API while using Dependency Injection. ARC is not a framework. It can be used in combination with any framework or indeed without.
The Ariadne Component Library is a spinoff from the Ariadne Web Application Platform and Content Management System http://www.ariadne-cms.org/. Many of the concepts used in ARC have their origin in Ariadne and have been in use since 2000.
A unique feature in most components is that they are designed to work in and with a tree structure. URL's are based on the concept of paths in a filesystem. This same path concept and the underlying filesystem-like tree is used in most ARC components.
Via Composer:
$ composer require arc/arc
or start a new project with arc
$ composer create-project arc/arc {$path}
This will download and install all arc components.
But you don't need to do this, you can just download the components you really need instead. Below is a list of components and what they do:
arc/base
: Common datatypes and functionality shared by all ARC components. Is installed automatically if needed.arc/cache
: Cache functionality and a caching proxy class.arc/events
: Fire events and listen for them in a tree structure, modelled after the browsers DOM events.arc/config
: Configuration management, storing and retrieving configuration settings in a tree structure.arc/web
: Simple and correct manipulation of URL's, HTTP Headers and a HTTP client. Also includes a simple intrustion detection component to prevent cross site scripting attacks.arc/xml
: Parsing and writing XML made simple.arc/html
: Parsing and writing HTML also made simple.arc/grants
: Access control management in a tree structure, like a filesystem.arc/prototype
: Prototypical inheritance for PHP, like javascript.arc/store
: Structured (hierarchical) object store, with a simple query DSL.