linusshops / self-modifying-code
此包已被弃用且不再维护。未建议替代包。
类定义的运行时修改
0.0.3
2017-05-10 19:59 UTC
Requires
- php: ^5.0.0
This package is not auto-updated.
Last update: 2022-05-04 06:55:25 UTC
README
SMC提供了一种方便的方法,在REPL或调试控制台中进行功能重载。
在控制台中测试过某些内容,并在调试时意识到需要更改什么?通常,您必须终止会话,从而丢失任何累积的控制台会话上下文。SMC允许您在执行过程中重新加载类或方法定义(类似于lisp和clojure提供的REPL环境)。
由于runkit的限制,如果您正在执行一个类,您不能重新加载整个类。但是,您可以重新加载单个方法。
🔥🔥🔥🔥🔥🔥
这仅适用于用作调试辅助工具或在REPL环境中使用。
如果您使用此功能实现功能,您需要重新评估您的决定。
🔥🔥🔥🔥🔥🔥
安装
如果未安装runkit,请使用pecl install runkit安装它。
将linusshops/self-modifying-code添加到您的composer.json中。
使用方法
所有重载方法都返回一个布尔值,表示SMC是否能够重新定义请求的标识符。
所有重载方法都可以接受字符串类定义或类的实例。
重新加载一个类
SMC::reload_class('SomeClassName')
重新加载一个类方法
SMC::reload_method('SomeClassName', 'methodName')