**我今天的小脑袋瓜子突然一个激灵,来了一个想法。
我要是可以通过传递一个参数的方式就调用某个方法做对应的操作就好了。
比如我希望所有的入口来了都可以 通过(new Handler())->boot($filename) 来实现。我只要传递一个文件名,然后就可以做一个操作。
理想状态:假设我传递的是一个GithubUserInfo ,那么它就会把我的github的个人信息获取到,或者做某个点赞之类的其他操作。
最理想的状态就是有个文件夹common 专门放一些对象的操作,比如github的操作,飞书的操作,qq的操作等对象化操作。
这样理论上是可行的,接下来只要确定php可以new后面接一个变量之后是否会实例化变量的值对应的类
目录如下
+ common
+ test.php
+ Handler.php
Handler.php 的代码如下
class Handler{
function boot(){
$classname = 'Test';
require_once(__DIR__ . '/common/'.strtolower($classname) . '.php');
try {
$instance = new $classname;
echo $instance->run();
} catch (\Throwable $th) {
echo $classname . '类不存在';
}
}
}
(new Handler())->boot();
common/test.php 的代码如下
class Test{
public $name;
function __construct($name = 'sinmu')
{
$this->name = $name;
}
function getName(){
return $this->name;
}
function run(){
return $this->getName();
}
}
接下来我只需要在当前目录下执行一个命令php -f Handler.php 就可以验证了
这样的话我之后就可以在common中添加php文件,然后这个类文件里面只要有一个run 方法就可以实现『根据自动将传入的变量进行实例化对应的类』
|