TLingC's Zone
TLingC's Zone

开发
文章归档

使用Coding持续集成部署微信小程序

微信发布了独立的 miniprogram-ci 小程序编译模块,可以通过node脚本或者命令行直接操作代码上传及预览,而不再需要使用完整的微信开发者工具。 这篇文章讲述如何使用 Coding 的持续集成上传小程序代码,同时也兼容Jenkins或者基于Jenkins的持续集成系统。 首先到小程序后台,开发→开发设置→小程序代码上传获取密钥,由于 Coding 的构建节点出口IP一般不固定,因此需要关闭“IP白名单”。 获取到密钥后,到 Coding 的项目设置→开发者选项→凭据管理,凭据类型选择SSH私钥,然后填入…

268   2020-05-08  

ThinkPHP 6 阿里云日志服务日志驱动

think-aliyunsls ThinkPHP 6 阿里云日志服务日志驱动 安装 composer require tlingc/think-aliyunsls 配置 config/log.php // 默认日志记录通道 'default' => 'aliyunsls', // 日志通道列表 'channels' => [ 'aliyunsls' => [ // 日志记录方式 'type' => 'Aliyunsls', // 阿里云 endpoint 'endpoint' => 'http://cn-beijing.sls.aliyuncs.com/', // 阿里云 AccessKey ID 'access_key_id' …

475   2020-03-16  

腾讯云 ThinkPHP Serverless Component

由 官方维护的ThinkPHP Component 已发布,可使用官方版。 由于官方对静态资源处理采用扩展名枚举实现,暂无法满足我的业务需求,故本仓库还会维护一段时间。如果官方版已经能够满足你的需求,建议使用官方版。 简介 腾讯云 ThinkPHP Serverless Component。 本项目基于 tencent-laravel 修改,以支持运行 ThinkPHP,同时优化了对静态资源的兼容性。 目录 准备 安装 配置 部署 移除 0. 准备 初始化 ThinkPHP 项目 在使用此组件之前,你需要先自己初始化一个 thinkphp …

297   2020-03-08  

Docker 19.03 设置Docker Hub镜像地址

在 Docker 19.03 中,通过修改/etc/default/docker文件: DOCKER_OPTS="--registry-mirror=https://docker.mirrors.ustc.edu.cn" 的方法已经不再可用,修改后仍然会使用 Docker Hub 自己的地址,并没有使用自己设置的镜像地址。 在本版本中可以通过/etc/docker/daemon.json实现镜像地址的修改,如果没有此文件,可以新建一个,文件内容为: { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } 然后重启 Docker 服务: service docker restart 最后运行dock…

749   2020-03-07  

使用Jenkins持续集成部署QQ小程序

QQ小程序提供了Docker镜像来对小程序项目进行CI构建(文档)。文档中提供的Github Actions及Drone CI两种CI工具都对Docker的相关操作进行了深度集成,以至于不需要调用docker自身的命令。 而改写成Jenkinsfile也很简单,在检出代码后,只需要先拉取镜像然后运行即可。 操作步骤 在QQ小程序后台获取AppToken,然后赋值到环境变量PLUGIN_APPTOKEN。 在检出代码后,新建一个拉取镜像的stage,拉取镜像。 stage('拉取镜像') { steps { sh 'docker pull qqminiapp/build:la…

444   2020-02-08  

让ThinkPHP 6.0语言包支持多级分组

最近在做一个多语言网站项目,需要给一个多级导航栏编写语言包。虽然ThinkPHP 6.0多语言功能引入了语言分组,但其分组最深只能支持两层,在如我的这种情况下无法满足需要。 可通过修改框架src/think/Lang.php来实现多层级的支持。 在src/think/Lang.php中,替换对应方法: public function has(string $name, string $range = ''): bool { $range = $range ?: $this->range; if ($this->config['allow_group'] && strpos($name, '.')) { $names = e…

321   2020-02-05  

ThinkPHP 6.0 多语言优化扩展包

think-lang ThinkPHP 6.0 多语言优化扩展包 特色 支持通过如 mywebsite.com/zh-hans/ 的二级目录访问对应语言页面。 支持每种语言的语言包单独成目录,目录下可设有二级目录。 安装 composer require tlingc/think-lang 使用 基础配置 请参照 官方文档 进行相关配置。同时注意如下与官方文档的不同点。 开启和加载语言包 中间件名称为: 'tlingc\lang\middleware\LoadLangPack', 由于多语言通过二级目录访问,使用Cookie保存语言 功能无效。 语言文件定义 自…

633   2020-02-04  

ThinkPHP 6 多模型下事务处理

mysql下,事务不是针对某个特定的表或者特定的模型的,因此在多模型的情况下,不需要针对每个模型分别startTrans、commit和rollback。即使模型中有继承startTrans方法,可以通过Model::startTrans();启动事务,但其作用等同于Db:startTrans();。因此可以直接写为以下形式。 通过测试,在出现异常时,通过图中自增值可看出(自增值在rollback时也会增加),三个模型尝试新增数据都被rollback。同时把Table3中的name字段改为test233的操作也没有成功。 <?php namespace app\cont…

656   2020-01-20  

小程序云开发 - 二维码生成工具

wxcloud-qrcode-generator 小程序云开发 - 二维码生成工具 实现 根据前端传递到需要生成的内容,生成二维码后上传至云存储,返回对应文件的URL。 二维码生成使用了qrcode库,可参考:https://www.npmjs.com/package/qrcode 使用 wx.showLoading() wx.cloud.callFunction({ name: 'qrcode_generator', data: { text: '需要生成的文字内容' }, complete: res => { wx.hideLoading() wx.previewImage({ urls: [res.result], }) }, fail: err…

406   2019-12-14  

https://tlingc.com/wp-content/uploads/2019/12/TIM截图20191208174038_conew2.jpg

在Composer中使用自己修改的包

在使用composer组件时,有时候需要对包进行一些自定义修改,有一些教程中写需要修改composer.json,然后发布到Packagist,但如果只是适应自己需求所作的小修改,其实并没有必要发布到Packagist,而这样做也是Packagist不推荐的: Do not submit forks of existing packages. If you need to test changes to a package…

330   2019-12-08  

解决微信小程序在7.0.8及电脑版上的cookie问题

更正:事后查证,此问题应是 HTTP/2 特性所导致。 微信小程序在7.0.8版本及电脑版上,response header的Set-Cookie参数变成小写,可能导致通过直接获取res.header['Set-Cookie']来存储Cookie的方法不可用。 这个问题在7.0.8上首次出现(我当时使用的是测试版),而电脑版长期有这个问题(我原本以为是电脑版还不完善导致不兼容,直到这个问题在手机版上也出现了)。 解决方案: 通过先遍历res.header,把参数转小写后判断。 let found = false for(let header in res.header){ …

494   2019-11-10  

让vscode支持格式化laravel blade模版文件

安装以下两个扩展: 名称: Laravel 5 Snippets id: onecentlin.laravel5-snippets 说明: Laravel 5 snippets for Visual Studio Code 版本: 1.7.0 发布者: Winnie Lin VS Marketplace 链接: https://marketplace.visualstudio.com/items?itemName=onecentlin.laravel5-snippets 名称: Laravel Blade Snippets id: onecentlin.laravel-blade 说明: Laravel blade snippets and syntax highlight support 版本: 1.20.0 发布者: Winnie Lin VS Marketplace…

536   2019-10-30  

在ThinkPHP中使用Laravel Mix

参照Laravel Mix文档,可以用在独立项目中,因此可以在ThinkPHP根目录下,参照Laravel项目,建立如下两个文件: package.json { "private": true, "scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "npm run development -- --watch", "watch-poll": "…

529   2019-10-15  

解决微信小程序自定义tabbar点击态问题

项目在使用ColorUI内的custom-tab-bar示例,发现在手机上测试时切换到其它tab,点击态有时候会跳到第一个tab页后然后才到我选中的tab,但是在开发者工具上又不会出现这种问题。 之后参考了微信小程序的文档的 示例代码片段,以及 社区上类似问题的帖子,感觉是小程序本身的问题。 今天再看了一遍自定义tabBar的文档,发现有这么一句话: 每个 tab 页下的自定义 tabBar 组件实例是不同的,可通过自定义组件下的 getTabBar 接口,获取当前页面的自定义 tabBar 组件实例。 也就…

1,261   2019-10-02  

小程序提示组织目录结构的处理方法

给小程序添加functions文件夹创建云函数后,编译时出现以下提示: 文件 functions/xxxxxx/xxxxxx.js 在 project.config.json 'cloudfunctionRoot' 指定的目录, 如果不希望在小程序/小游戏的运行环境中执行该文件,请使用 project.config.json "miniprogramRoot" 组织项目目录结构 此时如果执行构建npm,系统会把云函数文件夹下面的函数依赖也视为运行环境中需要使用的组件,会读取package.json的依赖,并且构建到miniprogram_npm文件夹中,但云函数的依赖不需要使用…

666   2019-09-29  

加载更多