Laravel 拉威尔4:我如何理解这一切是如何运作的?
我在一个项目中使用了Laravel3,这是一种乐趣。我还多次查看了源代码,以了解一些东西在幕后是如何工作的 但现在在《拉威尔4》中,我不知道从哪里开始,也不知道如何理解这一切。我在哪里可以了解《拉威尔4》的所有幕后故事 举个例子:我想知道Laravel 拉威尔4:我如何理解这一切是如何运作的?,laravel,laravel-4,Laravel,Laravel 4,我在一个项目中使用了Laravel3,这是一种乐趣。我还多次查看了源代码,以了解一些东西在幕后是如何工作的 但现在在《拉威尔4》中,我不知道从哪里开始,也不知道如何理解这一切。我在哪里可以了解《拉威尔4》的所有幕后故事 举个例子:我想知道DB::insert()是否返回插入行的id。于是我开始寻找。 1.我找到了“封装”DB的Lightning\Support\Facades\Facade类。 2.resolveFacadeInstance函数被调用,然后我尝试打印这些数组,但我的计算机挂起:-
DB::insert()
是否返回插入行的id。于是我开始寻找。
1.我找到了“封装”DB的Lightning\Support\Facades\Facade类。
2.resolveFacadeInstance函数被调用,然后我尝试打印这些数组,但我的计算机挂起:-/。我相信这会导致更多我不理解的课程
有没有一种方法可以让我试着了解拉威尔4的内部工作原理?可能是堆栈跟踪?facade类只是一个过滤器类,允许您像调用静态方法一样调用方法。 对于facade映射,请转到此处: 全面了解拉威尔内部工作原理的起点应始于:
/public/index.php
您可以按照程序的逻辑进行操作,注意需要start.php,它加载“应用程序”的一个实例,该实例位于以下位置:
/vendor/laravel/framework/src/Illuminate/Foundation/Application.php
您可以在此处查看Laravel 4的早期文档:–这将为您提供一个良好的起点实际的Laravel 4代码在文件中有很好的文档记录。如果您想了解内部工作原理,请打开源代码文件并阅读注释。例如,我在/vendor/laravel/framework/src/illumb/Foundation/Application.php中查找了DB::insert()代码
/**
* Run an insert statement against the database.
*
* @param string $query
* @param array $bindings
* @return bool
*/
public function insert($query, $bindings = array())
{
return $this->statement($query, $bindings);
}
好的,这是调用语句函数,所以我在同一代码/类中搜索函数语句:
/**
* Execute an SQL statement and return the boolean result.
*
* @param string $query
* @param array $bindings
* @return bool
*/
public function statement($query, $bindings = array())
{
return $this->run($query, $bindings, function($me, $query, $bindings)
{
if ($me->pretending()) return true;
$bindings = $me->prepareBindings($bindings);
return $me->getPdo()->prepare($query)->execute($bindings);
});
}
现在我们可以看到,这将根据代码上方的注释返回布尔结果。显示了几种方法,可以找出类实际在做什么工作
例如:
如果你来自拉威尔,3号是给你的。在那之后,你应该读那一系列的文章 作者注: 本文将概述在版本3和即将发布的版本4之间对Laravel进行的一些更重要的更改。牢记 这并不是所有的变化。随着Laravel 4的发布越来越近 我会不断更新这篇文章。如果你有什么问题 请跳到Freenode上。在这个时候,我们会 喜欢要求人们不要在论坛上发布帮助主题
嗯,虽然不多,但这只是一个开始:)这些是关于如何使用Laravel的文档,而不是关于内部工作的文档。在不久的将来可能会有所帮助:
$root = get_class(DB::getFacadeRoot());
var_dump($root);