- Laravel环境安装配置
- Laravel应用程序结构
- Laravel配置
- Laravel路由
- Laravel中间件
- Laravel控制器
- Laravel请求
- Laravel Cookie
- Laravel响应
- Laravel视图
- Laravel重定向
- Laravel操作数据库
- Laravel插入数据库表数据
- Laravel检索查询数据
- Laravel更新数据
- Laravel删除数据
- Laravel错误和日志记录
- Laravel表单处理
- Laravel本地化
- Laravel会话(session)
- Laravel验证
- Laravel文件上传
- Laravel发送邮件
- Laravel Ajax
- Laravel错误处理
- Laravel事件处理
- Laravel Facades
- Laravel安全
Laravel Facades
Facades提供了一个“静态”的接口到应用程序的服务容器中可用的类。 Laravel 的“facades”作为“静态代理”在服务容器底层类,提供了一个简洁, 富有表现的语法,同时保持比传统的静态方法更有可测试性和灵活性。
如何创建Facade
以下是在Laravel创建 Facade 的步骤:
-
第1步 - 创建PHP类文件
-
第2步 - 绑定类到服务提供者
-
第3步- 注册服务提供者到 Config\app.php 作为供应者
-
第4步- 创建类,这个类是扩展lluminate\Support\Facades\Facade
-
第5步- 注册第4点到 Config\app.php 作为别名
Facade类参考
Laravel附带许多Facades。下面是内置的Facades类引用。
Facade | 类 |
服务容器绑定
|
---|---|---|
App | Illuminate\Foundation\Application | app |
Artisan | Illuminate\Contracts\Console\Kernel | artisan |
Auth | Illuminate\Auth\AuthManager | auth |
Auth (Instance) | Illuminate\Auth\Guard |
|
Blade | Illuminate\View\Compilers\BladeCompiler | blade.compiler |
Bus | Illuminate\Contracts\Bus\Dispatcher |
|
Cache | Illuminate\Cache\Repository | cache |
Config | Illuminate\Config\Repository | config |
Cookie | Illuminate\Cookie\CookieJar | cookie |
Crypt | Illuminate\Encryption\Encrypter | encrypter |
DB | Illuminate\Database\DatabaseManager | db |
DB (Instance) | Illuminate\Database\Connection |
|
Event | Illuminate\Events\Dispatcher | events |
File | Illuminate\Filesystem\Filesystem | files |
Gate | Illuminate\Contracts\Auth\Access\Gate |
|
Hash | Illuminate\Contracts\Hashing\Hasher | hash |
Input | Illuminate\Http\Request | request |
Lang | Illuminate\Translation\Translator | translator |
Log | Illuminate\Log\Writer | log |
Illuminate\Mail\Mailer | mailer | |
Password | Illuminate\Auth\Passwords\PasswordBroker | auth.password |
Queue | Illuminate\Queue\QueueManager | queue |
Queue (Instance) | Illuminate\Queue\QueueInterface |
|
Queue (Base Class) | Illuminate\Queue\Queue |
|
Redirect | Illuminate\Routing\Redirector | redirect |
Redis | Illuminate\Redis\Database | redis |
Request | Illuminate\Http\Request | request |
Response | Illuminate\Contracts\Routing\ResponseFactory |
|
Route | Illuminate\Routing\Router | router |
Schema | Illuminate\Database\Schema\Blueprint |
|
Session | Illuminate\Session\SessionManager | session |
Session (Instance) | Illuminate\Session\Store |
|
Storage | Illuminate\Contracts\Filesystem\Factory | filesystem |
URL | Illuminate\Routing\UrlGenerator | url |
Validator | Illuminate\Validation\Factory | validator |
Validator (Instance) | Illuminate\Validation\Validator |
|
View | Illuminate\View\Factory | view |
View (Instance) | Illuminate\View\View |
|
示例
第1步- 执行以下命令创建一个叫作 TestFacadesServiceProvider 的服务提供者。
php artisan make:provider TestFacadesServiceProvider
第2步 - 成功执行后,您会收到以下输出 -
第3步 - 在“App/Test”创建一个名为 “TestFacades.php”的类
App/Test/TestFacades.php
<?php namespace App\Test; class TestFacades{ public function testingFacades(){ echo "Testing the Facades in Laravel."; } }
第4步 - 在“App/Test/Facades”创建一个名为“TestFacades.php” 的一个Facade类。
App/Test/Facades/TestFacades.php
<?php namespace app\Test\Facades; use Illuminate\Support\Facades\Facade; class TestFacades extends Facade{ protected static function getFacadeAccessor() { return 'test'; } }
第5步- 在“App/Test/Facades”创建一个名为 “TestFacadesServiceProviders.php”的一个Facade类。
App/Providers/TestFacadesServiceProvider.php
<?php namespace App\Providers; use App; use Illuminate\Support\ServiceProvider; class TestFacadesServiceProvider extends ServiceProvider { public function boot() { // } public function register() { App::bind('test',function() { return new \App\Test\TestFacades; }); } }
第6步 - 在文件 config/app.php 中添加一个服务提供者如图所示如下图。
config/app.php
第7步 - 在文件 config/app.php 中添加别名如图所示如下图。
config/app.php
'TestFacades' => App\Test\Facades\TestFacades::class,
第8步 - 添加以下行到文件 - app/Http/routes.php
app/Http/routes.php
Route::get('/facadeex', function(){ return TestFacades::testingFacades(); });
第9步 - 访问以下网址测试 Facade
http://localhost:8000/facadeex
第10步 - 访问URL后,您会收到以下输出 -
上一篇:Laravel事件处理
下一篇:Laravel安全