Login   Register  
PHP Classes
elePHPant
Icontem

File: README.md

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of AlexanderC  >  AOPHP  >  README.md  >  Download  
File: README.md
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: AOPHP
Alter the behavior of classes with AOP
Author: By
Last change: added extended readme (main sugar)
added extended readme (main sugar)
Date: 7 months ago
Size: 1,596 bytes
 

Contents

Class file image Download
AOPHP
=====

AOPHP- AOP for PHP

Requirements
------------

PHP 5.4<

Main Sugar
----------

- Annotations are used as main config provider:

        @AOP/before(Class.Method)
        @AOP/after(Class.Method)

- Use PHP magic to provide a natural way to do the things:

        $class->method('something')
        // instead of
        $AOPHP->advice($class, 'method', ['something']);

- Tolerant parser:

        @AOP  / BeFOrE  (  Class . Method)
        @aoP    /  AFTeR    ( Class .  Method)

- Flexible PointCut:

        @AOP/before(Class . *)
        @AOP/after(* . Method)

- No dependencies

- Fast due to built in cache with a couple of ready to use drivers

- Automated cache invalidation

Examples
--------

    For detailed examples see tests/bootstrap.php

```php
<?php
/**
 * @author AlexanderC <self@alexanderc.me>
 * @date 10/28/13
 * @time 8:24 PM
 */

require __DIR__ . '/../autoload.php';

$AOPHP = \AOPHP\AOPHP::crete();

// see DocBlockTest to understand lib usage
$object = new DocBlockTest();

// add target object (methods called on this)
//$AOPHP->addTarget($AOPHP->createTarget($object));
// add aspect object (advices would be applied before and after calling a target)
//$AOPHP->addAspect($AOPHP->createAspect(clone $object));

// call target method
//$AOPHP->advice($object, 'doThings', ['"Lorem Ipsum dolor sit amet"']);
// call another target method
//$AOPHP->advice($object, 'doAnotherThings', ['"Lorem Ipsum dolor sit amet"']);

$object->doThings("Lorem Ipsum dolor sit amet");
```

License
-------

GNU GPLv2.
Copyright (c) 2013 AlexanderC <self@alexanderc.me>