Yii2 类级别的事件(Class-Level Event Handlers)

文件结构 Structure ├── … ├── components │ └── SampleEventComponent.php ├── config │ └── web.php ├── controllers │ └── SiteController.php ├── events │ ├── BaseEvent.php │ ├── SampleEvent.php │ └── TestEvent.php …

HLD 和 LLD 的区别

High Level Design  (HLD) 概要设计说明是指系统的总体设计。它是对应用程序的总体描述。包括系统架构设计、数据库设计、系统、服务、平台及模块间关系的简要描述。它也被称为宏级/系统设计。它是由解决方案架构师创建的。它将业务/客户端需求转换为高级解决方案。它是在详细设计说明(LLD)之前建立的。 Low Level Design (LLD) 简单地说,详细设计说明就像详细的HLD意味着它指的是组件级设计过程。它对每个模块进行了详细的描述,意味着它包含了每个系统组件的实际逻辑,并深入到每个模块的规范中。这也被称为微观层次/详细设计。它是由设计师和开发人员创建的。它将概要解决方案转换为详细解决方案。它是概要设计说明之后创建。 HLD LLD HLD是指系统的总体设计。 LLD就像细化HLD意味着它指的是组件级设计过程。 High Level Design in short called as HLD. Low Level Design in short called as LLD. …

Nested JSON Validation in Laravel / Lumen

我们可能会提交这样一个请求,一个 嵌套的 JSON 对象,那么如何对 JSON 对象的那边元素进行验证呢? ### Save Post Comments POST {{API_BASE_URL}}/module/v1/posts/2/comments Content-Type: application/json Accept: application/json Authorization: Bearer {{TOKEN}} { "data": [ { "media_ids": [1,2,3], "title": "Title A", "status": "A", …

A simple API Gateway in Lumen

如何使用 Lumen 开发一个简单的 API Gateway Routes create a file called gateway.php in config folder. Register gateway to lumen routes. Edit AppServiceProvider.php in app/Providers/ folder. Controller AppServiceProvider will send all request …

PHP 冒泡算法

没什么用,写了玩玩的。 function bubble_sort(array $items): array { for ($i = 0; $i < count($items); $i++) { for ($j = $i + 1; $j < count($items); $j++) { if ($items[$i] > $items[$j]) …

Laravel/Lumen Customizing Monolog For Channels

官方文档 https://laravel.com/docs/6.x/logging#creating-monolog-handler-channels 首先 新建一个 文件: 如官方文档所示,可以在 __invoke 方法里定制你的 logger,例如你想要 json 格式的日志的话: 更多设置: 输出的日志样本如下: { “message”: “Undefind method: \”asdasdad\””, “context”: {}, “level”: 400, “level_name”: “ERROR”, “channel”: “local”, “datetime”: “2020-05-11T17:05:07.231673+08:00”, “extra”: { …

Multiple middleware parameters in Lumen

Add route middleware in bootstrap/app.php To middleware to routes within a group, Use “,” separate roles, don’t use “|” as separater, the tutorial from here https://docs.spatie.be/laravel-permission/v3/basic-usage/middleware/ is for Laravel only …

HTTP Public Key Pinning 公钥固定介绍

文件名 内容 chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书 fullchain.pem 包括了cert.pem和chain.pem的内容 privkey.pem 证书的私钥 cert1.pem或cert.pem 服务端证书 添加以下行并插入适当的 pin-sha256 =“…”的值将在您的nginx上启用HPKP