Php CMS permalink和模板系统如何实现?

Php CMS permalink和模板系统如何实现?,php,mysql,content-management-system,templating,Php,Mysql,Content Management System,Templating,我想了解如何在php网站上使用模板系统和永久链接:D 让我再描述一下我自己 1.目前我有20个文件,每个文件都有自己的php逻辑(index.php、wizard.php、search.php等) 都使用相同的类和includes。(install.php在所有文件中包含我的项目中所有类所需的所有内容abd u require_一次(install.php)) 我想把我的网站改造成 Analyze URL requested ---> IDENTIFY requested page ---

我想了解如何在php网站上使用模板系统和永久链接:D

让我再描述一下我自己

1.目前我有20个文件,每个文件都有自己的php逻辑(index.php、wizard.php、search.php等) 都使用相同的类和includes。(install.php在所有文件中包含我的项目中所有类所需的所有内容abd u require_一次(install.php))

我想把我的网站改造成

Analyze URL requested ---> IDENTIFY requested page ---> GET TEMPLATE for THIS PAGE -->MODIFY header(meta) and footer(javascript) ---> add logic ---> display page :D.
有人能让我走上正确的学习轨道吗:D!。因为我完全用面向对象编程(oop)编写了我的网站,并从MYSQL(简单的小型CMS)动态加载了所有内容,但我不知道如何将模板和php加入索引,而不重复我自己的工作,并为我的网站中的每个页面创建不同的文件!(当然,每个文件做不同的工作,比如file users.php做登录和注册,以及userprofile等)

希望我的英语不是太差,你能理解我的问题:D

我目前的做法是:

Mysql表:第页 列:pagename、LogicFile、templateFile、MetaTag

php?页面名

将检查是否尚未缓存或未列出进行更改,它将:

Mysql:SELECT * WHERE pagename='$_GET['page']'
loginfiles=cars.php,search.php(将使用分解并包含) 模板文件=也将根据MetaTag进行分解和修改。 元标记:序列化的assoc数组,其['name']=['value']

然后启动缓冲区输出,用新的描述和关键字替换模板(自动生成) 包含逻辑文件 include footer.php(包括脚本)


我是接近纠正溃败,还是仍然遥远?还是我迷失了方向,过度杀戮了?最好的办法是走这条路:

  • 解析请求数据

  • 确定将要使用的控制器
  • 在controller select layout and template[layout“includes”template中,它包含所有页面共有的内容,并且该模板具有特定于请求的内容]
  • 在控制器中也从数据库中获取数据[MVP方式]
  • 将数据分配给数组并将其传递给布局,它将进一步将数据传递给模板
  • 在布局和模板中,使用该数组中的数据并构造视图
  • 将所有内容传递到浏览器

这就是框架的工作方式,并没有那么糟糕

如果您不确定是要编写自己的,还是使用现有的

  • 这可能是一次非常有意义的经历,但写自己的东西却非常耗时
  • 如果您手头有一项任务需要解决,请使用现有任务
也就是说有很多模板系统,smarty是最长寿的一个。你可以在上面找到一个简短的讨论


您也有可能需要考虑的整个框架。它们不仅仅是一个模板系统,其中包括数据库、ajax助手等ZendCakePHP,以及Codeigniter都是流行的。您可以找到

这样您就不需要模板系统了?你想自己设计一个来学习如何使用?我不知道是否已经有了一个我可以使用的模板系统?确定将要使用的控制器(这意味着什么:o?)例如,如果你使用GET请求,您将选中?page=gallery&action=index或?page=news&action=display&id=3以对文件/controllers/gallery.php或/controllers/news.php进行urize。它也可能是mod_rewrite请求,因此您将分别拥有/gallery或/news/3。请参阅:。