diff --git a/build/database/core/Repo.php b/build/database/core/Repo.php index f56b6a0..d591b3d 100644 --- a/build/database/core/Repo.php +++ b/build/database/core/Repo.php @@ -26,20 +26,20 @@ - public static function request(Array $path=null){ + public static function request(String $repo=null, String $method=null){ /* (1) Check arguments ---------------------------------------------------------*/ - /* (1) Check @path */ - if( !is_array($path) || count($path) != 2 ) - throw new \Exception("@path is not an array with 2 elements"); + /* (1) Check @repo */ + if( !is_string($repo) || strlen($repo) < 1 ) + throw new \Exception("@repo is not a non-empty string"); - /* (2) Deep check @path */ - if( !is_string($path[0]) || !is_string($path[1]) ) - throw new \Exception("@path elements must be 2 strings"); + /* (2) Check @method */ + if( !is_string($method) || strlen($method) < 1 ) + throw new \Exception("@method is not a non-empty string"); /* (3) Check class path */ - $class_path = "\\database\\repo\\".$path[0]; + $class_path = "\\database\\repo\\$repo"; if( !\class_exists($class_path) ) throw new \Exception("Repo class '$class_path' cannot be found"); @@ -51,7 +51,7 @@ $instance = new $class_path(); /* (2) Check extends Repo_i */ - if( !( $instance instanceof Repo_i) ) + if( !( $instance instanceof Repo_i ) ) throw new \Exception("Repo class '$class_path' must extends Repo_i"); /* (3) Bind pdo instance */ @@ -59,11 +59,11 @@ /* (3) Check if the method exists */ - if( !\method_exists($instance, $path[1]) ) - throw new \Exception("Repo '${path[0]}' has no public method '{$path[1]}'"); + if( !\method_exists($instance, $method) ) + throw new \Exception("Repo '$repo' has no public method '$method'"); /* (4) Fetch response (send arguments as well) */ - $response = call_user_func_array([$instance, $path[1]], array_slice(func_get_args(), 1)); + $response = call_user_func_array([$instance, $method], array_slice(func_get_args(), 2)); /* (5) Call post-script */ $instance = null;