tag php

標籤
貢獻299
361
05:09 PM · Oct 25 ,2025

@php / 博客 RSS 訂閱

JonLee - 利用 PHP-Casbin 中的優先級模型來做權限控制

優先級模型,所謂優先級,是指按一定的順序加載策略。 優先級高的策略先加載,先加載的策略具有較高的優先級。 PHP-Casbin 目前支持三種模式:隱式優先順序加載策略、顯示優先順序加載策略、基於角色和用户的層級關係加載策略。 優先級模式的配置在model.conf中的policy_effect中配置。 隱式優先順序加載策略 隱式優先級模型配置在官方倉庫的 examples 目錄下 priority

rbac , 權限 , php , laravel

收藏 評論

蘇琢玉 - 用裝飾器模式實現多層緩存:讓PHP應用更快更穩

為什麼要做多層緩存? 想象這樣一個場景:你的PHP應用每次訪問數據庫都要花1秒鐘,用户抱怨頁面加載太慢。這時候你會想到加緩存——但只用一層緩存夠嗎? 比如: 內存緩存雖然快,但重啓服務數據就沒了 Redis緩存能持久化,但網絡請求也有開銷 文件緩存最可靠,但磁盤讀寫速度有限 多層緩存的思路很簡單: 把最快的緩存放在最前面,就像快遞櫃一樣—— 優先從內存取(速度最快) 內存沒有

高併發 , php , 緩存 , 緩存設計

收藏 評論

白穹雨 - ThinkPHP6中間件深度解析:原理、流程與實戰指南

一、中間件的核心價值 在Web開發中,中間件是處理HTTP請求/響應的重要機制。ThinkPHP6通過中間件實現了: 解耦處理邏輯:將非業務代碼(如鑑權、日誌)從控制器中剝離 靈活組合:按需為不同路由配置不同處理流程 雙向處理:支持請求到達前和響應返回前的雙向處理 統一管理:集中處理通用邏輯,提升代碼複用性 二、核心原理剖析 1. 管道模式(Pipeline) ThinkPHP6中間件

thinkphp6 , 中間件 , php , php框架

收藏 評論

蘇琢玉 - 從零開始創建屬於自己的 Composer 庫

Composer 是 PHP 領域最流行的依賴管理工具,它使得管理項目依賴變得輕鬆簡單。然而,除了使用現有的包,我們也可以創建和發佈屬於自己的 Composer 包。 在這篇文章中,我將帶你一步一步完成從零開始創建併發佈一個自己的 Composer 包的流程。 創建項目 在你的工作目錄下創建一個新的文件夾作為你的包: mkdir project cd project 初始化 Composer

composer , php

收藏 評論

JKDATAapi - 有哪些印度日本韓國股票行情實時數據的api

有哪些印度日本韓國股票行情實時數據的api? PRDS data 概述:RPDS提供全球範圍的金融數據接口,涵蓋港股、美股及其他主要國際市場,支持股票、歷史數據、財務數據、公司資訊等多維度的市場數據。其數據服務適合高頻量化交易、學術研究及金融數據分析,廣泛應用於機構投資者和開發者。 特色: o高質量數據,準確且及時更新。 o支持Python等多種編程

php , JAVA , Json

收藏 評論

duokeli - 校園圈子系統功能聚焦:每個組合覆蓋核心服務模塊(跑腿 / 社交 / 陪玩 / 生態)/源碼/二開

校園圈子系統的功能進化與生態構建:跑腿、社交、陪玩與源碼二次開發的融合創新 一、核心服務模塊的多元化整合 當前校園圈子系統已從單一功能向“服務+社交+娛樂”生態閉環轉型,其核心模塊設計呈現以下趨勢: 跑腿服務的智能化升級 跑腿功能不再侷限於代取快遞、代買餐食,而是通過智能匹配算法優化訂單分配效率。例如,狐友平台的“跑腿任務”模塊支持實時需求發佈與搶單,結合LBS(基於位置的服務)技術

二次開發 , php , 源碼 , uni-app , 前端

收藏 評論

蘇琢玉 - 如何優雅地處理多種電商優惠規則?我用 PHP 封裝了一個 Promotion Engine

做電商項目時,經常要處理各種各樣的優惠活動:滿減、打折、VIP 專屬優惠、第二件特價、階梯優惠…… 這些單獨實現起來都不復雜,但當你把它們放在一起,就變得混亂起來了。 我自己在工作裏寫過不少類似的邏輯,每次做法差不多:if/else、switch、各種判斷混在一起,過幾個月回頭看代碼,根本不想維護。 於是我乾脆寫了一個小庫,封裝了常見的優惠計算邏輯,讓這件事更清晰,也能隨時在別的項目裏

composer , php

收藏 評論

Leojx - 使用 PHP Sodium 擴展進行 AEGIS 加密

AEGIS 是基於 AES 的經過身份驗證的加密算法系列,比 AES-GCM 和 CHACHA20-POLY1305 等普遍存在的算法要快得多。如果 Sodium 擴展是使用 libsodium 1.0.19 或更高版本編譯的,則 PHP 8.4 中的 Sodium 擴展支持 AEGIS-128L 和 AEGIS-256 加密算法。 AEGIS 系列中的兩種加密算法 AEGIS-128L 和 A

php , 加密 , aes

收藏 評論

鼓獅知識庫 - 用AI開發“支持SVG管理的多用户版原型設計軟件”,分享拆分AI開發任務技巧

本期內容會分享我是如何用AI開發多用户版的原型設計軟件。一開始我先講講這個原型設計軟件有哪些功能,方便你知道這個系統有哪些複雜的邏輯點,後面我會有針對性得講講,如何使用AI來開發這樣的帶有多重交互和複雜邏輯的軟件。只要你掌握了這個技巧,你也能用AI開發可以用於銷售的軟件來賺錢。 這個原型設計軟件https://tools.gushiio.com/proto/ 主要功能分別是畫板管理,顏色管理,圖

php , ai開發 , aigc , 原型設計 , svg

收藏 評論

唯一丶 - 分享一個 php 包,安全的使用內置函數方法:thecodingmachine/safe

前言 在 PHP 的一些歷史遺留設計中,許多函數在出錯或失敗時會返回 false、-1 或 null 等特殊值。如果你沒有對這些返回值進行正確檢查,就可能導致程序行為不符合預期。 舉個例子 $content = file_get_contents('foobar.json'); $foobar = json_decode($content); 在這段代碼中: 如果 foobar.json 不

編碼規範 , php , laravel

收藏 評論

daoheng - 項目實戰用swoole啓websocket服務

項目中用到了websocket長鏈接, 記錄下結合swoole如何實現這個功能 項目中之所以要用websocket主要是想實現用户在回收設備上掃碼投遞瓶子之後,將投遞的瓶子數據推送到用户小程序端進行同步展示, 這樣用户在設備上投遞完瓶子後, 在小程序上就能同時看到相應變化, 給用户一個更好的使用體驗 面向過程風格代碼 //引入redis $redis = new \Redis(); $redis-

swoole , websocket , php

收藏 評論

daoheng - Thinkphp中關聯預載入(Eager Loading)的核心實現邏輯

thinkphp中我們常通過使用關聯預載入(Eager Loading)來解決關聯查詢中"N+1 查詢問題", 通過減少數據庫查詢次數來提升性能. 其底層實現邏輯可以分為以下幾個關鍵步驟: 1.關聯定義的基礎 以下面的代理為例子: //$this-model = new \app\admin\model\device\Relation; $list = $this-model -wher

php , thinkphp

收藏 評論

daoheng - PHP項目中引入並monolog進行日誌管理

在 ThinkPHP(以 5.x 為例)中引入並使用 Monolog(一款功能強大的 PHP 日誌庫),可以實現更靈活的日誌處理(如多渠道輸出、按級別拆分、格式化等)。以下是具體步驟: 一、安裝 Monolog 通過 Composer 安裝 Monolog 依賴: composer require monolog/monolog 二、封裝 Monolog 工具類 為了在 ThinkPHP 中方便

thinkphp5 , monolog , php , 後端

收藏 評論

guanguans - php-cs-fixer 集成 blade-formatter 來格式化 blade 模板

php-cs-fixer 集成 blade-formatter 來格式化 blade 模板 準備工作 安裝 PHP-CS-Fixer 和 blade-formatter composer require --dev friendsofphp/php-cs-fixer npm install -g blade-formatter 創建修復器 BladeFixer.php ?php /** @noi

lint , php , laravel , php-cs-fixer , ci

收藏 評論

Leojx - PHP Composer包的其他安裝方式

Composer包構建文件 { "name": "liujianxin/message-service-packagist", "description": "chang yu jun ge .TECH Message-service", "version": "1.0.6", "type": "library", "license": "MIT",

composer , php , 教程 , composer-php

收藏 評論

daoheng - 使用swoole部署websocket服務端

使用swoole部署websocket服務端 Swoole 支持在同一個 WebSocket 服務中監聽多個端口,併為不同端口配置不同的協議(ws 或 wss)。只需在創建 Swoole\WebSocket\Server 時通過 addListener() 方法添加額外端口,並分別配置 SSL 證書即可。 方式一:直接起兩個服務端口(不推薦) 方式一實現示例代碼: ?php // 創建主服務器(默

swoole , websocket , php

收藏 評論

JonLee - PHP-Casbin:一個讓開發者不再為權限控制 “重複造輪子” 的工具

今天想和大家聊聊這個陪伴我從 “個人側寫” 到 “企業級解決方案” 的開源項目,一個讓 PHP 開發者不用再為權限控制 “重複造輪子” 的工具。 從 2018 年發佈第一個版本,到現在 GitHub 1.3k + Star,PHP-Casbin的成長,其實是無數 PHP 開發者 “權限痛點” 的解決方案集合。 如果你也曾在項目裏寫過if($role == 'admin')的硬編碼,或是為多租户權限

rbac , 權限 , php , 安全 , 接口

收藏 評論

蘇琢玉 - PHP 項目裏,哪些功能讓你一次次「重複造輪子」

寫 PHP 第 7 年了,我發現有些功能簡直像韭菜——項目一換就得重新割一遍。 手機號歸屬地、參數校驗、唯一 ID、地址解析……是不是你也寫過不止一次? 有些功能不難,但就是麻煩: 做個小商城,要寫個 促銷規則引擎 做個 API,就得來一遍 參數驗證器 做用户註冊登錄,要寫個 TOTP 動態口令 做支付結算,要造個 唯一 ID 生成器 這些功能並不是多複雜的“高大上算法”,但就是又常見

composer , php

收藏 評論

蘇琢玉 - 訂單號老是撞車?我寫了個通用 PHP ID 生成器

在日常開發裏,我們經常會遇到這種情況: 需要給訂單生成唯一編號; 想給日誌或者資源加個標識; 或者需要一個不會重複的 ID,用作數據庫主鍵。 一開始,我也用過 time() 拼接隨機數、或者 uniqid()。 這些方案在小項目裏夠用,但一旦放到併發稍微高點的業務裏,就會出現各種問題: ​time() 很容易撞車(同一毫秒可能生成多個); ​uniqid() 看上去獨特,其實

composer , php

收藏 評論

JonLee - PHP-Casbin:現代化 PHP 應用的權限管理引擎

在當今複雜的Web應用中,精細化的權限管理是保障系統安全的關鍵環節。PHP-Casbin 作為Casbin生態的PHP實現,憑藉其靈活的模型支持和強大的擴展能力,已成為PHP開發者實現訪問控制的首選工具。 超越傳統權限模型 PHP-Casbin 基於PERM(Policy/Effect/Request/Matcher)模型,抽象出通用的訪問控制框架。 模型靈活‌:通過配置文件支持自定義訪問控制

權限 , php , 知識 , 安全 , 接口

收藏 評論

TANKING - 開源!2025年最新微信域名攔截檢測接口(2個官方接口)

🔍 WeixinDomainCheck - 微信域名攔截檢測接口 一個用於檢測你的域名是否被微信封禁或攔截的小工具。通過調用微信官方接口,免費、無限次數檢測。 📌 功能簡介 檢測任意域名是否被微信攔截 提供兩種檢測方式(騰訊安全中心 微信公眾號接口) 支持通過 HTTP 接口調用,適合嵌入系統或定期掃描 🚀 如何使用 ✅ 使用示例: 假設你的網站域名是 www.qq.com,你想

微信 , php , 後端

收藏 評論

daoheng - Thinkphp與Hook(鈎子)

在 ThinkPHP 中,Hook(鈎子)是實現插件機制和行為擴展的核心機制,它允許開發者在不修改框架的核心代碼的情況下, 通過監聽特定事件標籤的方式實現在框架或應用的特定執行節點插入自定義邏輯,從而實現了 "面向切面編程"(AOP)的思想。 Hook的基本概念 Hook是一種事件驅動的編程模式,允許在特定的執行點觸發自定義行為。ThinkPHP中的Hook機制基於行為擴展,可以在系統運行過程中動

thinkphp5 , php , hook

收藏 評論

Leojx - 帶有 PHP Curl 擴展的 HTTP/3 請求

HTTP/3 是 HTTP 的第三個主要版本,基於 QUIC。與依賴 TCP 的 HTTP/1.1 和 HTTP/2 不同,HTTP/3 基於名為 QUIC 的多路複用 UDP 協議。HTTP/3 與 TLS 1.3 配合使用,可以顯著提升性能並降低延遲。儘管 HTTP/3 更改了許多傳輸層語義(例如從 TCP 轉換為 UDP),但請求標頭、請求方法、響應和狀態碼的 HTTP 語義仍然保持不變。

http3 , php , HTTP , curl

收藏 評論

蘇琢玉 - 構建一個簡潔優雅的 PHP 參數驗證器 —— php-schema-validator

在日常開發中,參數校驗是繞不過的一道坎。我們常常需要確保用户傳入的數據符合預期格式,比如必填字段、數據類型、最大長度、郵箱格式等等。雖然許多 PHP 框架都內置了驗證器,但在開發輕量服務、非框架項目,或需要在業務中後端進行結構化數據校驗時,我總覺得現有方案不夠靈活、冗餘較多。 於是,我動手寫了一個開箱即用、易擴展、輕量級的參數驗證器:php-schema-validator 為什麼要造這個輪子?

composer , php

收藏 評論