重用大部分php代码的最佳方法

时间:2013-11-13 12:07:02

标签: php

我正在研究CMS的自定义模板,我必须反复使用相当大的代码来显示内容,代码本身保持不变。所以我在想如何更好地优化它:

  1. 使它成为一个函数 - 将是完美的,但它使用大约一半的变量,我将不得不将它们全部重新声明为全局变量。也许有一种方法可以声明一个函数,以便它具有父变量范围?
  2. 我不能使用循环,因为此代码在不使用模式
  3. 的不同位置重复
  4. 到目前为止,对我来说最好的方法是创建一个单独的文件并使用include来放置它,但是创建单独的文件是不可取的,因为它更难理解和管理最终用户,也许可以包含代码同一个文件?
  5. 编辑: 有关更多说明,模板是在页面上呈现html的内容。因此,我正在处理的代码只需要在相同的结构中多次呈现不同的内容,但内容不同(代码保持不变,但变量会改变它们的值)。所以工作流程是:

    • 显示其他一些独特内容,
    • 显示有问题的代码生成的内容,
    • 显示其他一些独特的内容,没有任何模式,
    • 显示再次生成的相关代码的内容,
    • 能够将其插入此页面的任何其他位置。

    是否还有其他方法可以重复使用上面提到的那些代码(除了未通过goto之外)?

2 个答案:

答案 0 :(得分:1)

如果一个函数有大约一半的变量,那么你的函数/代码是错误的:)

功能应小巧,紧凑且灵活,并且(通常)不应大于屏幕。我的平均功能大约是20-50行。

因为你可以在函数中使用函数,所以你可以重用很多代码

因为您在CMS上工作,所以要定义经常发生的小部件。与getPagegetPageIdgetFileContent一样(如果您想要自己的功能)。这些函数只需要一个完整的参数,所以不需要全局的东西。

不确定您的代码是如何工作的,但在此示例中,您可以同时使用getPagegetPageId

function getPage( $url ){
    $pageId = getPageId($url);
    // and now get a page:
    $content = getPageContent($pageId);
    return $content;
}

您现在可以使用这些功能,因为它们只执行小任务。如果做得好,小功能将为大功能创造空间以减小尺寸。正如您在我的示例中所看到的,获取页面的功能实际上非常小!

答案 1 :(得分:0)

  

到目前为止,对我来说最好的方法是创建一个单独的文件并使用include来放置它,但是创建单独的文件是不可取的,因为它更难理解和管理最终用户,也许可以包含代码同一个文件?

如果没有您提供任何其他细节,这是最好的方法。此外,当你说,“但是创建单独的文件是不可取的,因为它更难理解和管理最终用户。”你基本上说,“这个客户想要一些复杂的东西,但不愿意支付真正的CMS解决方案&不知怎的,现在我担心会以某种方式简化一个固有的复杂过程。“

这听起来像一个经典的客户,据说“没有预算”,他希望你做“出色的工作”,然后向办公室里的一个人展示“技术”如何做事。

我的建议?只做第三种情景&在这种情况下不要担心最终用户。你做好了自己的工作。