Laravel injection v1 #5
This commit is contained in:
+27
-8
@@ -1,14 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace BBRouter;
|
namespace BBRouter;
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* ROTA
|
*
|
||||||
*/
|
*/
|
||||||
class Route{
|
|
||||||
|
|
||||||
|
class Route {
|
||||||
/*
|
/*
|
||||||
* HTTP VERB
|
* HTTP VERB
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public $_verb = Array();
|
public $_verb = Array();
|
||||||
/*
|
/*
|
||||||
* Execution Source
|
* Execution Source
|
||||||
@@ -88,7 +90,6 @@ class Route{
|
|||||||
// Informational 1xx
|
// Informational 1xx
|
||||||
100 => 'Continue',
|
100 => 'Continue',
|
||||||
101 => 'Switching Protocols',
|
101 => 'Switching Protocols',
|
||||||
|
|
||||||
// Successful 2xx
|
// Successful 2xx
|
||||||
200 => 'OK',
|
200 => 'OK',
|
||||||
201 => 'Created',
|
201 => 'Created',
|
||||||
@@ -97,7 +98,6 @@ class Route{
|
|||||||
204 => 'No Content',
|
204 => 'No Content',
|
||||||
205 => 'Reset Content',
|
205 => 'Reset Content',
|
||||||
206 => 'Partial Content',
|
206 => 'Partial Content',
|
||||||
|
|
||||||
// Redirection 3xx
|
// Redirection 3xx
|
||||||
300 => 'Multiple Choices',
|
300 => 'Multiple Choices',
|
||||||
301 => 'Moved Permanently',
|
301 => 'Moved Permanently',
|
||||||
@@ -107,7 +107,6 @@ class Route{
|
|||||||
305 => 'Use Proxy',
|
305 => 'Use Proxy',
|
||||||
306 => '(Unused)',
|
306 => '(Unused)',
|
||||||
307 => 'Temporary Redirect',
|
307 => 'Temporary Redirect',
|
||||||
|
|
||||||
// Client Error 4xx
|
// Client Error 4xx
|
||||||
400 => 'Bad Request',
|
400 => 'Bad Request',
|
||||||
401 => 'Unauthorized',
|
401 => 'Unauthorized',
|
||||||
@@ -127,7 +126,6 @@ class Route{
|
|||||||
415 => 'Unsupported Media Type',
|
415 => 'Unsupported Media Type',
|
||||||
416 => 'Requested Range Not Satisfiable',
|
416 => 'Requested Range Not Satisfiable',
|
||||||
417 => 'Expectation Failed',
|
417 => 'Expectation Failed',
|
||||||
|
|
||||||
// Server Error 5xx
|
// Server Error 5xx
|
||||||
500 => 'Internal Server Error',
|
500 => 'Internal Server Error',
|
||||||
501 => 'Not Implemented',
|
501 => 'Not Implemented',
|
||||||
@@ -149,8 +147,26 @@ class Route{
|
|||||||
if (is_string($callback)) {
|
if (is_string($callback)) {
|
||||||
$segments = explode('@', $callback);
|
$segments = explode('@', $callback);
|
||||||
$class = new $segments[0]();
|
$class = new $segments[0]();
|
||||||
|
|
||||||
|
$r = new \ReflectionMethod($segments[0], $segments[1]);
|
||||||
|
|
||||||
|
if (sizeof($r->getParameters()) > 0 && $r->getParameters()[0]->getClass() != NULL) {
|
||||||
|
$element;
|
||||||
|
$element = $r->getParameters()[0]->getClass()->name;
|
||||||
|
$element = new $element;
|
||||||
|
$element->load($this->_params['id']);
|
||||||
|
$this->_params['id'] = $element;
|
||||||
|
}
|
||||||
$class->{$segments[1]}(...array_values($this->_params));
|
$class->{$segments[1]}(...array_values($this->_params));
|
||||||
} else {
|
} else {
|
||||||
|
$r = new \ReflectionFunction($callback);
|
||||||
|
if(sizeof($r->getParameters()) > 0 && $r->getParameters()[0]->getClass() != NULL){
|
||||||
|
$element;
|
||||||
|
$element = $r->getParameters()[0]->getClass()->name;
|
||||||
|
$element = new $element;
|
||||||
|
$element->load($this->_params['id']);
|
||||||
|
$this->_params['id'] = $element;
|
||||||
|
}
|
||||||
call_user_func_array($callback, $this->_params);
|
call_user_func_array($callback, $this->_params);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -201,6 +217,7 @@ class Route{
|
|||||||
$this->_block = true;
|
$this->_block = true;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
function not_block() {
|
function not_block() {
|
||||||
$this->_block = false;
|
$this->_block = false;
|
||||||
return $this;
|
return $this;
|
||||||
@@ -210,6 +227,7 @@ class Route{
|
|||||||
$this->_ignore = true;
|
$this->_ignore = true;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
function not_ignore() {
|
function not_ignore() {
|
||||||
$this->_ignore = false;
|
$this->_ignore = false;
|
||||||
return $this;
|
return $this;
|
||||||
@@ -228,7 +246,6 @@ class Route{
|
|||||||
$this->_before[$name] = $function;
|
$this->_before[$name] = $function;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function set_weight($weigth = 0) {
|
function set_weight($weigth = 0) {
|
||||||
$this->_weight = $weigth;
|
$this->_weight = $weigth;
|
||||||
return $this;
|
return $this;
|
||||||
@@ -261,4 +278,6 @@ class Route{
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user