【问题标题】:Do you prefer functioning or including within one php file?您更喜欢运行还是包含在一个 php 文件中?
【发布时间】:2010-09-27 18:45:23
【问题描述】:

您如何管理您的 php 代码?您更喜欢在一个 php 文件中运行还是包含更大的“原始代码”块?

编辑:事实上,我的代码非常讨厌,因为我不使用任何命名空间和类——只使用函数和包括在内。我会查课的^^。

【问题讨论】:

    标签: php function include


    【解决方案1】:

    根据需要使用它们。 我将 include 用于处理大代码块,并将函数用于“实用程序”功能。我使用的 Sometines 也包含在函数中......这真的取决于你喜欢你的代码的干净程度。

    认为许多包含意味着更多来自 PHP 模块的 fopen(),这些可能会减慢整个脚本的执行速度。所以不要尝试放入太多包含。

    【讨论】:

      【解决方案2】:

      如果您使用的是 php 类,这将自行解决。如果你不是,那么很难给出一个可以接受的答案,除非你应该学会这样做。我见过的所有没有类的php代码似乎很快就会变得混乱。

      【讨论】:

        【解决方案3】:

        我同意 OOP 是要走的路。大型实体代码块是维护的噩梦。绝对不是要走的路。您应该将您的代码拆分成小块,这些小块可以相互交互,并且可以轻松地自行维护。

        【讨论】:

          【解决方案4】:

          当我以前用 PHP 编程时,我喜欢将通用实用程序函数分组到一个通用文件中以包含在大多数页面中,并将类分组到专用文件中,以便仅在需要时加载它们。

          【讨论】:

          • 你不能把你的实用程序函数放到一个实用程序类中吗?
          • 你可以(并且可能应该),但它不是一个真正的类,它是一个虚假的命名空间。
          【解决方案5】:

          我通常将函数/类用于逻辑并包含用于显示。我最终在控制器中得到了类似的东西......

          case 'widgetlist':
            $widgets = $DAO->getWidgets();   //get some query
            include('view/showWidgets.php'); //assume a global $widgets variable
            break;
          

          我发现给 HTML/CSS 设计者一个包含而不是一个显示的函数调用更容易。不利的一面是我依靠全局变量将变量传递给包含而不是更安全的参数。

          【讨论】:

            【解决方案6】:

            我在单独的文件中创建类,并使用正确的前缀作为命名空间(直到至少包含它们)。我还将函数作为静态方法放在“静态类”中以获得命名空间效果。

            我使用自动加载来包含文件,因此我不必编写一百个包含。 将 My_Example_Class 保存为 {lib}/My/Example/Class.php

            【讨论】:

              【解决方案7】:

              我正在做的事情是在每一页的顶部都有一个包含文件,其中包含所有全局函数和数据库设置内容。它按原样工作,但我现在将函数移动到单独的文件中,因为所有内容都集中在一个大块中,进行任何测试都是完全不切实际的。

              【讨论】:

                【解决方案8】:

                PHP 有一个 __autoLoad () 魔术函数,您可以使用它来拦截类调用。如果该类尚不存在,您可以设置一些简单的代码来查找要包含的正确类代码。然后它将继续正常执行。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-08-02
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-06-13
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多