<?php
namespace Fury\Modules\RoutesHelper;
/**
* RoutesHelper - Module for help with generation routes by Actions
* Author: Eugene Sukhodolskiy
* Date: 11.01.2020
* LastUpdate: 11.01.2020
* Version: 0.1 beta
*/
use Fury\Modules\Router\Router;
class RoutesHelper implements RoutesHelperInterface{
use RoutesHelperImplementation;
public function __construct(Router $router){
$this -> router = $router;
}
public function class(String $classname, Array $without = []){
$without = array_merge($this -> forbidden_to_create_for, $without);
$current_router_meth = $this -> router_meth;
$class = new \ReflectionClass($classname);
$methods = $class -> getMethods();
$result_routes = [];
foreach ($methods as $method){
if(in_array($method -> name, $without)){
continue;
}
$action_str = "{$classname}@{$method -> name}";
$this -> change_routing_meth($current_router_meth);
$result_routes = $this -> method($action_str);
}
return $result_routes;
}
public function method(String $action_str){
list($classname, $methname) = explode('@', $action_str);
$route = $this -> generate_route_by_method($classname, $methname);
$this -> add_route($route, $action_str);
$this -> log_generated_route($classname, $methname, $route);
return $route;
}
public function get_generated_routes(){
return $this -> generated_routes;
}
public function uri(){
$this -> change_routing_meth('uri');
return $this;
}
public function get(){
$this -> change_routing_meth('get');
return $this;
}
public function post(){
$this -> change_routing_meth('post');
return $this;
}
}