使用 Go! 进行 PHP 的面向方面编程

安装并配置 Go!

Go! 库并未扩展;它完全由PHP编写,并为PHP5.4或更高版本使用。作为一个纯PHP库,它部署简易,即使是在不允许编译安装你自己的PHP扩展的受限及共享主机环境,也可以轻易安装。

使用 Composer 安装 Go!

Composer 是安装 PHP 包的首选方法。如果你没有使用过 Composer,你可以在Go! GitHub repository下载。

首先,将下面几行加入你的 composer.json 文件。

1 {
2     "require": {
3         "lisachenko/go-aop-php": "*"
4     }
5 }

之后,使用 Composer 安装 go-aop-php。在终端中运行下面命令:

1 $ cd /your/project/folder
2 $ php composer.phar update lisachenko/go-aop-php

Composer 将会在之后数秒中内安装引用的包以及需求。如果成功,你将看到类似下面的输出:

01 Loading composer repositories with package information
02 Updating dependencies
03   - Installing doctrine/common (2.3.0)
04     Downloading: 100%
05  
06   - Installing andrewsville/php-token-reflection (1.3.1)
07     Downloading: 100%
08  
09   - Installing lisachenko/go-aop-php (0.1.1)
10     Downloading: 100%
11  
12 Writing lock file
13 Generating autoload files

在安装完成后,你可以在你的代码目录中发现名为 vendor 的文件夹。Go! 库及其需求就安装在这。

01 $ ls -l ./vendor
02 total 20
03 drwxr-xr-x 3 csaba csaba 4096 Feb  2 12:16 andrewsville
04 -rw-r--r-- 1 csaba csaba  182 Feb  2 12:18 autoload.php
05 drwxr-xr-x 2 csaba csaba 4096 Feb  2 12:16 composer
06 drwxr-xr-x 3 csaba csaba 4096 Feb  2 12:16 doctrine
07 drwxr-xr-x 3 csaba csaba 4096 Feb  2 12:16 lisachenko
08  
09 $ ls -l ./vendor/lisachenko/
10 total 4
11 drwxr-xr-x 5 csaba csaba 4096 Feb  2 12:16 go-aop-php

整合到我们的项目

我们需要创建一个调用,介于路由/应用程序的入口点。自动装弹机的然后自动包括类。开始吧!引用作为一个切面内核。

01 use Go\Core\AspectKernel;
02 use Go\Core\AspectContainer;
03  
04 class ApplicationAspectKernel extends AspectKernel {
05  
06     protected function configureAop(AspectContainer $container) {
07  
08     }
09  
10     protected function getApplicationLoaderPath() {
11  
12     }
13  
14 }
现在,AOP是一种在通用编程语言中相当成熟的技术。

例如,我创建了一个目录,调用应用程序,然后添加一个类文件: ApplicationAspectKernel.php 。

我们开始切面扩展!AcpectKernel 类提供了基础的方法用于完切面内核的工作。有两个方法,我们必须知道:configureAop()用于注册页面特征,和 getApplicationLoaderPath() 返回自动加载程序的全路径。转载请注明诚信在线下载http://www.ttt8888.com

posted on 2013-07-01 10:14  ergtbh  阅读(500)  评论(0)    收藏  举报

导航