我正在寻找一个面向对象的解决方案,或者可能是一个已经存在的框架来做我希望为一个有点小的后端/管理项目做的事情。
例如,系统是管理项目。因此每页都会有一个页眉/页脚/菜单。例如,两个页面是projects.php和notes.php。
要在这些页面上包含页眉和页脚,我通常会这样做:
//header.php
<!-- Header Content Here -->
include menu.php
//projects.php
include header.php
<!-- My Projects Content Here -->
include footer.php
//notes.php
include header.php
<!-- My Projects Content Here -->
include footer.php
并将每个页面的链接设为'/ projects /'或'/ notes /'
我也试过了:
//index.php
include header.php
include projects.php
include notes.php
include footer.php
//projects.php
if(isset($_GET['projects']) {
<!-- My Projects Content Here -->
//notes.php
if(isset($_GET['notes']) {
<!-- My Notes Content Here -->
并且我的菜单中的链接是'/index.php?projects'和'/index.php?notes'。
两者都令人沮丧,对我来说似乎不太流畅。我想在这里升级我的策略,但我不确定最好的方法。
最好的方法是什么?是否有一个轻量级的框架,可以为我管理这些?我想保留'/ projects /'和'/ notes /'中的链接,但只能创建一个从projects.php调用内容的对象,并将其自动放置在该链接点击上。
TLDR; - 我不想手动将header / footer / etc.php作为'include X'放入每个PHP页面模板文件中。我希望它知道每个页面都需要它,除非另有指定。
答案 0 :(得分:1)
创建一个名为page.php的文件:
if(!empty($_GET['page'])) {
// Could add check to see if file exists
$page = $_GET['page']; // Being "notes" or "projects"
include 'header.php'; // Assuming this includes <head>, header, menu, functions etc.
include $page.'.php'; // Makes notes.php or projects.php
include 'footer.php';
} else {
echo 'Someting went wrong';
}
对于菜单中的链接,它应为page.php?page=notes
或page.php?page=projects
答案 1 :(得分:0)
每个文件?你真的确定要这么做吗?它可能会导致数据崩溃。
但如果您坚持,请查找您的php.ini文件并查找auto_prepend_file
http://php.net/manual/en/ini.core.php#ini.auto-prepend-file
auto_prepend_file header.php // For Example
既然你没有从每个程序中删除header.php(或确保使用include_once),那么你就可以这样做了,那么你可能会遇到php错误。