在这种情况下如何找到PHP中函数的实现位置?

时间:2010-02-11 16:06:36

标签: php oop class function

我只是遍历zend框架的工作流程,并且无法真正找到函数“findByUri()”所在的位置,我发现它所属的类,只是转储它,但是经历了该类的层次结构(父级,接口)等等)我真的找不到它。 我找到了从

调用的地方
....
 call_user_func_array(
            array($this->getContainer(), $method),
            $arguments);
    ...

但它不在那里(GetContainer()返回的类)

任何想法,我知道你可以通过$ class-> someVar = ...;将变量分配给类简单。 但从来没有用类功能做过...... 感谢

4 个答案:

答案 0 :(得分:1)

我使用Agent Ransack搜索不属于我自己的代码库。你正在寻找这个字符串:

"function findByUri"

答案 1 :(得分:1)

在整个ZF中没有这个名称的方法。它可能是__call $this->container方法中的神奇存取器。我从Zend_View_Helper_Navigation_HelperAbstract获取您提供的代码段,因此它应该属于Zend_Navigation包中的任何类。

修改
来自ZF Reference Manual on Zend_Navigation containers

  

容器具有检索页面的finder方法。它们是findOneBy($ property,$ value),findAllBy($ property,$ value)和findBy($ property,$ value,$ all = false)。这些方法将以递归方式在容器中搜索与给定$ page-> $ property == $ value匹配的页面。第一个方法findOneBy()将返回与给定值匹配的单个页面,如果找不到则返回NULL。第二种方法将返回具有与给定值匹配的属性的所有页面。第三种方法将根据$ all标志调用前两种方法中的一种。

     

通过将属性名称附加到findBy,findOneBy或findAllBy,例如,也可以神奇地使用finder方法。 findOneByLabel('Home')返回带有标签Home的第一个匹配页面。其他组合是findByLabel(...),findOnyByTitle(...),findAllByController(...)等.Finder方法也适用于自定义属性,例如findByFoo('bar')。

答案 2 :(得分:0)

grep 是你的朋友。

来自shell:

grep -ir "function findByUri" .

有关grep命令的更多信息:

http://unixhelp.ed.ac.uk/CGI/man-cgi?grep

答案 3 :(得分:0)

如果它真的是你正在寻找的函数的实现,我会说这是PHP IDE的用途。每个体面的PHP IDE都可以找到函数的定义位置。

相关:Any good PHP IDE, preferably free or cheap?