原创 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)