如何在php中为单个作业调用多个类[比方说模块]


how to call multiple classes [lets say modules] for a single job in php

在管理Radius身份验证(创建用户、续订用户、删除用户、过期时间等)的CMR项目中

我想在多个会计服务器中创建用户,如free radius、mikrotik用户管理器radius等。。。我已经为那些记帐服务器开发了API我无法理解的是,我应该如何调用一个方法来触发,即在所有模块(free radius.inc.php,userman.inc.php)中调用一个名为create_user()的方法来在所有会计服务器中创建用户。

假设createuser()方法存在于所有这些方法中。

我还想稍后在项目中添加更多的会计服务器类,我不想为另一个会计支持实现硬编码

提前感谢

我不确定我是否理解你的意思,但让我们试一试。要提取accounting servers,您应该使用一个接口。

<?php
interface AccountingServer {
    public function create_user();
}
class Server1 implements AccountingServer {
    public function create_user()
    {
        echo "Create user on server 1";
    }
}

class Server2 implements AccountingServer {
    public function create_user()
    {
        echo "Create user on server 2";
    }
}
$server1 = new Server1();
$server1->create_user();
$server2 = new Server2();
$server2->create_user();
?>

如果要在所有accounting servers中共享create_user()方法,则应使用父子结构。

<?php
abstract class AccountingServer {
    public function create_user()
    {
        echo "Create user";
    }
}
class Server1 extends AccountingServer {
}
class Server2 extends AccountingServer {
}
$server1 = new Server1();
$server1->create_user();
$server2 = new Server2();
$server2->create_user();
?>

这能回答你的问题吗?