2

因此,自 2006 年以来,我一直在 PHP 中使用过程式编程风格。但在过去 4 年多的时间里,我错过了很多时间来变得更好。

最近我开始更多地承认面向对象编程。

最能向我指出的是 MVC 风格的组织和短网址。

而不是 url 是“index.php?page=profile&member=1”,而是“page/profile/member/1”。

我正在尝试使用广泛的资源来学习 OOP&MVC 架构,但这对我来说仍然有点太多无法掌握。甚至一个月后!

我一直只使用基本函数(等){}、if、else、and、or 语句和 SQL 查询来完成工作。到目前为止,这些知识几乎涵盖了我需要的一切。

我想知道是否有一种方法可以使用我的基本程序编程风格并仍然实现缩短的 url?

我在下面尝试过这种方法

.htaccess

RewriteEngine On
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php?page=$1 [L]

索引.php

<?php

$links = parse_ini_file('links.ini');

if (isset($_GET['page']) && array_key_exists($_GET['page'], $links)) {
    require $links[$_GET['page']];
}
else {
    echo '
    Home page or unknown link
    ';
}

链接.ini

members  = pages/members.php
profile  = pages/profile.php

此方法仅适用于缩短 URL,但我不知道如何使其与 profile/user/1 aka index.php?page=profile&user=1 (用户变量是数据库查询)一起使用

任何帮助将不胜感激!!!

4

1 回答 1

0

您可以使用所谓的前端控制器来完成此操作。这篇Sitepoint 文章可能有助于深入了解这个概念,但它不一定是面向对象的。

基本上,与其进行任何实际的重写,不如将所有请求定向到index.php

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php

现在,在 内index.php,您可以根据需要选择请求parse_url并处理请求。

于 2016-10-05T13:01:28.137 回答