我在使用文档方面遇到了麻烦。让我们说我想看看功能的来源
DB ::交易();
我转到http://laravel.com/api/index.html
并输入搜索表单' transaction'
什么都没找到。
然后我尝试向左移动到命名空间/数据库,这是有道理的。
后来我不知道该往哪里去。有一些名称空间,一些类,一些接口。后来发现这是在连接类中,起初我甚至没有看过。连接关联到连接到数据库,而不是进行事务。
当我不知道如何快速找到东西时,经常会发生这种情况。
你是如何处理的?
我认为文档应该是最好的开发人员朋友之一,但我想我通过在所有文件中使用崇高的大量搜索来找到这个功能。
也顺便说一下 - 我降低了Codeigniter文档,所以这就是为什么我也失望了。在codeigniter中,everythign看起来如此简单,搜索效果非常好。输入相同的字词'交易'发现像魅力。好的,尝试用CI做同样的方式:
然后它找到了。如果没有其他办法,也许我应该为搜索链接添加书签,只需更改关键字或类似内容。答案 0 :(得分:3)
CodeIgniter绝对比较简单,以至于任何较大的项目都会在(强行)严重错位的代码的重压下遭受重创。 Laravel提高了一点吧,但作为开发人员,这对你有利(我保证:D)。
首先,用于搜索代码的荣誉。很多人没有。你在那里学习很多东西。
对于Laravel,你最了解命名空间,以及它们与自动加载文件的关系(命名空间将与目录有关,本质上)。你可能知道这一点,但它与你如何找到类及其方法有关。
现在,这并不是要知道哪里有什么 - 而是自带一些挖掘代码。我几乎总是让Github对laravel/framework
存储库开放以查看代码。
注意:API搜索会查找文件,而不是其中的方法(不幸的是)。
如上所述,我无情地使用Github来搜索代码,而不是API文档。在Github中搜索非常好 - 它将在当前存储库中搜索。
例如,我在github中搜索"function transaction"并获得了良好的结果。
它让我看到here它接受了一个闭包,并围绕事务围绕在闭包内运行的代码。您可以看到在该闭包中抛出任何异常都会被捕获并取消该事务(并为您提供一种控制它的方法)。
正如@matit指出的那样,Facades实际上隐藏了代码所在的位置。这是一个棘手的部分。通常,您可以在任何外观上调用getFacadeRoot()
方法来确定它是什么类:
// Figure out what underlying class the Auth facade actually is
echo get_class( Auth::getFacadeRoot() );
最终您将在代码中发现模式。大多数门面都指向每个包中的某些类型的类(例如,一个Manager类,它决定使用哪个底层实现)。
我真的建议阅读进入Laravel总体架构的Taylor's book。这是一个快速阅读,高度值得。
CodeIgniter在简洁方面表现出色,Laravel擅长教你更好的编码概念。给它一些时间:D(或者使用CodeIgniter,这也很酷 - 无论你的工作完成了什么!)
答案 1 :(得分:3)
这就是为什么我强烈建议使用CTAGS!我使用sublime text 2和CTAGS插件。我只需按CTRL + SHIFT +单击类方法,它将显示具有该方法的类列表,或者如果只存在一个类,则直接将我带到文件和方法。它在速度方面胜过搜索API / docs。 Laravel Facades甚至还有一个Sublime text 2插件!