[英]Understanding the front controller with PHP
我对PHP非常陌生,并且设法创建了一个非常粗糙的CMS。 目前,它正在使用许多不同的页面,包括在内。
但是,如果可能的话,我想使用控制器而不是有很多页面(我已经有了article.php/admin.php
)。
举例来说,我正在尝试转换为以下形式:
switch ( 'admin' ) {
case 'home':
include 'view/home.php';
break;
case 'admin':
include 'view/admin.php';
break;
case 'article':
include 'view/article.php';
break;
default:
echo 'default';
break;
}
这将与$_GET['page']
,因此管理URL如下: http://cms.dev/?page=admin
: $_GET['page']
admin
但是,如果我需要转到admin的子目录怎么办? 例如,如果这些是硬编码页面,我将转到admin/new-post.php
。 我可以使用$_GET method
获得等效的结果吗?
很抱歉,如果这个解释不好。 让我知道,我将尝试对其进行编辑。 我曾经使用过大量的教程,所以我对这些都不是100%的。
您可以在$_GET['page']
变量中使用正斜杠,因此https://cms.dev/?page=admin/new-post.php
应该可以正常工作。
或者,您可以将其放入.htaccess文件中:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
然后从REQUEST_URI获取它:
$uri = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.