我正在研究CMS的自定义模板,我必须反复使用相当大的代码来显示内容,代码本身保持不变。所以我在想如何更好地优化它:
编辑: 有关更多说明,模板是在页面上呈现html的内容。因此,我正在处理的代码只需要在相同的结构中多次呈现不同的内容,但内容不同(代码保持不变,但变量会改变它们的值)。所以工作流程是:
是否还有其他方法可以重复使用上面提到的那些代码(除了未通过goto之外)?
答案 0 :(得分:1)
如果一个函数有大约一半的变量,那么你的函数/代码是错误的:)
功能应小巧,紧凑且灵活,并且(通常)不应大于屏幕。我的平均功能大约是20-50行。
因为你可以在函数中使用函数,所以你可以重用很多代码
因为您在CMS上工作,所以要定义经常发生的小部件。与getPage
或getPageId
或getFileContent
一样(如果您想要自己的功能)。这些函数只需要一个完整的参数,所以不需要全局的东西。
不确定您的代码是如何工作的,但在此示例中,您可以同时使用getPage
和getPageId
:
function getPage( $url ){
$pageId = getPageId($url);
// and now get a page:
$content = getPageContent($pageId);
return $content;
}
您现在可以使用这些功能,因为它们只执行小任务。如果做得好,小功能将为大功能创造空间以减小尺寸。正如您在我的示例中所看到的,获取页面的功能实际上非常小!
答案 1 :(得分:0)
到目前为止,对我来说最好的方法是创建一个单独的文件并使用include来放置它,但是创建单独的文件是不可取的,因为它更难理解和管理最终用户,也许可以包含代码同一个文件?
如果没有您提供任何其他细节,这是最好的方法。此外,当你说,“但是创建单独的文件是不可取的,因为它更难理解和管理最终用户。”你基本上说,“这个客户想要一些复杂的东西,但不愿意支付真正的CMS解决方案&不知怎的,现在我担心会以某种方式简化一个固有的复杂过程。“
这听起来像一个经典的客户,据说“没有预算”,他希望你做“出色的工作”,然后向办公室里的一个人展示“技术”如何做事。
我的建议?只做第三种情景&在这种情况下不要担心最终用户。你做好了自己的工作。