在PHP脚本中包含和组织文件的策略

时间:2013-05-23 01:52:05

标签: php open-source include constants

我是Stack Overflow和PHP编程的新手,并且有一个问题,即使用PHP的require()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/

3 个答案:

答案 0 :(得分:1)

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

您可能认为制作所有类和文件会导致许多require语句。但这里是自动加载的地方。如果你按照教程进行操作,你将永远不必编写另一个需要声明。

答案 1 :(得分:0)

另请查看autoloading您的课程。如果你正确命名每个类并使用文件系统结构镜像命名空间结构,那么你几乎不必使用任何include或require语句!

答案 2 :(得分:0)

通常情况下,使用require over require_once确实没有用过。后者可以保护您免受有关重新定义功能等的错误或警告。可能有一个例外,但它从来没有出现在我的个人经历中,已经十年左右。 (其他人还记得PHP曾经代表'个人主页'吗?:))

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

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

如果您是PHP新手,但了解其他语言只是应用相同的方法 - 尝试将可重复使用的代码保存在一个位置。你会很快学到它,PHP是我所知道的最容易处理的所有语言之一。祝你好运,学习新的编程技巧总是一个有趣的冒险 - 或者我只是一个书呆子:)