Skip to content
/ php-aop Public

Provides an abstraction layer easy to use for AOP development, it can work with several PHP code interceptors.

License

Notifications You must be signed in to change notification settings

aop-io/php-aop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AOP for PHP

Implements a simplified subset of AOP (Aspect Oriented Programming) pragmatism and provides the AOP features for PHP application.

Only one dependency, the code interceptor.

The PHP lib of AOP.io provides an abstraction layer easy to use for AOP development, so it can work with several PHP code interceptors.

The first interceptor implemented uses PECL AOP-PHP extension.

Other interceptors are planned. If you want to create an interceptor, see the skeleton.

Getting Started

Install

  1. Install an interceptor, e.g: PECL AOP-PHP extension.

  2. Download PHP AOP.io lib (and configure your autoloader) or use composer require: "aop-io/php-aop".

Usage

use Aop\Aop;

// Init
new Aop();

function hello($name)
{
    return $name
}

// Interception of kind 'around'
Aop::addAround('hello()', function($joinPoint) {

    // In this context,
    // $joinPoint is an instance of \Aop\JoinPoint\AroundFunctionJoinPoint

    // get an array with all arguments values
    var_dump($joinPoint->getArgs()); // (array) 0 => World !

    // change the return value
    $joinPoint->setReturnValue('Hello Nico !');

    // Proceed the execution of the function ( hello() )
    $joinPoint->proceed();
});

echo hello('World !'); // Hello Nico !

License

MIT (c) 2013, Nicolas Tallefourtane.

Author

Nicolas Tallefourtane - Nicolab.net
Nicolas Talle
Make a donation via Paypal

About

Provides an abstraction layer easy to use for AOP development, it can work with several PHP code interceptors.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages