原创 【php 擴展開發】擴展生成器

什麼是擴展生成器 每個php擴展都包含一些非常公共的並且非常單調的結構和文件,這些文件對所有擴展來說都是通用的。當開始一個新擴展開發的時候,如果這些公共的結構已經存在,而不需要費力去複製每個文件的內容, 我們只需考慮填充功能代碼那心情一定會

原创 【PHP 擴展開發】Hello World

前面兩篇介紹了 Zephir ,從此可以開發自己的擴展了,可畢竟是通過轉換而來,雖然很方便,可對於擴展還是一知半解,也無法判斷其好壞,所以還是要了解下用原生的方法是怎麼開發一個 PHP 擴展的。 本文以 php-7.2.15 爲例 創建擴展

原创 【PHP 擴展開發】Zephir 基礎篇

上一篇 《Zephir 簡介》 簡單介紹了環境搭建,編寫了一個的簡單示例。這一篇繼續介紹 Zephir 基礎。 基本語法Zephir 中,每個文件都必須有且只有一個類,每個類都必須有一個命名空間,目錄結構必須與所使用的類和命名空間的名稱相匹

原创 Zephir 簡介

什麼是 Zephir Zephir 是一種中間語言,以接近 PHP 的語法來編寫代碼,然後轉換成 PHP 擴展。 安裝 要構建PHP擴展並使用Zephir,您需要滿足以下要求 (以centos7 + php7.2 爲例) 編譯環境 官方示例

原创 Github Pages如何被百度收錄

Github Pages 如何被百度收錄 答案是無法收錄 創建 Github Page 一個多月了,發現百度索引量依然爲0。利用百度自帶的抓取診斷工具診斷髮現,所有抓取記錄都是失敗,狀態碼爲403。 判斷爲 Github 屏蔽了百度蜘蛛。

原创 【Github Pages】徒手實現分頁

Github Pages Github Pages 是 Github 免費提供的靜態網站生成器,你可以利用其創建個人、企業、項目網站。其提供靜態頁面託管服務和一個二級域名,也可以綁定獨立域名。 可以很輕易的找到其介紹和如何構建自己的 Git

原创 PHP實現一個輕量級容器

什麼是容器 在開發過程中,經常會用到的一個概念就是依賴注入。我們藉助依懶注入來解耦代碼,選擇性的按需加載服務,而這些通常都是藉助容器來實現。 容器實現對對象的統一管理,並且確保對象實例的唯一性 容器可以很輕易的找到有很多實現示例,如 PHP

原创 【php實現數據結構】鏈式隊列

什麼是鏈式隊列 隊列是一種“先進先出”的存儲結構,是一種特殊的線性表,於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。通常隊列可以分爲順序隊列和鏈式隊列兩種實現,順序隊列顧名思義就是採用順序存儲,如以數

原创 【php實現數據結構】單向鏈表

什麼是單向鏈表 鏈表是以鏈式存儲數據的結構,其不需要連續的存儲空間,鏈表中的數據以節點來表示,每個節點由元素和指針組成。 單向鏈表(也叫單鏈表)是鏈表中最簡單的一種形式,每個節點只包含一個元素和一個指針。它有一個表頭,並且除了最後一個節點外

原创 【PHP高級特性】ArrayAccess(數組式訪問)接口

php提供了6個常用的預定義接口,實現某些特定的能力。其中最最常用的就是 ArrayAccess 了,像 Laravel 這種流行的框架都用到了它。 ArrayAccess 是啥 如官方文檔所述,它“提供像訪問數組一樣訪問對象的能力的接口”

原创 通過唯一ID實現簡單的日誌跟蹤實現

在實際項目中,通知我們需要記錄一些日誌,方便問題覈查。但是日誌多了就很容易混亂,請求,響應,執行中的日誌無法對應,這時就需要爲請求進行標記唯一ID來進行跟蹤。 /** * 記錄請求日誌 * * Class ApiLog * @pac