我只是遍历zend框架的工作流程,并且无法真正找到函数“findByUri()”所在的位置,我发现它所属的类,只是转储它,但是经历了该类的层次结构(父级,接口)等等)我真的找不到它。 我找到了从
调用的地方....
call_user_func_array(
array($this->getContainer(), $method),
$arguments);
...
但它不在那里(GetContainer()返回的类)
任何想法,我知道你可以通过$ class-> someVar = ...;将变量分配给类简单。 但从来没有用类功能做过...... 感谢
答案 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命令的更多信息:
答案 3 :(得分:0)
如果它真的是你正在寻找的函数的实现,我会说这是PHP IDE的用途。每个体面的PHP IDE都可以找到函数的定义位置。