V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
blowing00

写了个 PHP7 的 AOP 扩展

  •  1
     
  •   blowing00 · Dec 6, 2019 · 3851 views
    This topic created in 2338 days ago, the information mentioned may be changed or developed.
    github 地址: https://github.com/nanhao/easy_aop

    由于 pecl 的 AOP 扩展太老了,不支持 PHP7,所以自己动手写了一个。

    -可以动态地往任意一个方法的开头和结尾添加代码,还可以进行拦截。
    -适合更好地组织日志、访问控制、统计、缓存、参数检查等切面代码。
    -高级用法还可以对开源的第三方库打定制化的补丁。

    现在发了 v1.0.1-alpha 版本,有兴趣的可以玩一玩。
    使用中遇到问题或者有建议,欢迎反馈。
    Supplement 1  ·  Dec 6, 2019
    目前该版本是测试版,暂不推荐用于生产环境
    8 replies    2019-12-31 22:17:50 +08:00
    codespots
        1
    codespots  
       Dec 6, 2019
    star 下,原来可以通过扩展的方式实现 aop,之前用 php 的时候没办法做到 aop,导致很多方法不得不写 N 次,很不爽
    haiyang416
        2
    haiyang416  
       Dec 6, 2019
    README 挺详细的,之前没怎么具体使用过 AOP, 文档里提到的内容让我有了一些具体的认识。
    大致扫了一遍实现代码,是通过替换 zend_execute_ex 实现的功能,想问下和 OPcache 之类的拓展兼容性如何?
    blowing00
        3
    blowing00  
    OP
       Dec 6, 2019
    @haiyang416 原理上和 OPcache 并没有冲突。OPcache 是作用在编译环节的,而这个扩展是作用在执行环节。
    如果使用了其他替换 zend_execute_ex 的扩展,则可能会出现兼容问题。
    optional
        4
    optional  
       Dec 6, 2019   ❤️ 2
    缺一个 around,有了 around,其实 before after 反而不重要了。
    xiaotuzi
        5
    xiaotuzi  
       Dec 7, 2019 via iPhone
    对于写插件非常好的支持!就是部署环境的时候,额外安装,不过对于不公开的系统,这个就比较好玩了,别人没有这个扩展,拿到源码也没法玩。
    xiaotianhu
        6
    xiaotianhu  
       Dec 8, 2019 via iPhone
    高端啊 赞一个
    solaro
        7
    solaro  
       Dec 10, 2019
    AOP 我还是没搞明白它到底干嘛? OP CODE ?
    solaro
        8
    solaro  
       Dec 31, 2019
    去提交 pecl
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2442 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 05:10 · PVG 13:10 · LAX 22:10 · JFK 01:10
    ♥ Do have faith in what you're doing.