元件嗨(Hyperf)化計劃

李銘昕發表於2021-02-01

介紹

happy-join-hyperf
本計劃由 Hyperf 使用者自行發起並加入,主要為了解決從其他 PHP框架 轉到 Hyperf框架 開發時,核心元件無法被代替,導致需要重寫大量程式碼的問題。

需要嗨化的元件,可以使用以下命令加入此計劃

composer require limingxinleo/happy-join-hyperf --dev

當我們將倉庫 push 到 Github 之後,就可以被自動識別,如下圖所示

第一個嗨化的元件

這裡介紹第一個被 Hyperf 化的元件

illuminate/cache

前不久,群裡有小夥伴希望可以為 hyperf/cache 增加 tags 功能,當我第一次聽到 tags 的時候,完全是懵逼狀態,
這是個什麼東西?

後來發現,這是 Laravel 的一個特性,如果沒有使用過的人,完全不知道這個特性的功能。但對於大量使用此功能的 Laravel 開發者,遷移專案的時候,這個特性可能就顯得額外重要了。
所以,就有了這個可以直接使用 illuminate/cache 的需求。而移植元件,對普通開發者而言,或者對於不熟悉 Hyperf 的開發者而言,確實有些困難。

於是,我便花了一上午的時間,將此元件做了移植,並進行開源。

嗨化規則

我希望所有嗨化的元件可以儘量遵守以下規則:

  1. 保留原元件的 LICENSE
  2. 儘量保留原元件名稱空間
  3. 依賴 happy-join-hyperf 元件,方便 Github 識別
  4. READMD.md 中寫明白與原元件的區別
  5. 保持一個可以持續開源的心態,為自己的元件負責,嚴禁當 甩手掌櫃

關於 Hyperf

Hyperf 是基於 Swoole 4.5+ 實現的高效能、高靈活性的 PHP 協程框架,內建協程伺服器及大量常用的元件,效能較傳統基於 PHP-FPM 的框架有質的提升,提供超高效能的同時,也保持著極其靈活的可擴充套件性,標準元件均基於 PSR 標準 實現,基於強大的依賴注入設計,保證了絕大部分元件或類都是 可替換可複用 的。

框架元件庫除了常見的協程版的 MySQL 客戶端Redis 客戶端,還為您準備了協程版的 Eloquent ORMWebSocket 服務端及客戶端JSON RPC 服務端及客戶端GRPC 服務端及客戶端OpenTracing(Zipkin, Jaeger) 客戶端Guzzle HTTP 客戶端Elasticsearch 客戶端Consul、Nacos 服務中心ETCD 客戶端AMQP 元件Nats 元件Apollo、ETCD、Zookeeper、Nacos 和阿里雲 ACM 的配置中心基於令牌桶演算法的限流器通用連線池熔斷器Swagger 文件生成Swoole TrackerBlade、Smarty、Twig、Plates 和 ThinkTemplate 檢視引擎Snowflake 全域性ID生成器Prometheus 服務監控 等元件,省去了自己實現對應協程版本的麻煩。

Hyperf 還提供了 基於 PSR-11 的依賴注入容器註解AOP 面向切面程式設計基於 PSR-15 的中介軟體自定義程式基於 PSR-14 的事件管理器Redis/RabbitMQ 訊息佇列自動模型快取基於 PSR-16 的快取Crontab 秒級定時任務Sessioni18n 國際化Validation 表單驗證 等非常便捷的功能,滿足豐富的技術場景和業務場景,開箱即用。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

相關文章