何时应该创建多个页面来显示内容,或者创建一个集中页面来获取要通过PHP和MySQL显示的数据?
<小时/> 我的具体情况是:我有一个数学网站,其中包含用于各种简单目的的计算器,例如简化激进,求解指数等。目前,每个计算器都有自己的页面(因此有
simplifying_radicals.php
和{{1 }}),导致计算器有多个页面。
我想知道是否应该将所有这些页面压缩成一个从数据库中提取内容的页面。例如,如果用户访问solving_for_exponents.php
,则PHP页面将从simplifying_radicals行中获取所有数据以进行相应显示。
数据库将包含指向每个计算器脚本的链接(通过Javascript计算),过程的中等长度描述,以及用户自己尝试的练习问题。每个计算器都有类似的格式,但我担心将计算器压缩到一个页面会降低灵活性并降低速度,因为服务器必须从数据库中获取内容。
所以,基本上,我对以下内容感兴趣:
答案 0 :(得分:0)
你为什么不做这样的事呢
<?php
// Your header stuff
switch($_GET['calculator']) {
case 'simplifying_radicals':
require_once 'simplifying_radicals.php';
break;
...etc
}
// Your footer stuff
?>
这样,计算器之间共享的所有代码只需要在页眉和页脚区域中编写,而计算器文件只包含特定于它们的内容。
答案 1 :(得分:0)
如果每个页面中都有大量代码,请将它们分开。顺便说一句,您可以更轻松地阅读,扩展,维护和调试它们。
如果每页只有几行,请将它们合并到一个文件中。现在,这是保持可读性等的更好方法。
如果您在每个页面上都有很高的负载,或者您有很多进程,或者例如您的MySQL表包含数十万条记录,那么您可能会再次拆分它们以解决性能问题。
答案 2 :(得分:0)
我们曾经使用像@ Eric的答案那样的开关语句,但现在使用了一个类:
// foo.php
class FooController extends PageController
{
public function someAction()
{
}
public function someOtherAction()
{
}
}
new FooController()->run();
如果您转到/foo/some
,它将执行someAction()
,而/foo/some-other
会执行someOtherAction()
。
很多凌乱的代码(例如创建导航/页脚HTML,并决定运行哪个“动作”)发生在父PageController类中。
决定每个课程中放入多少页面是个人品味和组织的问题。在拥有几乎没有代码的许多文件和一些包含如此多代码的大量文件之间找不到适当的平衡点。
答案 3 :(得分:0)
使用单独文件的原因之一是避免重复代码
另一个原因是,当功能在不同文件中分离并正确包含在主项目中时,软件更易于维护和扩展。简单地使用“include”将文件放在主php文件中就不会这样做,但是使用其他页面可以用来连接主php文件不同部分的过滤器是一个很大的优点(例如你可以查看wordpress过滤器)
在您的情况下:
您有一个页面,其中包含用户可以选择的所有计算器,但如果您想将最简单的计算器放在侧边栏中,如果你有一个不同的文件中的计算器,你只需在侧边栏中包含一个(它也会说明你如何插入侧边栏)