如果您不熟悉 Model-View-Controller 模式,阅读它可能是谨慎的。MVC 通常是 Web 应用程序高级设计的正确起点。
此外,CMS 是一个足够大的项目,您应该考虑使用 PHP 框架(如 CodeIgniter、Symfony、Zend 等)来让您的生活更轻松。它消除了许多繁重的工作和常见的任务。
动态页面创建和显示
我认为您想将其分为两部分:文本内容(基本上是您在表单中放入的内容)和围绕该内容的 HTML 模板。
当您创建页面或博客文章时,您可能希望将实际内容(您在创建表单中键入的内容)存储在某种数据库中(不一定是 RDBMS,但如果您正在尝试构建 MySQL 技能,它是一个合理的选择)。
然后,您将使用单独的函数将该内容绑定到 HTML 模板中,并在用户加载给定页面时将其呈现给用户。
网址路由
要获得更好看的 URL,您可以使用 apache 的 mod_rewrite 之类的东西。您可以使用它来转换这样的 URL:
posts/how-to-make-a-cms
对此:
posts.php?title=how-to-make-a-cms
然后你可以像往常一样从 GET 读取posts.php。您选择如何进行转换是非常开放的。
为了避免进行真正复杂的重写,人们通常只是将所有内容构建到一个中央路由脚本,该脚本确定要调用的类和方法以及传递它的参数。所以它会将上面的 URL 重写为:
main.php?a=posts/how-to-make-a-cms
然后 main.php 将从 GET 中解析出该参数的片段并找出将它们发送到哪里。就像它可能需要posts/show/how-to-make-a-cms
做类似的事情:
$o = new Posts();
$o->show("how-to-make-a-cms");
如果你这样做,我认为你可以完全避免 mod_rewrite 只要你愿意只接受稍微漂亮的 URL,就像这样:
mysite.com/main.php?/posts/show/how-to-make-a-cms
我以前没有做过这种事情(因为框架已经做得很好了),所以我可能会遗漏一些小细节。