首页 文章 精选 留言 我的

精选列表

搜索[快速],共10000篇文章
优秀的个人博客,低调大师

ulthon_admin v2.0.19 发布,PHP 后台快速开发框架

本次发行版中,优化了底层建设的代码,并实现了一个强大的特性(对我来说如此): 从数据库生成数据库迁移代码 用法 什么是数据库迁移工具 ulthon_admin标准的安装流程是使用数据库迁移工具进行安装,他不仅可以安装到mysql数据库,也支持sqlite,sqlserver等其它数据库。 具体用法参考文档: https://www.kancloud.cn/manual/thinkphp6_0/1118028 但一般而言,我们开发中不会从写迁移代码开始,而是直接使用顺手的数据库工具(Dbeaver、Navcat等)设计数据库,然后在开发中修修补补。 这并没有什么不妥,但是如果你做的是一个标准产品,需要经常执行安装和更新,需要给多个客户部署时,就会感到吃力。 遇到这种情况,你只能从一个数据库导出,再导入到另一个数据库,反反复复的操作。还有可能不知道哪个是最新的,哪个需要更新,哪个更新到哪个版本了。 另一方面,如果数据库丢失了,而你手里又没有及时备份,那么也是很头疼的事。 数据库迁移工具就是为了解决以上种种问题的,比如我们需要新建一张test_goods数据表,我们可以使用数据库迁移工具,写出这样的代码: <?php use think\migration\Migrator; use think\migration\db\Column; class TestGoods extends Migrator { public function change() { $table = $this->table('test_goods') ->setComment('商品列表') ->addColumn('cate_id', 'biginteger', ['limit' => '20', 'signed' => '0', 'null' => '0', 'default' => '0', 'comment' => '分类ID {relation} (table:mall_cate,relationBindSelect:title)',]) ->addColumn('title', 'char', ['limit' => '20', 'null' => '0', 'default' => '', 'comment' => '商品名称',]) ....... ->addColumn('detail', 'text', ['null' => '1', 'comment' => '详情',]) ->addIndex('uid', ['unique' => true]) ->addIndex('detail', ['type' => 'fulltext']) ->addIndex('cate_id') ->create(); } } 然后运行命令: php think migrate:run 此时这张表就出现在我们的数据库了,至于其他的表,并不会覆盖或丢失。 这样有很多好处: 数据库跟随版本库存储不会丢失 没有反复多余的导出数据库 可以安装到“任何数据库” 任何标准产品都可以任意运行该命令用于升级数据库 但是我们开发的时候,不会直接写数据迁移工具,而是从设计表开始。如果我们需要数据库迁移工具,就只能照着现在的数据表写迁移工具,这是以前的做法,也只能这样做。但是现在不一样了,通过一行命令可以一键生成数据库迁移的代码。就像生成curd那样。 现在按照我们的介绍看看怎么用吧。 使用 我们先用自己喜欢的方式设计出一张表。 -- admin_demo_ultho.ul_test_goods definition CREATE TABLE `ul_test_goods` ( `id` int(11) NOT NULL AUTO_INCREMENT, `cate_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '分类ID {relation} (table:mall_cate,relationBindSelect:title)', `title` char(20) NOT NULL DEFAULT '' COMMENT '商品名称', `logo` char(255) NOT NULL COMMENT '商品logo {image}', `images` text NOT NULL COMMENT '商品图片 {images}', `describe` text NOT NULL COMMENT '商品描述 {editor}', `total_stock` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '总库存', `sort` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '排序', `status` int(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态 {radio} (0:正常,1:禁用)', `cert_file` varchar(100) NOT NULL COMMENT '合格证 {file}', `verfiy_file` text NOT NULL COMMENT '检测报告 {files}', `remark` char(255) NOT NULL DEFAULT '' COMMENT '备注说明', `create_time` int(11) unsigned NOT NULL DEFAULT '0', `update_time` int(11) unsigned NOT NULL DEFAULT '0', `delete_time` int(11) unsigned NOT NULL DEFAULT '0', `publish_time` int(10) unsigned NOT NULL COMMENT '发布日期 {date} (date)', `sale_time` bigint(20) unsigned NOT NULL COMMENT '售卖日期 {date} (datetime)', `intro` varchar(100) NOT NULL COMMENT '简介 {textarea}', `time_status` smallint(5) unsigned NOT NULL COMMENT '秒杀状态 {select} (0:未参加,1:已开始,3:已结束)', `is_recommend` tinyint(4) NOT NULL COMMENT '是否推荐 {switch} (0:不推荐,1:推荐)', `shop_type` varchar(100) NOT NULL COMMENT '商品类型 {checkbox} (taobao:淘宝,jd:京东)', `tag` varchar(100) NOT NULL COMMENT '商品标签 {table} (table:mall_tag,type:checkbox,valueField:id,fieldName:title)', `tag_backup` varchar(100) DEFAULT NULL COMMENT '商品标签(单选) {table} (table:mall_tag,type:radio,valueField:id,fieldName:title)', `from_area` varchar(100) NOT NULL COMMENT '产地 {city} (name-province:0,code:0)', `store_city` varchar(100) NOT NULL DEFAULT '山东省/临沂市' COMMENT '仓库 {city} (level:city)', `tag_input` varchar(100) NOT NULL COMMENT '商品标签 (输入) {tag}', `uid` varchar(100) NOT NULL COMMENT '唯一id', `price` decimal(10,2) DEFAULT NULL COMMENT '价格', `detail` longtext COMMENT '详情', PRIMARY KEY (`id`), UNIQUE KEY `ul_test_goods_uid_IDX` (`uid`) USING BTREE, KEY `cate_id` (`cate_id`) USING BTREE, FULLTEXT KEY `ul_test_goods_detail_IDX` (`detail`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='商品列表'; 面对这样一张数据表,如果我们要对照写出数据库迁移工具的代码,会很费事,而且很容易就写错了。 但现在时代变了,只需要一行命令 php think curd:migrate -t test_goods 此时会在数据库迁移工具的工作目录下生成一个文件: database\migrations\20220905222557_test_goods.php 这跟使用官方的生成方式一致 此时会直接生成开头那样的数据库迁移代码。 结尾 可能你没用过数据库迁移工具,那么目前可能无法引起你的兴趣,(建议使用),如果你正在使用,那么这个命令绝对能给你带来极大的便利。甚至可以让那些拥有几十个数据表的项目,也能轻松地使用数据库迁移工具来安装了。 ulthon_admin正在积极维护,拥有极高的定制性,支持依赖裁剪,精简代码,欢迎使用。

优秀的个人博客,低调大师

JeeSite 4.4.1 发布,无用户限制,Spring Boot 快速开发平台

被封闭的这段时间深感从业不易,为支持小微企业发展,今后发布的所有社区版将全线解除用户数限制。 愿疫情早日散去,山河无恙,人间皆安。🌞🌞 升级内容 升级 Spring Boot 2.5.13、Shiro 1.9.0、其它工具等等 新增 Spring configuration metadata yml 配置信息友好提示 新增 是否启用默认 Servlet 映射(启用后可访问 webapp 下的静态资源访问) 新增 支持Spring Boot带减号的 key 写法,自动转换为驼峰格式 新增 BPM 查询全部待办、已办流程数据接口 新增 OAuth2 state 缓存集群共享 新增 CacheUtils exists 方法 优化 便捷脚本、Docker脚本优化、Maven配置优化 优化 CacheUtils 不存储当前用户信息,防止流程标题生成串用户 优化 多线程,Redis 消息监听线程池、用户缓存清理线程池、消息推送线程池,避免高并发情况下太多的线程问题。 优化 服务器监控磁盘列表,隐藏一些不必要的盘符 优化 访问日志的控制台日志信息输出 优化 Cloud网关路由简化配置 修正 ie10下用户缓存问题修改头像未刷新 修正 sqlserver下流程名称排序错误 可视化数据大屏升级 Avue-data v2.3 无用户数限制,无在线人数限制 升级方法 修改pom.xml文件中的jeesite-parent版本号为4.4.1-SNAPSHOT 如果你导入了jeesite-common源码项目,请与git上的代码进行同步 如果你导入了jeesite-module-core源码项目,请与git上的代码进行同步 如果你是跨版本升级,请注意每一个版本的升级方法,业务上有调整的地方进行修改 Shiro 升级到 1.9.0 shiroFilter 方法 getInstance() 替换为 getObject() 执行root/package.bat(sh)打包脚本,强制更新依赖即可 了解更多 JeeSite 官网地址:http://jeesite.com JeeSite 在线文档:http://docs.jeesite.com JeeSite 演示地址:http://demo.jeesite.com JeeSiteVue演示地址:http://vue.jeesite.com

优秀的个人博客,低调大师

零代码快速集成AGC崩溃服务-xamarin框架-iOS

华为AGC的崩溃服务支持跨平台,按照文档整理了个Xamarin插件集成的文档,有需要的开发者可以参考。 环境配置和项目设置 1.安装Xamarin环境 主要是先安装visual studio for MAC,然后安装Mobile development with .NET,具体可以参考Xamarin环境搭建。 2.AGC创建项目工程,并且开通华为分析服务。 这部分是基本操作,可以参见创建项目和开通华为分析 3.集成AGC Xamarin NuGet包 点击创建的项目工程,右键选择”Manage NuGet Packages” 选择对应的包后安装: 继续添加HA包,注意需要选择1.2.0.300版本: 4.添加Json文件到项目目录下 5.将“Build Action”设置为“BundleResource”。 6.设置应用包名。 7.配置免费预配证书 如果没有申请付费证书,可以使用免费证书,具体参见: https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-get-started-xamarin#h2-1617333170516-2 集成实现 1.布局界面设计 双击main.storyboard拉起Xcode创建3个按键“MakeCrash”,” CatchException”,” CustomReport”。 2.代码调用 编辑 ViewController.cs 文件, 调用 AGCCrash.GetSharedInstance.TestIt 制造一次崩溃事件,调用 AGCCrash.GetSharedInstance.SetUserId 自定义用户标识,调用 AGCCrash.GetSharedInstance.SetCustomKey 自定义键值对,调用 AGCCrash.GetSharedInstance.Log 自定义日志级别,调用 AGCCrash.GetSharedInstance. RecordException 产生并记录一次非严重异常。 usingSystem; usingUIKit; usingHuawei.Agconnect.Crash; usingFoundation; namespacecrashios0512 { publicpartialclassViewController:UIViewController { publicViewController(IntPtrhandle):base(handle) { } publicoverridevoidViewDidLoad() { base.ViewDidLoad(); //Performanyadditionalsetupafterloadingtheview,typicallyfromanib. } publicoverridevoidDidReceiveMemoryWarning() { base.DidReceiveMemoryWarning(); //Releaseanycacheddata,images,etcthataren'tinuse. } partialvoidMakeCrash(UIKit.UIButtonsender) { AGCCrash.GetSharedInstance().TestIt(); } partialvoidCatchException(UIKit.UIButtonsender) { AGCCrash.GetSharedInstance().RecordError(newFoundation.NSError()); } partialvoidCustomReport(UIKit.UIButtonsender) { AGCCrash.GetSharedInstance().SetUserId("testuser"); AGCCrash.GetSharedInstance().Log("defaultinfolevel"); AGCCrash.GetSharedInstance().SetCustomValue(newNSString("test"),"thisisstringvalue"); AGCCrash.GetSharedInstance().LogWithLevel(AGCCrashLogLevel.Warning,"thisiswarningloglevel"); AGCCrash.GetSharedInstance().SetCustomValue(newNSNumber(123),"thisisnumber"); } } } 崩溃报告查看 集成完后点击按键制造崩溃和非严重异常,并产生自定义报告,可以在AGC页面查看 1.崩溃概览 2.问题概览 3.查看崩溃详情堆栈 4.查看自定义键值对 5.查看自定义日志级别 6.查看自定义用户标识 欲了解更多详情,请参见: 1、华为AGC 崩溃服务文档:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-crash-introduction 2、华为AGC-崩溃服务codelab:https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/CrashService-iOS 更多精彩内容,请见华为开发者官方论坛→https://developer.huawei.com/consumer/cn/forum/home?ha_source=sanfang

优秀的个人博客,低调大师

在docker中快速使用各个版本的PostgreSQL数据库

安装概述 PG安装方法很多,和MySQL类似,给用户提供很大的选择空间。如:RPM包安装(在线、离线)、源码编译安装、系统自带、二进制、NDB安装等。 https://www.postgresql.org/ https://yum.postgresql.org/rpmchart.php https://yum.postgresql.org/11/redhat/rhel-6-x86_64/repoview/postgresqldbserver11.group.html https://www.postgresql.org/ftp/source/ 打开 PostgreSQL 官网 https://www.postgresql.org/,点击菜单栏上的 Download ,可以看到这里包含了很多平台的安装包,包括 Linux、Windows、Mac OS等 。 各个安装包:https://www.postgresql.org/ftp/source/ Linux 我们可以看到支持 Ubuntu 和 Red Hat 等各个平台,点击具体的平台链接,即可查看安装方法: 点击上图中的 file browser,我们还能下载 PostgreSQL 最新的源码。 Docker直接使用 Docker Hub的官网地址:https://hub.docker.com/_/postgres GitHub的地址:https://github.com/docker-library/postgres -- 拉取所有镜像 docker pull postgres:9.4 docker pull postgres:9.6 docker pull postgres:10 docker pull postgres:11 docker pull postgres:12 docker pull postgres:13 docker pull postgres:13.3 -- 创建各个版本的Docker容器 docker rm -f lhrpg94 lhrpg96 lhrpg10 lhrpg11 lhrpg12 lhrpg13 docker run --name lhrpg94 -h lhrpg94 -d -p 54321:5432 -e POSTGRES_PASSWORD=lhr -e TZ=Asia/Shanghai postgres:9.4 docker run --name lhrpg96 -h lhrpg96 -d -p 54322:5432 -e POSTGRES_PASSWORD=lhr -e TZ=Asia/Shanghai postgres:9.6 docker run --name lhrpg10 -h lhrpg10 -d -p 54323:5432 -e POSTGRES_PASSWORD=lhr -e TZ=Asia/Shanghai postgres:10 docker run --name lhrpg11 -h lhrpg11 -d -p 54324:5432 -e POSTGRES_PASSWORD=lhr -e TZ=Asia/Shanghai postgres:11 docker run --name lhrpg12 -h lhrpg12 -d -p 54325:5432 -e POSTGRES_PASSWORD=lhr -e TZ=Asia/Shanghai postgres:12 docker run --name lhrpg13 -h lhrpg13 -d -p 54326:5432 -e POSTGRES_PASSWORD=lhr -e TZ=Asia/Shanghai postgres:13 docker run --name lhrpg133 -h lhrpg133 -d -p 54327:5432 -e POSTGRES_PASSWORD=lhr -e TZ=Asia/Shanghai postgres:13.3 -- docker直接登陆 docker exec -it lhrpg133 psql -U postgres -d postgres -- 本地登陆 docker exec -it lhrpg133 bash su - postgres psql -- 远程登陆 psql -U postgres -h 192.168.66.35 -d postgres -p54327 -- 从Postgresql 9.2开始,还可以使用URI格式进行远程连接:psql postgresql://myuser:mypasswd@myhost:5432/mydb psql postgresql://postgres:lhr@192.168.66.35:54327/postgres 其中-h参数指定服务器地址,默认为127.0.0.1,默认不指定即可,-d指定连接之后选中的数据库,默认也是postgres,-U指定用户,默认是当前用户,-p 指定端口号,默认是’5432’,其它更多的参数选项可以执行: ./bin/psql —help 查看。 C:\Users\lhrxxt>psql -U postgres -h 192.168.66.35 -d postgres -p54327 Password for user postgres: psql (13.3) Type 'help' for help. postgres=# select version(); version ------------------------------------------------------------------------------------------------------------------ PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit (1 row) postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------------+-------------------+----------------------- postgres | postgres | UTF8 | Chinese_China.936 | Chinese_China.936 | template0 | postgres | UTF8 | Chinese_China.936 | Chinese_China.936 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | Chinese_China.936 | Chinese_China.936 | =c/postgres + | | | | | postgres=CTc/postgres (3 rows) postgres=# CREATE DATABASE lhrdb WITH OWNER=postgres ENCODING='UTF-8'; CREATE DATABASE postgres=# \c lhrdb You are now connected to database 'lhrdb' as user 'postgres'. lhrdb=# lhrdb=# create table student ( lhrdb(# id integer not null, lhrdb(# name character(32), lhrdb(# number char(5), lhrdb(# constraint student_pkey primary key (id) lhrdb(# ); CREATE TABLE lhrdb=# lhrdb=# \d student Table 'public.student' Column | Type | Collation | Nullable | Default --------+---------------+-----------+----------+--------- id | integer | | not null | name | character(32) | | | number | character(5) | | | Indexes: 'student_pkey' PRIMARY KEY, btree (id) lhrdb=# lhrdb=# INSERT INTO student (id, name, number) VALUES (1, '张三', '1023'); INSERT 0 1 lhrdb=# SELECT * FROM student WHERE id=1; id | name | number ----+------------------------------------+-------- 1 | 张三 | 1023 (1 row) 是不是很方便呢。 安装配置完成。

优秀的个人博客,低调大师

Strategy Analytics:尽管组件短缺,5G仍在快速增长

6月2日消息,根据市场调研机构Strategy Analytics发布的最新报告显示,2020年,尽管发生了新冠肺炎疫情,但用于蜂窝用户设备的无线电组件市场仍在增长,并将持续增长到2025年。 据报告作者、射频和无线组件主管Christopher Taylor称:“尽管出现了疫情,射频组件收入,包括基带处理器和射频前端(RFFE)在2020年达到历史高点。我们预测,到2025年,蜂窝无线电组件市场将以每年8%的速度增长。在设备发货量增长停滞之后,为了帮助应对5G日益增加的无线电复杂性,RFFE组件供应商继续开发具有更多功能的封装模块系统,允许公司在每次设计胜利中捕获更多RFFE内容,同时使原始设备制造商更容易设计和组装手机。” 手机组件技术副总监Sravan Kundojjala补充道:“持续的半导体短缺可能会持续到2022年,这证实了强劲的潜在需求。不过,手机厂商面临供应限制,可能无法在今年充分发挥手机销售潜力。包括台积电、联华电子、GlobalFoundries、中芯国际、三星代工厂和复合半导体代工厂在内的半导体代工厂都在尽快提高产能。” Strategy Analytics预测,对sub-6和mmWave 5G射频组件的强劲需求,以及智能手机以外新的5G机遇,将推动未来几年蜂窝无线组件的显著增长。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册