thinkphp 5.1中引入了容器(Container)和门面(Facade)这两个新的类
官方文档已经给出了定义:
容器(Container)实现类的统一管理,确保对象实例的唯一性。
门面(Facade)为容器(Container)中的类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个facade类。
深入源码,我们来看看它到底是如何实现的: Continue reading
thinkphp 5.1中引入了容器(Container)和门面(Facade)这两个新的类
官方文档已经给出了定义:
容器(Container)实现类的统一管理,确保对象实例的唯一性。
门面(Facade)为容器(Container)中的类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个facade类。
深入源码,我们来看看它到底是如何实现的: Continue reading
Vue + Node + Mongodb 开发一个完整博客流程
前段时间刚把自己的个人网站写完, 于是这段时间因为事情不是太多,便整理了一下,写了个简易版的博客系统
服务端用的是 koa2框架 进行开发
Vue + vuex + element-ui + webpack + nodeJs + koa2 + mongodb
thinkCMF自定义钩子hook不能使用的解决办法
初识thinkCMF,有很多的不了解的逻辑关系。
安装好thinkCMF,在官网下载安装了一些插件,其中安装了个自动缩略图的插件。
但是发布文章后没有实现其功能,不解。设置断点各种测试,发现根本没有进入安装的插件。
最后,进入了管理员后台>>钩子管理,发现上面有个《同步钩子》按钮,点了下,又卸载了一下插件,再安装插件,测试,成功解决。 Continue reading
thinkphp 语法错误: unexpected ‘?>’
在使用thinkCMF时,下载安装的评论插件中,打开页面会有这种报错。
原因是在模板中使用了这种代码{$vo.create_time|date='Y-m-d H:i:s',###}
,根源的原因没去查,看报错提示应该是那三个井号(###)在模板编译的时候没有被替换掉,但是这种伪php代码其实完全可以不用使用的,直接使用{date('Y-md H:i:s',$vo.create_time)}
不是更直观,更好吗。何必弄那么多的脱裤子放屁的代码在模板里!!! Continue reading
记录下php+redis实现商城秒杀功能。
1,安装redis,根据自己的php版本安装对应的redis扩展(此步骤简单的描述一下)
1.1,安装 php_igbinary.dll,php_redis.dll扩展此处需要注意你的php版本如图:
1.2,php.ini文件新增 extension=php_igbinary.dll;extension=php_redis.dll两处扩展
ok此处已经完成第一步redis环境搭建完成看看phpinfo Continue reading
程序员的快速开发框架:Github上10大优秀的开源后台控制面板,开发框架,开源框架
Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者使用,那么有哪些优秀的开源免费的控制面板呢?我在 Github 上收集了一些优秀的后台控制面板,并总结得出 Top 10。 Continue reading
解决thinkphp5不能给某模块单独设置调试模式
解决tp5无法单独设置某个模块开启或关闭DEBUG
关闭thinkphp5的追踪模式(右下角的图标)
由于项目开发涉及调用API,所以需要在实际环境中制作与调试。那么现在网站前台已经完成,域名可能会有用户访问,为了防止被图谋不轨的人利用了DEBUG信息,需要对网站前台模块禁用DEBUG模式和追踪模式,后台还在开发需要开启DEBUG模式和追踪模式。可是thinkphp5只能配置全局的调试模式,在文件/application/config.php中配置参数app_debug和app_trace,那么就只好自己动手改了(本着一个思想就是不能动thinkphp5核心文件)。 Continue reading
thinkphp5 使用sdk,第三方接口,淘宝客信息查询接入
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
//todo 把三方类库文件放入 vendor 文件夹中 //导入加载第三方类库 tbk 代表目录 TopSdk 代表文件 . 代表 / vendor("tbk.TopSdk"); //请求淘宝客API,实例化类 **注意使用\命名空间** $c = new \TopClient; $c->appkey = '你的 appkey'; $c->secretKey = '你的 secretKey'; $req = new \TbkItemInfoGetRequest; //选择需要查询的字段信息 $req->setFields("num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url"); $req->setPlatform("2"); $req->setNumIids(I('goodsid')); $resp = $c->execute($req); echo "<pre>"; var_dump($resp); |
ThinkPHP5 清除runtime缓存文件函数,thinkphp清除缓存
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
/** * 清除模版缓存 不删除cache目录 */ public function clear_sys_cache() { Cache::clear(); $this->success( '清除成功', 'index/index' ); } /** * 清除模版缓存 不删除 temp目录 */ public function clear_temp_ahce() { array_map( 'unlink', glob( TEMP_PATH.DS.'.php' ) ); $this->success( '清除成功', 'index/index' ); } /** * 清除日志缓存 不删出log目录 */ public function clear_log_chache() { $path = glob( LOG_PATH.'/' ); foreach ($path as $item) { array_map( 'unlink', glob( $item.DS.'.' ) ); rmdir( $item ); } $this->success( '清除成功', 'index/index' ); } /** * 清除glob */ function clert_temp_cache() { array_map('unlink', glob(TEMP_PATH . '/*.php')); rmdir(TEMP_PATH); } |