laravel4.2命名空间使用问题

问题源于我对命名空间使用的不太理解
在入门教程里 创建数据迁移时有这样的语句
Schema::create('articles', function(Blueprint $table)...
很简单的 类直接调用函数 可是 这个类里根本没有定义这个create函数
===========以下为问题细节 可以忽略
在配置文件app/config/app.php里
'aliases' => array('Schema' => 'Illuminate\Support\Facades\Schema');
也就是说Schema指向Illuminate\Support\Facades\Schema.php中定义的 class Schema extends Facade {}
而Illuminate\Support\Facades\Facade .php里是一个抽象类
abstract class Facade {}

问题是无论是Schema 还是Facade 它们里面都没create方法

实际调用的是\Illuminate\Database\Schema\Builder 里面的create方法(本人认为,如果有误请指教)
请问这是怎么做到的
已邀请:

码农

赞同来自:

当前类找不到相应方法,看看有没有__call(方法)和__callStatic(静态方法)
依然找不到,到父类中找相应方法,__call,__callStatic
然后父类的父类

Usual

赞同来自:

从父类的父类这样继承下来的吧?

Usual

赞同来自:

http://www.golaravel.com/laravel/docs/5.0/facades/

facades,应该可以解决你的问题。

要回复问题请先登录注册