自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 thinkphp8 利用think-worker 单服务器同时可使用tcp(Gateway)websocket和mqtt客户端 实现物联网设备接入和主动下发指令(推送消息)

1.安装tp82.安装tp集成的workerman:(自带GatewayWorker)3.安装GatewayClient(TCP绑定设备下发指令用)介绍:GatewayWorker使用经典的Gateway和Worker进程模型。Gateway进程负责维持客户端连接,并转发客户端的数据给BusinessWorker进程处理,BusinessWorker进程负责处理实际的业务逻辑(默认调用Events.php处理业务),并将结果推送给对应的客户端。

2024-09-13 18:23:33 2810

原创 宝塔下用composer安装thinkphp8的坑

2.删除passthru、proc_open、putenv这些宝塔默认禁用函数。1.首先php安装filepath扩展。

2024-09-07 13:05:14 367

原创 Vue3父传子

Header通过数组接收。Header通过对象接收。

2024-08-21 13:58:44 137

原创 VUE模板语法 事件处理

模板编译器会通过检查 v-on 的值是否是合法的 JavaScript 标识符或属性访问路径来断定是何种形式的事件处理器。举例来说,foo、foo.bar 和 foo[‘bar’] 会被视为方法事件处理器,而 foo() 和 count++ 会被视为内联事件处理器。有时我们需要在内联事件处理器中访问原生 DOM 事件。除了直接绑定方法名,你还可以在内联事件处理器中调用方法。##在内联事件处理器中访问事件参数​。##在内联处理器中调用方法​。方法与内联事件判断​。

2024-08-20 09:25:26 251

原创 Vue.js - 渐进式 JavaScript 框架

还有另一种声明响应式状态的方式,即使用 reactive() API。//将 Vue 对象中的 createApp、reactive 属性赋值给 createApp、reactive 变量。接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性 .value。const { createApp, reactive } = Vue //解构赋值语法。"渐进式"是指可以按需引入Vue.js的部分功能, 而不必全量引入整个框架。title: “邓瑞编程”,

2024-08-17 10:38:17 215

原创 使用 Array数组与 Set集合

【代码】使用 Array.from() 方法将 Set集合 转换为 数组。

2024-08-16 08:37:43 187

转载 接口响应选择:HTTP状态码 vs JSON状态码

总之,没有上面200一把梭方便,当然,它也会受网关层数据转换的影响。状态码只有三位,可能远远无法覆盖具体业务中的错误,所以某些响应是在HTTP状态码的基础上做了部分扩展,甚至可能完全与HTTP状态码无关,而是自定义的错误码(比如10001)。HTTP状态码是Web开发中的标准,我们常用的大约有10个左右,2XX代表成功,301、302代表重定向,304代表协商缓存,4XX代表客户端错误,401代表未登陆,403代表没有权限,404代表资源不存在,5XX代表服务端错误,502代表网关错误。

2024-08-14 18:55:35 284

原创 thinkphp 门面(Facade)

事实上,依赖注入和使用Facade代理的效果大多数情况下是一样的,都是从容器中获取对象实例。注意:在进行依赖注入的时候,请不要使用Facade类作为类型约束,而是建议使用原来的动态类。Facade功能可以让类无需实例化而直接进行静态方式调用。依赖注入的优势是支持接口的注入,而Facade则无法完成。和下面的作用是一样的。

2024-08-10 10:35:02 302

原创 thinkphp6 / 8 中间件别名

他大爷的,是在\config文件夹下的middleware.php里设置 不是app下的middleware.php。

2024-08-09 16:23:17 305

原创 thinkphp 多对多 更新

在ThinkPHP中,多对多关系通常通过中间表(也称为连接表)来实现。如果你需要更新多对多关系,你可以先删除旧的关联,然后创建新的关联。

2024-08-08 17:10:27 398

原创 让 Footer 保持在页面底部的2种现代布局方式

我们希望即使 Header+Body+Footer 总高度不足一屏,Footer 仍然会在页面的最底部。

2024-07-25 13:34:58 436

原创 php 8.2+连接数据库注意

php8.2后连接数据库 必须用try catch才可以输出错误信息。

2024-07-24 12:20:47 230

转载 PHP8 核心中废弃的功能 Optional parameter $para declared before required parameter $para2 is implicitly...

这条规则的一个例外是 Type $param = null 形式的参数,其中 null 的默认值使得类型隐式为空。这种用法仍然是允许的,但仍建议使用显式可空类型。如果带有默认值的参数后面跟着一个必要的参数,那么默认值就会无效。

2024-07-23 14:32:40 1116

原创 在 Sass 中使用 @for 循环

for 以两种方式使用:“开始 through 结束” 或 “开始 to 结束”。主要区别在于“开始 to 结束”不包括结束数字,而“开始 through 结束”包括结束数字。#{$i} 部分是将变量(i)与文本组合成字符串的语法。可以在 Sass 中使用 @for 循环添加样式,它的用法和 JavaScript 中的 for 循环类似。这是创建网格布局的有效方法。现在,有了 12 个可用作 CSS class 的列宽选项。

2024-07-20 10:05:30 895

原创 reduce()(即Array.prototype.reduce())

第一个参数称为叠加器(初始值),它是上一次迭代中回调函数的返回值,第二个参数是当前正在处理的数组元素,第三个参数是该参数的索引,第四个参数是在其上调用 reduce 方法的数组。reduce()(即Array.prototype.reduce()),是 JavaScript 所有数组操作中最常用的方法。除了回调函数,reduce 还有一个额外的参数作为叠加器的初始值。如果没有第二个参数,会跳过第一次迭代,第二次迭代给叠加器传入数组的第一个元素。这是通过在每次迭代中调用一个回调函数来实现的。

2024-07-19 20:56:04 704

原创 Object.values(arguments)

Object.values(arguments)

2024-07-19 17:27:47 123

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除