PDA

View Full Version : یه مشکل با mvc خودم ؟



redhat2
پنج شنبه 19 بهمن 1391, 10:38 صبح
سلام به دوستان : این کدمن هست :

request :



class Request {

private static $_breakUrl;
public static $_controller;
private static $_GETurl;

public static function breakUrl($url = null) {
$url = trim($url ? $url : $_GET['url'], '/');
$urlBreak = explode('/', $url);
self::$_breakUrl = array(
'controller' => isset($urlBreak[0]) ? $urlBreak[0] : 'index',
'action' => isset($urlBreak[1]) ? $urlBreak[1] : 'index',
'query' => isset($urlBreak[2]) ? $urlBreak[2] : true
);
$_GET = array_merge($_GET, self::$_breakUrl);
self::$_GETurl = $_GET;
}

public static function getController() {
return self::$_GETurl['controller'];
}

public static function getAction() {
return isset(self::$_GETurl['action']) ? self::$_GETurl['action'] : null;
}

}



index.php :



<?php

require_once('libs/config.php');
require_once('libs/autoloader.php');
$url = new Request();
$url = Request::breakUrl();
$value = Request::getController();
$name = Request::getAction();
echo $value;
echo "<br>";
echo $name;
?>


این هم htaccess :



RewriteEngine On

RewriteCond %{REQUEST_FILENMAE} !-d
RewriteCond %{REQUEST_FILENMAE} !-f
RewriteCond %{REQUEST_FILENMAE} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]


من وقتی که url ام به این شکل هست :

localhost/mvc/controller/action درست کار میکنه
یا وقتی که آدرسم اینشکلی هست درست کار میکنه :

localhost/mvc/controller

ولی وقتی که آدرسم اینطوری میشه :


localhost/mvc

به جای اینکه controller من index باشه ، index.php هست در صورتی که Action من به درستی index را نشنون میده ؟ مشکل کجاست ؟
---------------------------------------------------------------------------------------------
یه سوال دیگه هم داشتم : یه جا دیدم که طرف اومده بود توی فایل Request به جای
$_get[] ،

$_SERVER['REQUEST_URI'] و آرگومان تابع ($url) اون هم null بود ولی تابع به درستی کار میکرد ولی تویه تابع من کار نمیکنه ؟ مشکل این کجاست