整个PHP的新东西。
只想问一下,哪个在性能和安全性方面更好。我知道两者都有它的优点和缺点,但似乎无法得出结论,哪个可能更好的整体性能和安全性。
OR
有任何意见吗?
谢谢大家:)
答案 0 :(得分:1)
第二种方法是首选:一个index.php
文件驱动整个应用程序/网站。
至于分解应用程序, 你将在URL中使用两个:参数来决定要做什么,以及接收参数并完成工作的辅助函数。
面临的挑战是打破较小的,可重复使用的“子问题”中的“大问题”,并将每个问题包装在可重用功能中。
在此之后,解决“大问题”就是将功能调用粘在一起,就像在益智游戏中一样。
现在,这是在初级水平上的方式,在更高级别,您可以在OOP manner中将其细分,以利用autoloading (请阅读我的回复,了解详情)。
在两个级别的经验之间,您可以先尝试使用像http://www.limonade-php.net/这样的过程性php框架,然后再尝试理解其代码并从中学习。这应该让您在PHP的更高级用途上走上正轨。
无您提供的选项在安全性或性能方面具有特殊性,它们都是相同的。在功能中细分它是代码可重用性和可维护性的问题。话虽如此,OOP在任何方面仍然更好(再次,我将指出我的另一个答案)。
正如我所说,你将使用两者,并且你必须验证输入(即$_REQUEST
$_GET
,$_POST
,$_COOKIE
,{ {1}},$_SESSION
,(来自$_FILE
的某些元素)。请注意XSS(基本上,您将使用$_SERVER
或strip_tags()
或两者的组合。这是关于安全性方面。
答案 1 :(得分:0)
欢迎Tak4evr
我会在此方法上使用面向对象的设计实践。基于许多功能的程序代码很难遵循,因此维护起来很昂贵。
但考虑到选择,我会选择第一个选项:
使用包含大量功能的PHP文件。因此,我所拥有的每个页面都将“包含”函数php文件,因此可以在任何给定的页面中调用函数。
您可以包含此文件,而不是按照建议使用function.php?id=100
,而应使用更具描述性的内容然后使用您的功能。
例如,使用clients.php?id=100
然后使用clients.php
获取id
,并将id
传递给您的某个功能。
希望有所帮助。
答案 2 :(得分:0)
我花了一些时间试图弄清楚这个问题可能意味着什么。
有一个接受参数输入的PHP文件(不确定这是否就是你所说的)。例如function.PHP?id = 100
我想你的意思是你希望能够使用你自己的用户定义函数只包含PHP代码的相关部分。
除非你非常非常擅长编程,否则这种方法是解决问题的错误方法。有一个谷歌自我修改代码,以进行有关该主题的一些讨论。它打开了巨大的代码注入漏洞,并且非常难以调试代码。
即使没有安全问题,也没有维护问题,并且您是一名大师程序员,将参数传递到PHP脚本的唯一方法是通过HTTP请求或运行程序 - 两者都有相当大的开销直接从本地文件系统读取代码 - 从性能的角度来看,这种方法是错误的。
PHP确实具有与您提出的功能非常相似的功能 - 自动加载器。然而,有一些非常重要的差异。
你可以在PHP中控制的大多数与性能相关的东西(即不是HTTP的东西,而不是数据库的东西)是解释器必须解析的代码量。因此,从性能的角度来看,您的第一种方法存在缺陷。
解决问题的正确方法是将功能分解为相关的块 - 并将它们保存在单独的文件中,然后只包含特定任务所需的功能。