Download the PHP package goaop/goaop-laravel-bridge without Composer
On this page you can find all versions of the php package goaop/goaop-laravel-bridge. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package goaop-laravel-bridge
GoAopBridge
The GoAopBridge adds support for Aspect-Oriented Programming via Go! AOP Framework for Laravel5 applications.
Overview
Aspect-Oriented Paradigm allows to extend the standard Object-Oriented Paradigm with special instruments for effective solving of cross-cutting concerns in your application. This code is typically present everywhere in your application (for example, logging, caching, monitoring, etc) and there is no easy way to fix this without AOP.
AOP defines new instruments for developers, they are:
- Joinpoint - place in your code that can be used for interception, for example, execution of single public method or accessing of single object property.
- Pointcut is a list of joinpoints defined with a special regexp-like expression for your source code, for example, all public and protected methods in the concrete class or namespace.
- Advice is an additional callback that will be called before, after or around concrete joinpoint. For PHP each advice is represented as a
\Closure
instance, wrapped into the interceptor object. -
Aspect is a special class that combines pointcuts and advices together, each pointcut is defined as an annotation and each advice is a method inside this aspect.
You can read more about AOP in different sources, there are good articles for Java language and they can be applied for PHP too, because it's general paradigm. Alternatively, you can watch a nice presentation about AOP in Laravel
Installation
GoAopBridge can be easily installed with composer. Just ask a composer to download the bundle with dependencies by running the command:
Laravel 5.5+
No action is needed. After the command composer require goaop/goaop-laravel-bridge
the package is installed and configured automatically. For a manual configuration, follow these steps.
Laravel 5.4 or less
Add the Go\Laravel\GoAopBridge\GoAopServiceProvider
to your config/app.php providers
array:
Make sure that this service provider is the first item in this list. This is required for the AOP engine to work correctly.
Lumen
Register the Go\Laravel\GoAopBridge\GoAopServiceProvider
to the app in your bootstrap/app.php:
Make sure that this service provider is the first call to $app->register()
. This is required for the AOP engine to work correctly.
Configuration
The default configuration in the config/go_aop.php
file. If you want to change any of the default values you have to copy this file to your own config directory to modify the values.
If you use Laravel, you can also publish the config using this command:
If you use Lumen, you have to manually load the config file, example:
Configuration can be used for additional tuning of AOP kernel and source code whitelistsing/blacklisting.
Defining new aspects
Aspects are services in the Laravel application and loaded into the AOP container with the help of service provider that collects all services tagged with goaop.aspect
tag in the container. Here is an example how to implement a logging aspect that will log information about public method invocations in the app/ directory.
Definition of aspect class with pointuct and logging advice
To register all application aspects in the container, create a service provider (or use an existing one)
Inside register()
method for this service provider, add declaration of aspect and tag it with goaop.aspect
tag:
Don't forget to add this service provider into your config/app.php
service providers list!
License
This bridge is under the MIT license. See the complete LICENSE in the root directory