定制 hyperf/aop-integration 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

hyperf/aop-integration

最新稳定版本:v1.2.0

Composer 安装命令:

composer require hyperf/aop-integration

包简介

AopIntegration

README 文档

README

PHPUnit

安装

composer require hyperf/aop-integration 

配置 AOP 到 ThinkPHP 框架

  1. 添加配置到 config/config.php
<?php declare(strict_types=1); ! defined('BASE_PATH') && define('BASE_PATH', dirname(__DIR__, 1)); return [ 'annotations' => [ 'scan' => [ 'paths' => [ BASE_PATH . '/app', ], 'ignore_annotations' => [ 'mixin', ], 'class_map' => [ ], ], ], 'aspects' => [ // 在此配置可用的 Aspect ], ];
  1. 修改入口文件
<?php declare(strict_types=1); namespace think; use Hyperf\AopIntegration\ClassLoader; require __DIR__ . '/../vendor/autoload.php'; // 初始化 AOP ! defined('BASE_PATH') && define('BASE_PATH', dirname(__DIR__, 1)); ClassLoader::init(); // 省略其他代码

配置 AOP 到 Webman 框架

增加 AOP 相关配置

我们需要在 config 目录下,增加 config.php 配置

<?php use Hyperf\Di\Annotation\AspectCollector; return [ 'annotations' => [ 'scan' => [ 'paths' => [ BASE_PATH . '/app', ], 'ignore_annotations' => [ 'mixin', ], 'class_map' => [ ], 'collectors' => [ AspectCollector::class ], ], ], 'aspects' => [ // 这里写入对应的 Aspect app\aspect\DebugAspect::class, ] ];

配置入口文件 start.php

我们将初始化方法,放到 timezone 下方,以下省略其他代码

use Hyperf\AopIntegration\ClassLoader; if ($timezone = config('app.default_timezone')) { date_default_timezone_set($timezone); } // 初始化 ClassLoader::init();

测试

首先让我们编写待切入类

<?php namespace app\service; class UserService { public function first(): array { return ['id' => 1]; } }

其次新增对应的 DebugAspect

<?php namespace app\aspect; use app\service\UserService; use Hyperf\Di\Aop\AbstractAspect; use Hyperf\Di\Aop\ProceedingJoinPoint; class DebugAspect extends AbstractAspect { public $classes = [ UserService::class . '::first', ]; public function process(ProceedingJoinPoint $proceedingJoinPoint) { var_dump(11); return $proceedingJoinPoint->process(); } }

接下来编辑控制器 app\controller\Index

<?php namespace app\controller; use app\service\UserService; use support\Request; class Index { public function json(Request $request) { return json(['code' => 0, 'msg' => 'ok', 'data' => (new UserService())->first()]); } }

最后启动服务,并测试。

php start.php start curl http://127.0.0.1:8787/index/json

统计信息

  • 总下载量: 4.13k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 3
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 9
  • Watchers: 1
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固