最近、私は Laravel を学び始めました。これは本当に優れた PHP フレームワークです。現在、Laravel の動作に似た独自の MVC を作成しようとしています。
私の論理
ルートを設定し、現在の URL が存在するかどうかを確認し、そこからコントローラとメソッドを から設定し'uses'
、そうでない場合はコントローラを に設定しERROR
ます。問題は、$routes 変数にアクセスできないことです。
PHP を試してみるとエラーが表示されますが、PHP バージョンが5.2static::$routes = ..
であっても Lavarel は正常に動作しています。全体の仕組みがわかりません。また、アーキテクチャを構築する方法について何か提案があれば:)
index.php
include 'router.php';
include 'route.php';
Route::get('about',array('uses'=> 'about@index'));
Route::get('about2',array('uses'=> 'about@index'));
ルーター.php
class Router {
public static $routes = array(
'GET' => array(),
'POST' => array(),
'PUT' => array(),
'DELETE' => array(),
'PATCH' => array(),
'HEAD' => array(),
);
public $valid = false;
public static $methods = array('GET', 'POST', 'PUT', 'DELETE', 'HEAD');
public static function register($method, $route, $action)
{
if (ctype_digit($route)) $route = "({$route})";
if (is_string($route)) $route = explode(', ', $route);
foreach ((array) $route as $uri){
if (is_array($action)){
$routes[$method][$uri] = $action;
}
}
$request = $_SERVER['REQUEST_URI'];
$request = trim($request, '/');
$exist = array_key_exists($request, $routes[$method]);
if($exist){
$valid = true;
}
echo $valid;
// print_r($routes);
}
}
route.php
class Route {
public static function get($route, $action)
{
Router::register('GET', $route, $action);
}
}