Skip to content

Commit 933f237

Browse files
committed
Merge pull request #24 from skipperbent/development
Development
2 parents c60d7d8 + b3f8910 commit 933f237

File tree

7 files changed

+37
-17
lines changed

7 files changed

+37
-17
lines changed

src/Pecee/Http/Middleware/BaseCsrfVerifier.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use Pecee\Exception\TokenMismatchException;
66
use Pecee\Http\Request;
77

8-
class BaseCsrfVerifier extends Middleware {
8+
class BaseCsrfVerifier implements IMiddleware {
99

1010
const POST_KEY = 'csrf-token';
1111
const HEADER_KEY = 'X-CSRF-TOKEN';
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
namespace Pecee\Http\Middleware;
3+
4+
use Pecee\Http\Request;
5+
6+
interface IMiddleware {
7+
public function handle(Request $request);
8+
}

src/Pecee/Http/Middleware/Middleware.php

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/Pecee/SimpleRouter/RouterBase.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ public function getRoute($controller = null, $parameters = null, $getParams = nu
253253
throw new \InvalidArgumentException('Invalid type for getParams. Must be array or null');
254254
}
255255

256-
if($controller === null && $parameters === null) {
256+
if($controller === null && $parameters === null && $this->loadedRoute !== null) {
257257
return $this->processUrl($this->loadedRoute, null, $getParams);
258258
}
259259

src/Pecee/SimpleRouter/RouterController.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,29 @@ public function __construct($url, $controller) {
1717
$this->controller = $controller;
1818
}
1919

20+
public function renderRoute(Request $request) {
21+
if(is_object($this->getCallback()) && is_callable($this->getCallback())) {
22+
23+
// When the callback is a function
24+
call_user_func_array($this->getCallback(), $this->getParameters());
25+
} else {
26+
// When the callback is a method
27+
$controller = explode('@', $this->getCallback());
28+
$className = $this->getNamespace() . '\\' . $controller[0];
29+
30+
$class = $this->loadClass($className);
31+
$method = $request->getMethod() . ucfirst($controller[1]);
32+
33+
if (!method_exists($class, $method)) {
34+
throw new RouterException(sprintf('Method %s does not exist in class %s', $method, $className), 404);
35+
}
36+
37+
call_user_func_array(array($class, $method), $this->getParameters());
38+
39+
return $class;
40+
}
41+
}
42+
2043
public function matchRoute(Request $request) {
2144
$url = parse_url($request->getUri());
2245
$url = rtrim($url['path'], '/') . '/';

src/Pecee/SimpleRouter/RouterEntry.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Pecee\SimpleRouter;
44

5-
use Pecee\Http\Middleware\Middleware;
5+
use Pecee\Http\Middleware\IMiddleware;
66
use Pecee\Http\Request;
77

88
abstract class RouterEntry {
@@ -208,7 +208,7 @@ public function addSettings(array $settings = null) {
208208
public function setSettings($settings) {
209209
$this->settings = $settings;
210210

211-
if($settings['prefix']) {
211+
if(isset($settings['prefix'])) {
212212
$this->setPrefix($settings['prefix']);
213213
}
214214

@@ -246,7 +246,7 @@ protected function loadClass($name) {
246246
public function loadMiddleware(Request $request) {
247247
if($this->getMiddleware()) {
248248
$middleware = $this->loadClass($this->getMiddleware());
249-
if (!($middleware instanceof Middleware)) {
249+
if (!($middleware instanceof IMiddleware)) {
250250
throw new RouterException($this->getMiddleware() . ' must be instance of Middleware');
251251
}
252252

src/Pecee/SimpleRouter/RouterGroup.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public function __construct() {
1313
public function renderRoute(Request $request) {
1414
// Check if request method is allowed
1515

16-
if(strtolower($request->getUri()) == strtolower($this->prefix) || stripos($request->getUri(), $this->prefix) === 0) {
16+
if(trim($this->prefix) === '' || strtolower($request->getUri()) == strtolower($this->prefix) || stripos($request->getUri(), $this->prefix) === 0) {
1717

1818
$hasAccess = (!$this->method);
1919

0 commit comments

Comments
 (0)