【发布时间】:2020-03-09 07:16:14
【问题描述】:
我确实使用带有大 if-elseif 语句的 post 方法创建了一个 User 类,如下所示:
class Users
{
public static function post($request)
{
if ($request[0] == 'register') {
return self::register();
} elseif ($request[0] == 'login') {
return self::login();
} elseif ($request[0] == 'pass') {
return self::changePass();
} elseif ($request[0] == 'avatar') {
return self::updateAvatar();
} elseif ($request[0] == 'logout') {
return self::logout();
}
throw new Excepcion....;
}
private static function register()
{
//Return something
}
private static function login()
{
//Return something
}
private static function changePass()
{
//Return something
}
private static function updateAvatar()
{
//Return something
}
private static function logout()
{
//Return something
}
}
我已经试过了:
public static function post($request)
{
$method = $request[0];
return self::{$method}();
}
但是 PHPMD 发送警告避免未使用的私有方法
感谢您的帮助!
【问题讨论】:
-
根据 PHPMD 消息的重要性,您可以查看是否可以将它们用于已知调用的方法(phpmd.org/documentation/suppress-warnings.html 可能会有所帮助)
-
嗨@NigelRen 我是干净代码的粉丝,所以它对我来说非常重要
-
您的确切问题是什么?
-
嗨@ArSeN,确切的问题是:有没有办法重构 if 语句(或 switch)的使用,这与我在问题中所说的不同?谢谢
标签: php refactoring