- 博客(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
原创 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
转载 接口响应选择: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
转载 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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人