Aura Packages

The Aura project centers around a collection of independent packages. Each package is self-contained and has only the things it needs for its core purpose. None of the packages depends on any of the other; you can use each of the packages on its own.

Package API Version Description Release Date Downloads Development
Autoload 1.0.3 The Aura Autoload package provides a PSR-0 compliant SPL autoloader implementation for PHP. It also matches the proposed SplClassLoader interface. 2014-05-31 .zip, .tar.gz Github
Cli 1.1.2 The Aura CLI package provides a system for creating and executing CLI command objects. It includes facilities for parsing command-line(console) options and handling standard input/output. 2014-05-31 .zip, .tar.gz Github
Di 1.1.2 The Aura DI package provides a dependency injection container system with native support for constructor- and setter-based injection, lazy-loading of services, and inheritable configuration of setters and constructor params. 2014-05-31 .zip, .tar.gz Github
Filter 1.0.1 The Aura Filter package provides tools to validate and sanitize data objects and arrays. 2014-05-31 .zip, .tar.gz Github
Http 1.0.3 The Aura HTTP package provides objects to build and send HTTP requests and responses. 2014-05-31 .zip, .tar.gz Github
Input 1.1.1 This package contains tools to describe and filter user inputs from an HTML form, including sub-forms/sub-fieldsets, fieldset collections, an interface for injecting custom filter systems, and CSRF protection. Note that this package does not include output functionality, although the “hints” provided by the Form object can be used with any presentation system to generate an HTML form. 2014-05-31 .zip, .tar.gz Github
Intl 1.0.1 The Aura.Intl package provides internationalization (I18N) tools, specifically package-oriented per-locale message translation. 2014-05-31 .zip, .tar.gz Github
Marshal 1.2.1 The Aura Marshal package is a data-object marshalling tool; it takes results from data sources and marshals those result sets into domain model objects of your own design, preserving data relationships along the way. 2014-05-31 .zip, .tar.gz Github
Router 1.2.0 The Aura Router package implements web routing; given a URI path and a copy of $_SERVER, it will extract controller, action, and parameter values for a specific route. 2014-05-31 .zip, .tar.gz Github
Session 1.0.2 The Aura Session provides session management functionality, including session segments, read-once (“flash”) values, CSRF tools, and lazy session starting. 2014-05-31 .zip, .tar.gz Github
Signal 1.0.3 A SignalSlots/EventHandler implementation for PHP; with it, we can invoke handlers (“slots” or “hooks”) whenever an object sends a signal (“notification” or “event”) to the signal manager. 2014-05-31 .zip, .tar.gz Github
Sql 1.3.1 The Aura Sql package is a wrapper around PDO that provides connection adapters and convenience methods for MySQL, PostgreSQL, SQLite, and SQL Server. 2014-05-31 .zip, .tar.gz Github
Uri 1.2.0 The Aura Uri package provides tools to build and manipulate URL strings. 2014-05-31 .zip, .tar.gz Github
View 1.2.2 The Aura View package provides an implementation of the TemplateView and TwoStepView patterns, with support for helpers and path stacks, using PHP itself as the templating language. 2014-05-31 .zip, .tar.gz Github
Web 1.0.3 The Aura Web package provides tools to build web page controllers, including an AbstractPage for action methods, a Context class for disovering the request environment, and a Response transfer object that describes the eventual HTTP response. 2014-05-31 .zip, .tar.gz Github

We are also beginning to make “Google Beta” version 2 releases of selected packages.

High-Quality, Well-Tested, Standards-Compliant

With very few exceptions, all classes in all packages have 100% test coverage.

The packages available through the Aura project all conform to the currently accepted standards of the PHP Framework Interoperability Group: PSR-0, PSR-1, and PSR-2.

Driving Principles

In General

Class Idioms

Dependency Injection and Factories

Package Stucture

The package directory structure looks like this:

Aura.Package_Name/
    cli/                        # command-line script invokers
    composer.json               # composer/packagist file
    config/                     # package-level configs
        default.php             # default configs
        test.php                # configs for "test" mode
    meta/                       # metadata for packaging scripts
    LICENSE                     # license file
    README.md                   # readme file
    src/                        # the actual source code organized for PSR-0
        Aura/
            Package_Name/
                Foo.php
    tests/                      # test files for phpunit
        Aura/
            Package_Name/
                FooTest.php
        bootstrap.php
        phpunit.xml
    web/                        # public web assets
        styles/                 # css files
        images/                 # image files
        scripts/                # javascript (or other script) files

In general, the src/ files are organized like so:

Aura/
    Package_Name/
        Cli/                    # all CLI commands
            CommandName/        # a particular CLI command and its support files
                Command.php     # the actual command logic
                data/           # other data for the command
        Web/                    # all web pages
            PageName/           # a particular web page and its support files
                Page.php        # the actual page action logic
                views/          # views for the page
                layouts/        # layouts for the page
                data/           # other data for the page
        View/
            Helper/
                HelperName.php  # a view helper