من یه Router نوشتم ... وسط کار که بودم گفتم بگذارم تو سایت شما هم یه نظر بدین که کارم دزست هست یا نه ...
این فایل Router من هستش :
کد PHP:
<?phpclass Router
{
/*
All Properties
*/
private static $_RouteName=array();
private static $_Params=array();
/*
All Methods of Router
*/ //Register Manual Router
public static function register($router,$action)
{
if($router !== '' || $action !== '')
{
$routerParamsFinder = strpos($router,'#');
$ClassandActionName = explode('.', $action);
$ClassName = ucfirst(str_replace('Controller','',$ClassandActionName[0]));
$ActionName = $ClassandActionName[1].'Action';
if($routerParamsFinder === false)
{
self::$_RouteName[$router] = array(
'class' => $ClassName,
'actionName' => $ActionName,
//'params' => false
);
}
else
{
$rName = substr($router,0,strpos($router,'/'));
$Params = explode('#',$router);
for($i=1;$i < count($Params);$i++)
{
self::$_Params[$i] = $Params[$i];
}
self::$_RouteName[$rName] = array(
'class' => $ClassName,
'actionName' => $ActionName,
'params' => self::$_Params
);
}
}
else
{
self::$_RouteName[$rName] = array(
'class' => '',
'actionName' => '',
'params' => ''
);
}
}
//Check That Router is Manual or Coming From usersprivate static function checkRouter($url)
{
if(isset(self::$_RouteName[$url]))
{
if(isset(self::$_RouteName[$url]['params']))
{
retu 'Params';
}
else
{
retu 'NoParams';
}
}
else
{
retu 'DefualtFunction';
} }
//Catch Route And pass to the CheckRouter() After That show Result to the Userspublic static function routerURL($url)
{
$BreakUrl = explode('/', $url);
$bURL=$BreakUrl[0];
$conditions = self::checkRouter($BreakUrl[0]);
switch ($conditions) {
case 'Params':
$ClassName = 'App\Controllers\'.self::$_RouteName[$bURL]['class'];
$object2 = ucfirst(self::$_RouteName[$bURL]['actionName']);
if(autoload($ClassName) != "No")
{
if(method_exists($ClassName,$object2))
{
$i=0;
$b=1;
$sParams=array();
foreach (self::$_RouteName[$bURL]['params'] as $key )
{
$sParams[$i] = !empty($BreakUrl[$b]) ? $BreakUrl[$b] : false;
$i++;
$b++;
}
call_user_func_array(array($ClassName,$object2),$sParams);
}
else
{
echo "Method is not Exist";
}
}
else
{
echo "File is Not Exist";
}
break;
case 'NoParams':
$ClassName = 'App\Controllers\'.self::$_RouteName[$bURL]['class'];
$object2 = ucfirst(self::$_RouteName[$bURL]['actionName']);
if(autoload($ClassName) != "No")
{
if(method_exists($ClassName,$object2))
{
$object=new $ClassName;
$object->$object2();
}
else
{
echo "Method is not Exist";
}
}
else
{
echo "File is Not Exist";
}
break;
case 'DefualtFunction':
echo "User Function bayad beravad";
//Inja Bayad be ye Tabe bere ke Bebine URL esh Sahih hast ya Na(Ke Hosele nadashtam naneveshtam)
break;
default:
echo "Nothing";
break;
}
}
}?>فقط میخواستم بدونم چیزی که نوشتم اصولی هست یا نه چون چیزی بوده که خودم نوشتم برای همین اصولی بودنش برام مهم هست و اگه اشکالی توش هست لطفا تذکر بدین تا مرتفع بشه تو برنامم ممنونم


ما را در سایت php مرکز کد های سایت دنبال میکنید
برچسب: نویسنده: استخدام کار بازدید: 141