0

我通常是 Stack Overflow 和 PHP 编程的新手,并且有一个关于使用 PHPrequire()require_once()函数在我的脚本中包含文件的问题。

我正在用 PHP 构建一个开源 Web 应用程序,并且正在努力解决如何使用包含的文件。我想将程序的核心功能与每个页面的实际代码和每个页面的HTML分开,目前有几个包含文件,一个用于数据库相关的函数和变量,一个用于一般站点/程序设置,另一个用于其他功能。目前,所有这些文件都由一个名为 bootstrap.php 的文件引用,其内容可以在https://code.google.com/p/audioshout/source/browse/inc/bootstrap.php找到。

但是,有几个人告诉我,这个策略不是一个好策略,但实际上他们都没有给我一个更好的策略来使用。作为我当前策略的结果,与特定功能相关的警告会在站点的每个页面上生成,即使该特定功能仅在几个页面上需要。但是因为它包含在 bootstrap.php 包含的文件中,而该文件又包含在站点的每个页面中,所以在每次访问页面时都会调用该函数,因此会引发警告。

我清理包含策略的最佳方法是什么,或者在 PHP 项目中包含文件的最佳策略是什么?此外,在使用包含和为项目创建设置时,常量如何发挥作用?现在所有的设置,即使是用户可配置的,都存储在变量而不是常量中,但是我已经看到像 WordPress 这样的其他项目使用常量而不是变量,尤其是在涉及到包含文件的路径等时。

感谢您提供的任何答案!要查看此项目的更多源代码,请访问http://code.google.com/p/audioshout/

4

3 回答 3

1

您应该在每个文件一个类中编写您的 php,并遵循 psr-0 命名。这是一篇好文章。http://net.tutsplus.com/tutorials/php/psr-huh/

你可能认为制作所有的类和文件会导致大量的 require 语句。但这就是自动加载的用武之地。如果您按照教程进行操作,您将永远不必编写另一个 require 语句。

于 2013-05-23T01:59:39.173 回答
0

还要考虑自动加载你的类。如果您正确命名每个类并使用文件系统结构镜像命名空间结构,您几乎不必使用任何 include 或 require 语句!

于 2013-05-23T02:09:44.127 回答
0

一般来说,在 require_once 上使用 require 是没有用的。后者可以保护您免受有关重新定义函数等的错误或警告。这可能有一个例外,但在我个人的经历中从来没有出现过,已经有十年左右的时间了。(还有人记得 PHP 曾经代表“个人主页”吗?:))

至于常量与变量,PHP 是一种非常松散(弱类型)的语言。您可以将字符串与数字进行比较,这在强类型语言中永远无法使用。您还可以通过注意函数名称有时带有下划线,有时不带下划线,有时字符串函数的第一个参数将是输入,有时它将是最后一个。

关键是,它是一个非常强大的工具,但它从未打算成为它的样子,因此有时会让人困惑,以找出“正确”的做事方式。它是来自这么多人的层层贡献。所以你可以尝试尽可能完美地做事情,但在那些情况下,真的,这不会有任何区别。变量在所有情况下都很好。如果你知道它在执行期间永远不会改变,那么你可以将它定义为一个常量,但这确实更适用于像 JAVA 这样的语言。

如果您是 PHP 新手,但了解其他语言,只需应用相同的方法 - 尝试将可重用代码保留在一个地方。你会很快学会它,PHP 是我所知道的所有语言中最容易掌握的。祝你好运,学习新的编程技能总是一个有趣的冒险——或者我只是一个书呆子:)

于 2013-05-23T03:44:45.790 回答