Laravel 实现 Facades 功能
使用过Laravel的同学都知道Facades 的强大,下面就让我们一起创建一个Facades 实例。如有不正确的地方,还请不吝赐教。
1. 实现Laravel的自动加载功能
首先建立目录app/lib/Myapp,然后添加目录到composer.json中
"autoload": {
"psr-0":{
"Myapp":"app/lib"
}
}
2. 实现功能类
实现能能类 app/lib/Myapp/Test.php
<?php
/**
* @author brudeke
*/
namespace Myapp;
class Test{
public function do(){
echo 'this is a class';
}
}
3. 实现ServiceProvider
实现app/lib/Myapp/TestServiceProvider.php ,该类主要是将功能类添加到Ioc容器:
<?php
/**
* @author brudeke
*/
namespace Myapp; use Illuminate\Support\ServiceProvider; class TestServiceProvider extends ServiceProvider{ public function register() {
$this->app['test'] = $this->app->share(
function ($app) {
return new \Myapp\Test();
});
}
}
4. 实现Facade 实例
实现app/lib/Myapp/Facades/TestFacades.php, 该类的主要美化,实现成员函数类似静态方法的调用形式
<?php
/**
* @author brudeke
*/
namespace Myapp\Facades; use Illuminate\Support\Facades\Facade; class TestFacades extends Facade{
protected static function getFacadeAccessor()
{
return 'test';
}
}
5. 加载ServiceProvider
在app/config/app.php 中的providers中添加如下配置:
'providers' => array(
'Myapp\TestServiceProvider'
),
在app/config/app.php 中的aliases中添加别名:
'aliases' => array(
'TestClass' => 'Myapp\Facades\TestFacades',
),
接下来就可以在项目中以TestClass::do()的形式使用该功能类了。
Laravel 实现 Facades 功能的更多相关文章
- Laravel 核心--Facades 门面
Laravel 核心--Facades 门面 伊Summer 关注 0.1 2017.08.12 19:07* 字数 2017 阅读 1089评论 0喜欢 5 介绍 Facades 为应用的 IoC ...
- laravel实现定时器功能
前记 laravel实现定时器功能有两种方法: 1. 使用 command . 2. 在闭包函数内写实现的方法. 在这里我比较推荐第一种方法,因为第一种方法把具体的实现抽离出来了,看起来简单且富有 ...
- Laravel实用小功能
Laravel实用小功能 1.控制访问次数 laravel5.2的新特性,通过中间件设置throttle根据IP控制访问次数 原理:通过回传三个响应头X-RateLimit-Limit,X-RateL ...
- 使用 Laravel 数据填充功能生成中文测试数据
今晚……不对,是昨晚,折腾一个的小项目,发现自动填充的中文数据显示起来总不太美观,于是开始琢磨如何填充中文数据进行测试. 然而一番搜索后惊奇的发现,官方.以及一些非官方的文档均未提及这一功能.期间看到 ...
- laravel自定义分页功能的实现:
laravel版本:5.5.. 执行命令: php artisan vendor:publish --tag=laravel-pagination 在到 resources/views/vendor/ ...
- 微信小程序结合laravel完成签到功能
前端样式未做处理,可将后端数据传至前端进行处理 1.wxml页面 <!--pages/signIn/signIn.wxml--> <view class='signIn'> & ...
- laravel安装excel功能
原文安装链接:https://github.com/Maatwebsite/Laravel-Excel 代码如下: if ($rows = DB::connection('glist')->ta ...
- Laravel的路由功能
只能在当前方法内加载视图和URL跳转!
- Laravel OAuth2 (三) ---使用 services 和 facades
前言 既然要判断用户是否存在,然后创建用户,那么就要实现几个功能函数.为了方便调用,于是我尝试着写了第一个service 和 facade . 创建 Facade class Social exten ...
随机推荐
- 【测试技术】ant里面mapper的详细用法
ant里面mapper标签是和fileset配合使用的,目的就是把fileset取出的文件名转成指定的样式.其实看懂官方文档后,感觉真心没啥好写的.但是还是写一下把. 1.<mapper typ ...
- TXMLDocument换行的两种方案
手写代码: XML格式化使用msxml引擎,Delphi代码如下: Delphi/Pascal code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- delphi 打开文件夹并定位到一个文件(关键是/select参数)
strFileName := FcxLV[nIndex].Items.Item[FcxLV[nIndex].ItemIndex].SubItems.Strings[0]; //路径 ShellExe ...
- WINAPI大全~
http://www.alsprogrammingresource.com/win32_functions_g.html
- C#.NET利用ContextBoundObject和Attribute实现AOP技术--AOP事务实现例子
我前两天看见同事用写了用AOP技术实现缓存的方案,于是好奇看了一下这是怎么实现的.原来是用了.NET中的一个类ContextBoundObject和Attribute相关技术.其实个类在.NET Fr ...
- [jumping to the gate] 娱乐向setjmp
转载:http://tieba.baidu.com/p/1393753521 灌水的时候从goto一路拐到了setjmp, 顺便也试了试貌似这东西确实是没有析构效果的.之前并没有看过setjmp的实现 ...
- jquery-ui datepicker使用
这是一款老外设计的日期控件 很多显示方式都是国外的 需要自己调整一下 closeText: "Done", prevText: "上一月", nextText: ...
- 【转】Android用NDK和整套源码下编译JNI的不同
原文网址:http://www.devdiv.com/android_ndk_jni_-blog-99-2101.html 前些天要写个jni程序,因为才几行代码,想着用ndk开发可能容易些,就先研究 ...
- Linux系统启动流程(2)
内核设计风格: RedHat, SUSE核心:动态加载 内核模块内核:/lib/modules/“内核版本号命令的目录”/vmlinuz-2.6.32/lib/modules/2.6.32/ RedH ...
- Linux usb子系统(三):通过usbfs操作设备的用户空间驱动
内核中提供了USB设备文件系统(usbdevfs,Linux 2.6改为usbfs,即USB文件系统),它和/proc类似,都是动态产生的.通过在/etc/fstab文件中添加如下一行:none /p ...