原创 PHP開發要點與技巧總結(一)

Opcache:Opcache 來源於Zend Optimizer+改名,主要作用是通過將 PHP 腳本預編譯的字節碼存儲到共享內存中來提升 PHP 的性能, 存儲預編譯字節碼的好處就是省去了每次加載和解析 PHP 腳本的開銷,但是對於I

原创 排序算法系列

  基於比較排序算法時間下限爲O(nlogn),計數排序時間複雜度O(n)。   在待排序列基本有序的情況下,直接插入排序是最佳排序算法;快速排序的效率一般情況下都比較高,但在待排序列基本有序的情況下,時間複雜度接近 O(n2);歸併排序

原创 OAuth 2.0: Bearer Token Usage

Bearer Token (RFC 6750) 用於OAuth 2.0授權訪問資源,任何Bearer持有者都可以無差別地用它來訪問相關的資源,而無需證明持有加密key。一個Bearer代表授權範圍、有效期

原创 JavaScript 開發總結(一)

數據類型:JavaScript定義的數據類型有字符串、數字、布爾、數組、對象、Null、Undefined,但typeof有區分可判別的數據分類是number、string、boolean、object(null / array)、fun

原创 Nginx上部署HTTPS + HTTP2

Nginx上部署HTTPS依賴OpenSSL庫和包含文件,即須先安裝好libssl-dev(或者OpenSSL),且ln -s /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/,然後在編譯配置N

原创 PHP中的數據結構:DS擴展

在這些數據結構類型(Class)對象中,除了Pair、PriorityQueue對象之外,其餘各種類型(Class)對象都支持數組語法。PHP7以上才能安裝和使用該數據結構擴展,安裝比較簡單: 1. 運行命令 pecl install

原创 Standard PHP Library(SPL)中的數據結構

SPL提供了一組標準數據結構。 SplDoublyLinkedList Class:雙向鏈表(DLL)是在兩個方向上相互鏈接的節點列表。當底層結構是dll時,迭代器的操作、對兩端的訪問、節點的添加或刪除均是O(1),爲堆棧和隊列提供了良好

原创 關於Lumen / Laravel .env 文件中的環境變量是如何生效的

.env 文件可自定義其他任何有效的環境變量,並可通過  調用 env() 或 $_SERVER 或 $_ENV  來獲取該變量。那麼env()是如何加載到這些變量的呢?在Lumen的vendor/lara

原创 PHP垃圾回收機制

  PHP引用計數內存機制,無法處理循環引用內存泄漏,故通過回收週期(Collecting Cycles)來清理循環引用變量達到節省內存佔用和防止內存泄露的目的。回收週期只是PHP所涉及的垃圾回收處理方式的一部分,下文也主要講述回收週期

原创 關於Javascript循環體變量聲明與初始化的效率問題

針對循環體變量聲明與初始化的效率問題,將執行的簡單測試代碼如下: function test(n) { console.time('Internally declared'); for (let i = 0; i < n

原创 HTTP認證模式:Basic and Digest Access Authentication

一. Basic 認證   客戶端以“ : ”連接用戶名和密碼後,再經BASE64編碼( Base64 Content-Transfer-Encoding )通過Authorization請求頭髮送該密文至服務端進行驗證,每次請求都需要重

原创 求最短路徑算法系列

一 . 動態規劃算法   適用於求解多階段決策過程中的最優化問題,必須滿足最優化原理、無後效性和重疊性。使用動態規劃只需要多項式時間複雜度,因此它比回溯法、暴力法等要快許多。 劃分階段:   求解最短路徑:      過程指標函數基本方程

原创 再讀設計模式七原則

GOF《設計模式》一書中提出了七條設計原則,七原則是一種理想狀態的表達,但實際項目開發中可能會不得不打破這些原則的限制。1. 單一職責原則(Single Responsibility Principle, SRP): There shou