繁体   English   中英

了解PHP的前端控制器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM