原创 SOLID設計原則解讀

SRP:單一職責原則        任何一個軟件模塊都應該只對某一類行爲者負責 OCP:開閉原則        主要目標時讓系統易於擴展,同時限制其每次被修改所影響的範圍。實現方式就是將系統分爲一系列組件,組件之間按層級關係分割,高階組件

原创 docker 修改容器/鏡像的元數據

docker沒有給出一個方便的方法, https://github.com/gdraheim/docker-copyedit 給了一個辦法,原理如下: 每個image都是有一個manifest.json 文件的,相關配置信息都在這裏了,但

原创 phpstorm xdebug調試記錄

如果想要電話標誌功能有效,得要勾選can accept external connections

原创 NGINX proxy_pass導致高併發/死循環

proxy_set_header Host $host這一行的作用是把原http請求的Header中的Host字段也放到轉發的請求裏。 如果不加這一行的話,nginx轉發的請求header裏就不會有Host字段,而服務器是靠這個Hos

原创 php慢日誌總有+++ dump failed錯誤

表達意思:日誌輸出錯誤 原因猜測:fpm的緩衝區不足導致日誌不能寫完整 php源碼:

原创 THINKPHP6 實現中間件

/** * 執行應用程序 * @param Request $request * @return mixed */ protected function runWithRequest(Request $request) {

原创 TP6 依賴注入

public function invokeClass(string $class, array $vars = []) { try {   //根據反射機制獲取 類的內部信息(多少個私有屬性,多少個共有屬性等等)

原创 rabbitmq 消息對象的結構

rabbitmq中有三種對象分別是: 隊列、交換器,消息。而他們的關係如下圖: ·使用 co口tent -t ype 屬性讓消費者知道如何解釋消息、體 。 ·使用 content - encoding 屬性來指示消息體使用某種特殊的方

原创 MySQL事務介紹及原理

1 爲什麼要事務   事務是一組不可被分割執行的SQL語句集合,如果有必要,可以撤銷。銀行轉賬是經典的解釋事務的例子。用戶A給用戶B轉賬5000元主要步驟可以概括爲如下兩步。    第一,賬戶A賬戶減去5000元;    第

原创 rabbit隊列性質

性質 隊列具有定義其行爲的屬性。有一組強制屬性和一個可選屬性的映射: 名稱 持久(隊列將在代理重新啓動後倖存) 獨佔(僅由一個連接使用,並且該連接關閉時隊列將被刪除) 自動刪除(至少有一個使用方的隊列在最後一個使用方退訂時被刪除) 參數(

原创 php 僅僅讀取類中的共有屬性

<?phpclass Foo {    public    $foo  = 1;    protected $bar  = 2;    private   $baz  = 3;}$foo = new Foo();$reflect = ne

原创 yii2 自定義驗證規則

廢話不多說直接上代碼class AbcModel extends Model{    public $aaa;    public $bbb;    public $bbb;    /**     * 驗證提交的form表單     * 

原创 php AES/ECB/PKCS5_padding算法(約定的key 是由0x位數組成的)

class HtSecurity extends Object{    /**     * 生成短連接     * @param $OtaUrl st

原创 php 垃圾回收機制

可能根緩衝區(possible roots):      存放垃圾回收期間遍歷的變量 添加到跟緩衝區的時機:     當ZEND_UNSET_VAR發生或zend_assign_to_variable僅在可能產生垃圾節點時調用時,可以將節