2017 © Pedro Peláez
 

library iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

image

ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  • Thursday, December 15, 2016
  • by ehough
  • Repository
  • 1 Watchers
  • 0 Stars
  • 928 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 49 Forks
  • 0 Open issues
  • 13 Versions
  • 0 % Grown

The README.md

iconic Build Status

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+., (*1)

Motivation

Symfony's Dependency Injection component is a powerful DI library, but it's only compatible with PHP 5.3+. While 97% of PHP servers run PHP 5.2 or higher, 32% of all servers are still running PHP 5.2 or lower (source). It would be a shame to exempt this library from nearly a third of the world's servers just because of a few version incompatibilities., (*2)

Once PHP 5.3+ adoption levels near closer to 100%, this library will be retired., (*3)

Differences from Symfony's Dependency Injection component

The primary difference is naming conventions of the Symfony classes. Instead of the \Symfony\Component\DependencyInjection namespace (and sub-namespaces), prefix the Symfony class names with ehough_iconic and follow the PEAR naming convention, (*4)

A few examples of class naming conversions:, (*5)

\Symfony\Component\DependencyInjection\ContainerBuilder           ----->    ehough_iconic_ContainerBuilder
\Symfony\Component\DependencyInjection\Compiler\Compiler          ----->    ehough_iconic_compiler_Compiler
\Symfony\Component\DependencyInjection\ParameterBag\ParameterBag  ----->    ehough_iconic_parameterbag_ParameterBag

Other gotchas when using iconic instead of Symfony's Dependency Injection component, (*6)

  • Most of the loaders and dumpers can only be used with PHP 5.3+
  • The expression language feature is only available with PHP 5.3+

Usage

Here is a simple example that shows how to register services and parameters:, (*7)

$sc = new ehough_iconic_ContainerBuilder();
$sc
    ->register('foo', '%foo.class%')
    ->addArgument(new ehough_iconic_Reference('bar'))
;
$sc->setParameter('foo.class', 'Foo');

$sc->get('foo');

Method Calls (Setter Injection):, (*8)

$sc = new ehough_iconic_ContainerBuilder();

$sc
    ->register('bar', '%bar.class%')
    ->addMethodCall('setFoo', array(new ehough_iconic_Reference('foo')))
;
$sc->setParameter('bar.class', 'Bar');

$sc->get('bar');

Factory Class:, (*9)

If your service is retrieved by calling a static method:, (*10)

$sc = new ehough_iconic_ContainerBuilder();

$sc
    ->register('bar', '%bar.class%')
    ->setFactoryClass('%bar.class%')
    ->setFactoryMethod('getInstance')
    ->addArgument('Aarrg!!!')
;
$sc->setParameter('bar.class', 'Bar');

$sc->get('bar');

File Include:, (*11)

For some services, especially those that are difficult or impossible to autoload, you may need the container to include a file before instantiating your class., (*12)

$sc = new ehough_iconic_ContainerBuilder();

$sc
    ->register('bar', '%bar.class%')
    ->setFile('/path/to/file')
    ->addArgument('Aarrg!!!')
;
$sc->setParameter('bar.class', 'Bar');

$sc->get('bar');

Releases and Versioning

Releases are synchronized with the upstream Symfony repository. e.g. ehough/iconic v2.3.2 has merged the code from symfony/DependencyInjection v2.3.2., (*13)

The Versions

15/12 2016

dev-develop

dev-develop https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

24/09 2014

dev-master

9999999-dev https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

24/09 2014

v2.5.4

2.5.4.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

24/09 2014

v2.5.3

2.5.3.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

24/09 2014

v2.5.2

2.5.2.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

24/09 2014

v2.5.1

2.5.1.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

19/06 2014

v2.5.0

2.5.0.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

30/04 2014

v2.4.4

2.4.4.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

07/04 2014

v2.4.3

2.4.3.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

06/02 2014

v2.4.1

2.4.1.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

05/12 2013

v2.4.0

2.4.0.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

19/08 2013

v2.3.3

2.3.3.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires

17/07 2013

v2.3.2

2.3.2.0 https://github.com/ehough/iconic

Fork of Symfony's Dependency Injection component compatible with PHP 5.2+.

  Sources   Download

MIT

The Requires

  • php >=5.2.0

 

The Development Requires