拥有0000-未整理-等待研究标签的文章

剖析Laravel计划任务--避免重复

译文 GitHub 原文链接 有时一个预定的工作需要比我们最初预期的更多的时间运行,这样会导致另外一个工作的实例开始,而第一个还没有完成,例如,我们运行一个每分钟生成报告的工作有时候当数据变大时,报表生成可能需要 1 分钟以上,这样就可以在第一个还在进行时启动该作业的另一个实例。在大多数情况下,这是很好的,但有时候应该防止这种情况,以保证正确的数据或防止高的服务器资源消耗,所以让我们看...
阅读全文

剖析Laravel队列系统--Worker

译文 GitHub 原文链接 现在,我们知道了 Laravel 如何将作业推到不同的队列中,让我们来深入了解 workers 如何运作你的作业。 首先,我将 workers 定义为一个在后台运行的简单 PHP 进程,目的是从存储空间中提取作业并针对多个配置选项运行它们。```phpphp artisan queue:work```运行此命令将指示 Laravel 创建应用程序...
阅读全文

Laravel Passport API 认证使用小结

看到常有人问 Laravel Passport 用于密码验证方式来获取 Token 的问题,刚好我最近一个 API 项目使用 Laravel `Dingo Api`+`Passport`,也是使用 Oauth2 的`'grant_type' = 'password'`密码授权来做 Auth 验证,对于如何做登录登出,以及多账号系统的认证等常用场景做一下简单的使用小总结。 基本配置基本安装配...
阅读全文

从PHP Laravel 到 Go Iris--路由篇

Laravel 是我最喜欢的 PHP Web 开发框架,所以也希望可以在 Go 的 Web 框架中选择一个类似 Laravel 这样的好用又全栈的框架,刷了一下的文档,最终还是选择 Iris,当然我是没有从性能角度考虑,只是从可以快速开发,且支持的特性全还有就是看着顺眼的心理选择了 Iris,应该有不少 PHPer 像我一样使用 Laravel 同时在学习 Go,所以为了便于 Laravel 开发...
阅读全文

微信小程序【有猫撸】开发体验

最近体验了一下微信小程序开发,做了一个简单的刷猫片的小玩具,效果大致如下:开始是用 Laravel 写了 API,后来又用 Go 的 Iris 写了一套,压测了一下,Iris 的性能比 Laravel 的高了可不是一点点,后来就换 Iris 版本的 API 了。数据通过 Go 写了个简单的脚本抓取入库,附件上传到七牛。本来这个小程序还有小论坛和复制淘宝链接功能的,但是上传到微信审核以后...
阅读全文

Go 实现依赖注入

为什么需要依赖注入作为一名软件开发人员,如果我们希望使代码保持清洁和可维护性,我们将代码分割成不同的层次。通常边界至少放置在基础设施和业务逻辑之间。当我们专门处理复杂的业务逻辑时,基础架构依赖于我们的业务逻辑是可取的,这样在更改基础架构时不会破坏我们的软件。开发一个新的软件项目时的第一个决定是否选择一个结构来实现分层。 大多数情况下,我选择简洁的架构,但您有另一个很好的选择,例如 D...
阅读全文

Go实践微服务 -- 服务发现

服务的注册发现对于微服务来说是一个非常重要的环节,在单一架构应用中,service 之间的互相调用,通过一个固定的 host 和 port 来发起 REST 或者 RPC 来调用,但是在微服务架构中,各个服务往往是动态变化的,所以需要一个服务发现机制来发送客户端的请求到动态的 service 实例中去。在利用 go micro 来实现服务发现便利很多,micro 中默认支持使用 )还支持 Et...
阅读全文

非Laravel项目中集成使用 illuminate/config

Larvae 的配置都在 config 目录下非常方便管理,可以通过`config()`帮助函数来实现对配置项目的设置和获取,同时用    来实现项目内环境变量的控制,非常强大和方便。我们在日常开发中如果没有使用 Laravel 框架,比如写一些脚本,或者自己写的项目框架,但是想集成这样的配置管理。这里就讲讲如何集成`illuminate/config` 到自己的项目中实现 Laravel 那种 ...
阅读全文

PHP实现Snowflake生成分布式唯一ID

Twitter 的 snowflake 在分布式生成唯一 UUID 应用还是蛮广泛的,基于 snowflake 的一些变种的算法网上也有不少。使用 snowflake 生成 UUID 很多都是在分布式场景下使用,我看了下网上有其中有几篇 PHP 实现的都没有考虑到线程安全。现在 PHP 有了 Swoole 的锁和协程的加持,对于我们开发线程安全和高并发模拟还是很方便的,这里用 PHP 结合 Swo...
阅读全文

剖析Laravel计划任务--创建和运行系统命令

译文 GitHub 原文链接 在启动计划任务的事件的时候,Laravel 的进度管理器在`Illuminate\Console\Scheduling\Event`对象上调用 `run()` 方法,表示该事件发生在 `Illuminate\Console\Scheduling\ScheduleRunCommand` 内。这个 `run()` 方法构建命令语法,并使用 Symfony Pr...
阅读全文