技术饭 PHP的MongoDB\Driver\Manager实现对mongodb的操作
MongoDB是开发人员数据平台,提供必要的服务和工具,以快速、高性能和大规模地构建用户需求的分布式应用程序。MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
阅读全文 » 502天前2023年06月01日
技术饭 PHP搜索引擎MeiliSearch实现全文检索
PHP搜索引擎MeiliSearch实现全文检索,Meilisearch 搜索引擎使用 Rust 语言开发,轻量,对中文搜索非常友好,几乎做到了零配置,零学习成本,部署即用,非常方便。建立在 LMDB 键值存储之上,安装在 Ubuntu 或 MacOS 上时,它以 35 MB 的二进制文件形式存在。 MeiliSearch 带有内置的客户端、服务器和 WebUI。 词干提取、停用词、同义词、排名、过滤器和分面等功能都是开箱即用的,使用合理的默认值并且可以轻松定制。
阅读全文 » 502天前2023年06月01日
生活札记 Laravel学习笔记 - 基础入门(一)
Laravel 是一个全栈Web应用程序框架,具有富有表现力、优雅的语法。它可以从面条一样杂乱的代码中解脱出来,它可以构建网络APP,而且每行代码都可以简洁、富于表达力。在Laravel中已经具有了一套高级的PHP ActiveRecord实现 -- Eloquent ORM。它能方便的将“约束(constraints)”应用到关系的双方,就具有了对数据的完全控制,而且享受到ActiveRecord的所有便利。Eloquent原生支持Fluent中查询构造器(query-builder)的所有方法。
阅读全文 » 529天前2023年05月05日
生活札记 Flutter学习笔记 - 入门(一)
Dart是谷歌开发的计算机编程语言,是一个为全平台构建快速应用的客户端优化的编程语言。Flutter 是 Google 开源的应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。Flutter 为软件开发行业带来了革新:只要一套代码库,即可构建、测试和发布适用于移动、Web、桌面和嵌入式平台的精美应用。
阅读全文 » 565天前2023年03月30日
生活札记 pytest框架、Appium之自动化测试(三)
pytest 可以用来做系统测试的自动化,它的特点有:用Python编写测试用例,简便易用、可以用文件系统目录层次对应手工测试用例层次结构、灵活的初始化清除机制、可以灵活挑选测试用例执行、利用第三方插件,可以生成不错的报表。Appium 是一个移动 App (手机应用)自动化工具。Appium 自动化方案的特点:开源免费、支持多个平台iOS (苹果)、安卓 App 的自动化都支持、支持多种类型的自动化、支持苹果安卓应用原生界面的 自动化、支持应用内嵌WebView的自动化、支持手机浏览器中的web网站自动化、支持flutter应用的自动化、支持多种编程语言、像 Selenium一样,可以用多种编程语言调用它开发自动化程序。
阅读全文 » 569天前2023年03月26日
生活札记 Python + Selenium Web之自动化测试(二)
Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
阅读全文 » 576天前2023年03月19日
技术饭 gitee+webhook+php实现自动拉取代码
gitee+webhook+php实现自动拉取代码,在项目开发中使用git进行代码的管理,每次完成更改上传代码后,还需要登录服务器将代码拉取下来,现在git服务器(gitee/gitlab/github)都会有Webhooks功能,以实现在向git仓库推送/合并等时机让服务器自动拉取新代码。
阅读全文 » 608天前2023年02月15日
技术饭 负载均衡导致wss的websocket请求被分发到其他服务器,无法实时收到消息
负载均衡导致wss的websocket请求被分发到其他服务器,无法实时收到消息,平时我们做swoole即时消息系统的时候,正常情况下就只使用一台服务器作为websocket的请求与分发,但是当加入了负载均衡之后,如果每台服务都开启了websocket,这样会导致客户端的wss请求可能随机分配到不同的服务器上,而每台服务器与客户端链接保存的fd可能重复,A服务器没办法给B服务器的客户端发送消息。
阅读全文 » 1143天前2021年08月29日
技术饭 PHP利用websocket实现客户端请求ws协议功能
PHP利用websocket实现客户端请求ws协议功能,利用websocket实现PHP对ws协议的请求,这里PHP是作为一个客户端通过ws协议请求服务,而不是作为服务端,这个首先要区分下。ws协议是websocket的东西,现在也有很多东西可以实现,如workerman、swoole,但是说实话,看到workerman的文档,有介绍怎么实现这个功能,但是个人是感觉真的很头疼,一切都是基于cli,基本都是用到命令行去执行,一个类似curl请求获取结果的功能还要去捣鼓这些东西,真是呵呵哒。swoole就不说了,首先Windows都不支持(当然,现在基本都是用Linux,但是个人感觉不是很通用)。
阅读全文 » 1292天前2021年04月02日
技术饭 websocket 心跳包保持连接和关闭重连
websocket 心跳包保持连接和关闭重连,在开启了swoole服务之后,浏览器链接websocket链接之后,发送数据正常,但是过一段时间如果浏览器没有重新请求服务器会自动的断开会话,这样就不能发送数据了,为了保持链接需要做一个链接服务器的心跳请求。
阅读全文 » 1292天前2021年04月02日
生活札记 个人所得所税可以申请退税啦~~~
随着国内疫情的好转,各地开始陆续开放个人综合所得汇算清缴办理通道。从4月1日起,全国各地已经全面开放汇算清缴办理渠道,包括#个人所得税#手机APP端和网页WEB端办理通道。年收入不超过12万可免个税汇算清缴。7种情况个税可申请退税,其中一种是2019年度有符合享受条件的专项附加扣除,但预缴税款时没有扣除的。
阅读全文 » 1659天前2020年04月01日
技术饭 nginx目录路径重定向的方法,同一域名映射到其他目录
如果希望域名后边跟随的路径指向本地磁盘的其他目录,而不是默认的web目录时,需要设置nginx目录访问重定向。应用场景:abc.com域名解析在 /root/www/abc 目录,这时候希望 abc.com/admin 自动跳转到目录 /root/www/abcadmin。nginx目录路径重定向的四种实现方式:修改root映射、通过Nginx rewrite内部跳转、设置别名alias映射实现、通过nginx的permanent 301绝对跳转实现。
阅读全文 » 1684天前2020年03月06日
技术饭 css修改谷歌默认最小字体12px的方案
AikehouAdmin5.2.0版本后台的数据表单中,操作按钮的字体font-size属性设置成了10px,但是Google浏览器似乎不兼容,最小字体也就12px,几经折腾才弄清楚,原来是谷歌内核浏览器默认最小12px,其他浏览器却是支持10px,所以也只能做个兼容方案。解决方案是使用css的属性 -webkit-transform: scale(0.88); 来缩放解决这个问题。
阅读全文 » 1687天前2020年03月03日
技术饭 响应式html5网页,手机上下滑动卡顿的现象
响应式html5网页,手机上下滑动卡顿的现象,今天用手机打开自己博客发现网页滑动特别的卡,上下滑动不灵敏,还时不时提醒是否等待程序继续运行,头上一百个问号,调试之后发现是滚动条部分出现了问题,-webkit-overflow-scrolling: touch;overflow-scrolling: touch;这两css属性能解决问题。
阅读全文 » 1689天前2020年03月01日
技术饭 uploadfive1.2.2 + jquery-cropper实现图片裁剪后上传
为了做图片上传然后再进行裁剪之后上传,这个东西研究了一晚上,本来想参考webuploader + cropper实现图片裁剪后上传,但是两者上传还是有一些差别,所以就重新整理了uploadfive1.2.2 + jquery-cropper实现图片裁剪后上传,分享出来让大家少走弯路!!!
阅读全文 » 2139天前2018年12月07日
技术饭 php扩展swoole的基础使用
Swoole:面向生产环境的 PHP 异步网络通信引擎,使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。
阅读全文 » 2182天前2018年10月25日
技术饭 WebSocket基础教程
初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。
阅读全文 » 2196天前2018年10月11日
技术饭 php解决高并发问题
我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举个例子,我们假设处理一个业务请求平均响应时间为100ms,同时,系统内有20台Apache的Web服务器,配置MaxClients为500个(表示Apache的最大连接数目)。
阅读全文 » 2196天前2018年10月11日
技术饭 PHP的WEB系统单机与分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决。
阅读全文 » 2197天前2018年10月10日
技术饭 webuploader + cropper实现图片裁剪后上传
介绍两个插件cropper和webuploader。cropper是一款使用简单且功能强大的图片剪裁jQuery插件。该图片剪裁插件支持图片放大缩小,支持图片旋转,支持触摸屏设备,支持canvas,并且支持跨浏览器使用。而WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。如果你的H5项目是基于zepto.js,你就可以使用webuploader这个插件;如果你的H5项目是基于jquery,你就可以使用cropper这个插件。webuploader是兼容zepto和jquery的,而cropper只能基于jquery。
阅读全文 » 2225天前2018年09月12日
技术饭 【转】MySQL性能优化的最佳21条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。
阅读全文 » 2364天前2018年04月26日
技术饭 Laravel框架重要知识整理
Laravel框架重要知识整理,Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。在Laravel中已经具有了一套高级的PHP ActiveRecord实现 -- Eloquent ORM。它能方便的将“约束(constraints)”应用到关系的双方,这样你就具有了对数据的完全控制,而且享受到ActiveRecord的所有便利。Eloquent原生支持Fluent中查询构造器(query-builder)的所有方法。
阅读全文 » 2381天前2018年04月09日
技术饭 Laravel框架基础入门,Composer的基础使用
Laravel框架基础入门,Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。在Laravel中已经具有了一套高级的PHP ActiveRecord实现 -- Eloquent ORM。它能方便的将“约束(constraints)”应用到关系的双方,这样你就具有了对数据的完全控制,而且享受到ActiveRecord的所有便利。Eloquent原生支持Fluent中查询构造器(query-builder)的所有方法。
阅读全文 » 2387天前2018年04月03日
技术饭 APP请求接口无法获取到session数据的解决方案
APP请求接口无法获取到session数据的解决方案,通过SESSION(cookie是另外一种解决办法)记录用户的有关信息,以供用户再次以此身份对web服务器提起请求时作确认。会话的发明使得一个用户在多个页面间切换时能够保存他的信息。网站编程人员都有这样的体会,每一页中的变量是不能在下一页中使用的(虽然form,url也可以实现,但这都是非常不理想的办法),而SESSION中注册的变量就可以作为全局变量使用了。
阅读全文 » 2687天前2017年06月08日
技术饭 Mark:支持高并发的IIS Web服务器常用设置
Mark:支持高并发的IIS Web服务器常用设置,很多时候在使用IIS服务器的时候需要设置高并发,网上看到一些作者的文章,就转发给分享一下,适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0,适用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows Server 2012
阅读全文 » 2796天前2017年02月18日
吃瓜群众 爱客猴内容管理系统 v3.2.3 版本
爱客猴内容管理系统 v3.2.3 版本,基于国内流行的ThinkPHP3.2.3框架研发,UI插件采用简洁、直观、强悍的Bootstrap3.3.5前端开发框架以及口碑极佳的web弹层组件Layer v2.4,全新的设计理念,带来更舒爽的体验。系统采用多站点切换的设计方案,巧妙地解决了一站一后台的传统弊端,不仅方便站点的管理,也节省更多的研发时间,在新版本的系统中还集成了微信公众号、Ucenter用户中心等一系列常用功能!
阅读全文 » 2836天前2017年01月09日