原创 209 php擴展填坑1

背景:最近一遍看csapp 一邊準備開發一個php擴展 一、文檔 暫時遵照這個文檔做個demo https://www.hongweipeng.com/index.php/archives/997/ 二、問題 1../ext_

原创 210 如何讓業務邏輯寫起來更好看

最近總感覺自己寫的代碼很醜,設計模式很難有用武之地,今天看了 https://www.zhihu.com/question/25339235/answer/90183763?group_id=69243219466834329

原创 205 laravel 中間件實現

laravel實現了管道機制, 即上一個中間件的輸出是下一個中間件的輸入,是對裝飾器模式的成功應用。 閉包 有必要講下閉包 1.閉包做參數傳遞 先來看一段代碼 class A { function go($next){

原创 203 git hook 一次自動部署實踐

最近申請了一個阿里雲主機,準備搞個人項目,我希望最簡化項目發佈流程,用jenkins還是覺得不夠簡單,所以決定用git hooks 假設本地倉庫叫做home,遠程庫叫做base(只保存版本信息、不保存代碼),遠程發佈的倉庫叫做

原创 193 nginx 配置location

nginx 配置 background 今天在本地調試程序,需要將 localhost/juhe-cn/index.php 映射到 local.juhe.cn,記錄下操作步驟 新建一個nginx 配置文件 因爲我是在windo

原创 192 IOC DI 通俗易懂的ioc

原文鏈接:http://www.yuansir-web.com/?p=1012&preview=true 看Laravel的IoC容器文檔只是介紹實例,但是沒有說原理,之前用MVC框架都沒有在意這個概念,無意中在phalcon的文

原创 194 laravel 源碼分析-1

Illuminate\Foundation\Application 從make方法說起 一、make() $kernel = $app->make(Illuminate\Contracts\Http\Kernel::clas

原创 204 IOC 仿照laravel實現一個最簡容器 2

仿照laravel實現一個最簡容器 2 一、閉包實現bind 由此我們實現了容器的核心功能 <?php class Ioc{ protected $bindings = []; function bind($a

原创 195 laravel 源碼分析-2

Illuminate\Foundation\Application 寫194-源碼分析的時候感覺有點費勁,想了想構造方法沒看就直接看make()了,這節把構造方法補上 這次從_construct()說起 1. registe

原创 197 laravel 源碼分析-4

Illuminate\Foundation\Http\Kernel handle() try { $request->enableHttpMethodParameterOverride(); $response =

原创 196 laravel 源碼解析-3

Illuminate\Foundation\Application 我發現在看第一節所講的make方法時候有點迷糊,可能是看代碼的順序有點問題.所以這次我們先回到 public/index.php public/index.php

原创 211 讀書 《重構 改善既有代碼的設計》

如果程序員日常生活中的內心掙扎可以排序,重構一定是排在前三位的.要麼是重構別人的,要麼重構自己的. 一直以來我以爲自己掌握了面向對象編程,直到我看到這本書,原來我只是把代碼寫的看起來像是OOP,只是把操作一類實體的函數丟到

原创 201 laravel 未解之謎

laravel是個思想相對先進的框架,其中很多實現細節值得深究,在此記錄laravel使用中的疑惑。 未解之謎 中間件在請求流程中如何起作用 類似Auth::logout();這樣可以直接使用的facade如何實現 seed

原创 200 git windows大小寫不敏感導致的autoload失敗

windows大小寫不敏感導致的autoload失敗 最近在寫一個接口的自動化框架,在本地好好的(windows),一放到服務端(centos)就各種報class 不存在, 而且本地小寫的文件夾,如 “serviceFacto

原创 207 ubuntu 安裝軟件Could not get lock /var/lib/dpkg/lock

問題描述 今天通過終端安裝git-core 時候 報錯 E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)