PHP编码样式函数与传递变量

时间:2011-01-19 09:57:30

标签: php function coding-style

整个PHP的新东西。

只想问一下,哪个在性能和安全性方面更好。我知道两者都有它的优点和缺点,但似乎无法得出结论,哪个可能更好的整体性能和安全性。

  1. 使用包含大量功能的PHP文件。因此,我所拥有的每个页面都将“包含”函数php文件,因此可以在任何给定的页面中调用函数。
  2. OR

    1. 有一个接受参数输入的PHP文件(不确定这是否就是你所说的)。例如function.PHP?id = 100
    2. 有任何意见吗?

      谢谢大家:)

3 个答案:

答案 0 :(得分:1)

第二种方法是首选:一个index.php文件驱动整个应用程序/网站。

至于分解应用程序, 你将在URL中使用两个:参数来决定要做什么,以及接收参数并完成工作的辅助函数。

面临的挑战是打破较小的,可重复使用的“子问题”中的“大问题”,并将每个问题包装在可重用功能中。

在此之后,解决“大问题”就是将功能调用粘在一起,就像在益智游戏中一样。

现在,这是在初级水平上的方式,在更高级别,您可以在OOP manner中将其细分,以利用autoloading (请阅读我的回复,了解详情)。

在两个级别的经验之间,您可以先尝试使用像http://www.limonade-php.net/这样的过程性php框架,然后再尝试理解其代码并从中学习。这应该让您在PHP的更高级用途上走上正轨。

您提供的选项在安全性或性能方面具有特殊性,它们都是相同的。在功能中细分它是代码可重用性可维护性的问题。话虽如此,OOP在任何方面仍然更好(再次,我将指出我的另一个答案)。

正如我所说,你将使用两者,并且你必须验证输入(即$_REQUEST $_GET$_POST$_COOKIE,{ {1}},$_SESSION,(来自$_FILE的某些元素)。请注意XSS(基本上,您将使用$_SERVERstrip_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的东西,而不是数据库的东西)是解释器必须解析的代码量。因此,从性能的角度来看,您的第一种方法存在缺陷。

解决问题的正确方法是将功能分解为相关的块 - 并将它们保存在单独的文件中,然后只包含特定任务所需的功能。