linusshops/self-modifying-code

此包已被弃用且不再维护。未建议替代包。

类定义的运行时修改

0.0.3 2017-05-10 19:59 UTC

This package is not auto-updated.

Last update: 2022-05-04 06:55:25 UTC


README

Build Status

需要RunkitReflection

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')