PHP项目中缺少方法实现

PHP项目中缺少方法实现,php,oop,implementation,Php,Oop,Implementation,最近我得到了一些人的PHP网站项目(这个人不想帮助我),所以我必须理解他的代码。也许我的回答很愚蠢,但是 但类之前有一些方法,如示例中所示: 正如您在本例中所看到的,这些文档化的方法并没有在定义的类中实现。但我的问题是——这些方法是从其他类和模板调用的。PHPStorm(我的IDE)将文档行与调用连接起来,并且ctrl+B在引用之间引导。但我找不到这种方法的确切实现。在父类中找不到它们,它们不在此文件中。我想也许这是我不熟悉的语法糖。我说得对吗?或者我遗漏了什么,所有的实现都在另一个地方?(在

最近我得到了一些人的PHP网站项目(这个人不想帮助我),所以我必须理解他的代码。也许我的回答很愚蠢,但是

但类之前有一些方法,如示例中所示:

正如您在本例中所看到的,这些文档化的方法并没有在定义的类中实现。但我的问题是——这些方法是从其他类和模板调用的。PHPStorm(我的IDE)将文档行与调用连接起来,并且
ctrl+B
在引用之间引导。但我找不到这种方法的确切实现。在父类中找不到它们,它们不在此文件中。我想也许这是我不熟悉的语法糖。我说得对吗?或者我遗漏了什么,所有的实现都在另一个地方?(在文件夹中按方法名搜索对我来说没有任何帮助)

PHP有一些,其中之一就是

当您有一个实现
\u call()
的对象(通过自身或父类之一)时,您可以对其调用一个不可访问的方法,而将调用
\u call()
方法。例如,当您从外部调用私有方法时,或者当您调用未在代码中定义的方法时,就会发生这种情况

当您对不可访问的方法使用此类调用时,IDE很可能会显示一条警告,说明该方法不存在,尽管代码本身可能在运行时工作。这些警告非常烦人,因此您可以向类添加标记,IDE将知道此方法存在,并且不会显示警告


因此,为了支持您从某人那里获得的代码,请查看
\u call()
方法实现。请注意,此方法可能在其中一个父类中实现,因此也请检查它们

父类是否具有
\u call()
方法?我可以确定,这是用于magic setter和getter方法的文档块。所以你需要查看ParentClass并找出它们。或者,正如@Timurib所说的,找到调用方法实现。doc块的需要是ide不会将此方法的调用作为不匹配的调用来处理,它已经这样做了。所以,正如我所理解的,在现有方法和它的名称之间有一些映射,这些映射是通过调用这个类上的方法来传递的。我需要朝这个方向挖掘。谢谢方法r不存在,因为它们是神奇的。请检查手册-。doc块的需要仅限于ideI,这意味着我看到的
\uu call()
方法使用稍早收集的一些元数据将不可访问的名称解析为项目中可访问的名称。正如我所说,这个代码不是我的,我必须理解它。对于以前的开发人员(正如我现在看到的),这是一个想法。多亏了你们的帮助,这对我来说是极大的帮助和安慰!
namespace Base\Classes;

/**
 * @method int method1()
 * @method $this method2(int $parameter)
 */

class SomeClass extends ParentClass
{
    public $_s_a = false;
    public $_user_roles = [];

    public function SomeClassMethod() {
        somethingDone();
    }
}