一些建议,如果我甚至打扰消除Joomla中的通知错误

时间:2010-07-13 15:36:57

标签: php joomla

我更改了Joomla配置部分中的选项以显示所有错误(E_ALL),并且我的组件基本上无法使用。

作为一个例子,在视图(editapp)中我有一个模板default.php,其中包含以下内容:

    <input class="text_area" type="text" name="application_name" id="application_name" size="50" maxlength="250" value="<?php echo $item->application_name" ?> />

现在由于$item->application_name第一次运行时(新记录),所有地方都会发现错误Trying to get property of non-object

这是因为相同的模板用于保存和编辑。我按照教程,他们似乎这样做。

PHP开发的用途是什么?我应该检查这些东西吗? if(isset($ item-)){...},PHP开发的最佳实践是什么?

2 个答案:

答案 0 :(得分:3)

我同意其他人 - 不要错。事实上,我建议超越E_ALL并添加E_STRICT,这就是我开展所有开发的方式。每个通知都有充分的理由,你最好摆脱它们。最值得注意的原因是,这些通知通常会指出一些小错误,这些小错误可能会使得查找和修复更大的错误变得更加困难。它与使用断言的想法没有什么不同:它们可以帮助您尽快压缩错误。

至于你的具体例子,我不建议在引用它之前使用isset(),而是建议将对象初始化为进入页面的理智基本状态(可能在此时使用isset())。例如,您可以将application_name值设置为空字符串。这将使您能够保持输出语句的良好和干净,但通过确保在使用变量之前初始化变量来正确处理通知。 (FWIW,在许多语言中,使用单元化变量会以编译时错误的形式引起更积极的响应。)

答案 1 :(得分:1)

由于以下几个原因,绝对值得摆脱代码中的错误和警告:

  • 每个错误都会写入错误日志。如果它们无关紧要,那么您使用的信息对您的错误日志进行了污染。
  • 大多数警告表示错误较大。在您可能没有想到的情况下,您引用的未设置变量可能会导致问题。
  • 使用您模板的其他人可能没有能力或知识来关闭错误,导致他们不使用您的代码。