鍍金池/ 問答/PHP  HTML/ 如何用代碼給一個(gè)php文件中的類添加一個(gè)方法呢?

如何用代碼給一個(gè)php文件中的類添加一個(gè)方法呢?

比方說現(xiàn)在有一個(gè)文件,內(nèi)容是

class Foo
{
    public function __construct() {
    
    }
    
    public function a() {}
}

我想把文件內(nèi)容換成

class Foo
{
    protected $var;

    public function __construct() {
    
    }
    
    public function a() {}
    public function b() {}
}

用代碼如何實(shí)現(xiàn)呢?怎么定位到要把字符串添加進(jìn)去的位置呢?

回答
編輯回答
墨沫

正常來說我會(huì)推薦使用繼承。

不過看題主言之鑿鑿的樣子似乎真的是想以字符編輯的方式給類增加方法,那就復(fù)雜了,至少我不知道有現(xiàn)成的庫或者工具支持這樣做。我建議題主從文檔結(jié)構(gòu)入口,寫一個(gè)簡(jiǎn)單的語法分析工具來做,比如找到入口(符合 ~class (\w+)~,然后逐行解析。

2017年10月4日 20:08
編輯回答
傲寒
class Foo
{
    public function __construct() {
    
    }
    
    public function a() {}
    //add code area
}
$a = file_get_contents('a.php');
$addCode = 'public function b() {}';
$a = str_replace('//add code area',$addCode."\n\t//add code area",$a);
file_put_contents('a.php',$a);
2018年2月1日 03:26