【问题标题】:How to generate camelized getters and setters in Zend Studio 7 (for Eclipse)?如何在 Zend Studio 7(用于 Eclipse)中生成骆驼化的 getter 和 setter?
【发布时间】:2010-06-30 10:54:45
【问题描述】:

例子:

protected $_labelName = null;

应该生成

public function getLabelName()
{
    $this->_labelName;
}

public function setLabelName($labelName)
{
    $this->_labelName = $labelName;
    return $this;
}

但它是生成

public function get_labelName()
{
    return $this->_labelName;
}

public function set_labelName($_labelName)
{
    $this->_labelName = $_labelName;
    return $this;
}

如您所见 - 它看起来不同,但我没有找到如何更改方法名称和修剪设置方法参数名称的方法。

【问题讨论】:

    标签: php eclipse ide zend-studio


    【解决方案1】:

    一个简单的解决方法:将您的 var 命名为 $labelName,然后生成 getter 和 setter,最后重构/重命名 var,使其变为 $_labelName。在 Zend Studio 7.2 中工作(刚刚下载了试用版来检查它:p)。

    【讨论】:

      【解决方案2】:

      您可以通过单击来更改方法主体(和注释)

      Window > Preferences > PHP > Editor > Templates
      

      我认为您不能更改方法签名。我会用 Zend 开一张票,并要求一种方法来改变它。 Zend Framework 的主要 IDE 生成不符合 ZF 代码约定的 getter 和 setter 有点烦人。

      编辑 这已在 Zend Studio 8 中修复。当您生成 Getter/Setter 时,它们将不包括指示私有或受保护可见性的前导下划线。成员名称后面的任何下划线都将保留,例如$_foo 将生成getFoo()setFoo($_foo),而$_foo_bar(根据ZF 约定无效)将生成getFoo_bar()setFoo_bar($_foo_bar)

      【讨论】:

      • 那是因为你没有遵循 ZF 的变量命名约定:As with function names (see section 3.3) variable names must always start with a lowercase letter and follow the "camelCaps" capitalization convention. (framework.zend.com/manual/en/…)
      • @wimvds 请阅读整章 :) 我们正在讨论实例变量。
      • 哎呀,确实是过失。但是,我发布的解决方法确实有效,因此您可以在他们修复它之前使用它。
      • @wimvds 没问题。不幸的是,您的方法确实是目前唯一的方法。
      猜你喜欢
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 2010-09-05
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多