【问题标题】:How to let the editor know about dynamic properties?如何让编辑器了解动态属性?
【发布时间】:2020-03-21 20:34:51
【问题描述】:

属性在 CodeIgniter 中动态加载。

如何让编辑知道它应该被允许?

【问题讨论】:

  • 提及您不想声明此属性的原因可能会很有用,因为它可能会对答案产生影响。例如,如果您使用 __get 动态定义特定字段,则可能有一些方法可以声明/记录这些字段名称。
  • 如果我用private $form_validation; 声明这些属性,它会在方法调用上显示类似的错误。 Method 'set_rules' not found in
  • 不是重复的。不同的问题。

标签: codeigniter phpstorm codeigniter-3 php-ide


【解决方案1】:

如果您知道要使用的动态属性的完整列表,可以将它们添加为类上的@property docblock 注释,格式为@property type name description

典型的用例是该类实现 __get 以延迟加载数据,或者在您的情况下由框架注入依赖项。

/**
 * @property FormValidation form_validation Form validation object injected by CodeIgniter
 */
class Example {
    public function foo() {
        $this->form_validation->set_rules('blah', 'blah', 'blah');
    }
}

请注意,这些魔法属性被假定为可继承且公开的,因此以下内容不会显示警告:

// Using magic property in child class
class ExampleChild extends Example {
    public function somethingElse() {
        $this->form_validation->set_rules('something', 'else', 'entirely');
    }
}

// Using magic property from outside class
$foo = new Foo;
$fv = $foo->form_validation;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 2014-01-22
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多