Is there any way to optimize this if-else conditional example?

2

I'm looking for a conditional that looks like this or validates but without using so many lines of code

if (is_file(PATH_CONTROLLERS.$controller."/".$controller."Controller.php") || 
    is_file(PATH_CONTROLLERS.$controller."Controller.php") ) {

    if (is_file(PATH_CONTROLLERS.$controller."/".$controller."Controller.php") ) {
        require PATH_CONTROLLERS.$controller."/".$controller."Controller.php";
    }else{
        require PATH_CONTROLLERS.$controller."Controller.php";      
    }
        $controller .= 'Controller';
        $controller = new $controller();
        $controller->$method($param);
}else{
    echo "La Direccion que trata de Acceder No Existe ";
}
    
asked by Gamez 25.06.2017 в 20:51
source

1 answer

2

You can try this, using the ternary operator and some temporary variable.

$esArchivo = is_file(PATH_CONTROLLERS.$controller."/".$controller."Controller.php");
if ($esArchivo || is_file(PATH_CONTROLLERS.$controller."Controller.php") ) {
    require PATH_CONTROLLERS.$controller.($esArchivo ? "/".$controller : "")."Controller.php";
    $controller .= 'Controller';
    $controller = new $controller();
    $controller->$method($param);
} else {
    echo "La Direccion que trata de Acceder No Existe ";
}

You can also do it like this:

$ruta1 = PATH_CONTROLLERS.$controller."/".$controller."Controller.php";
$ruta2 = PATH_CONTROLLERS.$controller."Controller.php"; 
if (is_file($ruta1) || is_file($ruta2)) {
    require is_file($ruta1) ? $ruta1 : $ruta2;
    $controller .= 'Controller';
    $controller = new $controller();
    $controller->$method($param);
} else {
    echo "La Direccion que trata de Acceder No Existe ";
}
    
answered by 25.06.2017 / 21:38
source