因為Laravel 4.2預設沒有安裝PHPUnit與Mockery,所以想自己用composer require安裝,但沒想到卻安裝到正在開發中的PHPUnit 6.0。重點是PHPUnit 6.0只支援PHP 7,因為Homestead 0.2.7裝的是PHP 5.6.10,而導致PHPUnit安裝失敗,而這一切的原因竟然因為是…
點燈坊
假如你對 PHP 的印象還停留在 PHP 與 HTML 夾雜、沒有 OOP、沒有 package、沒有 MVC、沒有 framework、沒有測試的寫法,那你應該來學學 Laravel,它是一個使用 PHP 最新 OOP 語法、以 Composer 管理套件、MVC 架構、融合 RoR 與 ASP.NET MVC 風格、支援單元測試的 framework,可以說與傳統 PHP 的寫法完全不同,是一個更優雅且生產力更高的全新 PHP。
Chrome/FireFox都會自帶一些debug工具可以幫助我們debug前端資訊,如CSS、JavaScript…等,但若要debug後端的Laravel資訊呢?如有了ORM之後雖然方便,但我們可能對其產生的SQL有所疑慮,想深入了解其所產生的SQL是否符合我們的需求,這些在Barry vd. Heuvel的Laravel Debugbar都可以滿足我們。
PHP 的 closure 除了 __invoke() 外,事實上還有一個 bindTo(),在Laravel台灣的Modern PHP讀書會 Chap.2 Feature時,曾經討論過closure,但總抓不到感覺,本文以JavaScript的觀點重新理解PHP的bindTo(),並比較兩種語言的用法與設計理念,讓bindTo()不再遙不可及,可以真正應用在我們的專案裡。
相較於其他Web後端技術,PHP的一大特色是有眾多framework支援,有macro framework如Symfony與Laravel,也有micro framework如Silex與Slim,更有較早期的CodeIgniter。
PHP的各framework蓬勃發展是一種良性競爭,但也導致各framework一直在重新製造輪子。若能讓PHP的framework各展所長,彼此互相合作,就必須大家遵守一個共同的標準,這就是PHP-FIG的PSR。
理論上PHP與C#完全沒有關係,因為兩者都是後端開發語言,但因為Laravel台灣社團要一起參加陳仕傑老師的自動測試與TDD實務開發(使用C#)課程,而上課用的是C#,為了讓原本寫PHP的社友能快速看懂C#範例,進而將TDD用在PHP上,因此有了本文介紹。
本文僅就物件導向與常用的部分快速導覽,並不包含PHP與C#語言部分的全部,目的只讓PHP開發者能快速看懂C#學習TDD。
在 PHP 4 最早稱 callback,PHP 5.3 引入 closure 與 anonymous function ,PHP 5.4 則新增 callable type hint。
所以在 PHP 中,callback、closure、anonymous function,與 callable,事實上指的是同一件事情,但因為底層用的都是 Closure 物件,通常統稱為 closure。
在物件導向時代,我們會使用foreach的方式遍訪每一個物件,傳統上我們會採用Iterator Pattern,去實作Iterator interface,簡單地說,generator就是更簡單的iterator。
Generator讓你不須實踐Iterator interface,也不須將資料放在記憶體中,直到foreach要取值時,才及時產生資料使用yield傳回。
OS X內建的Terminal雖然可用,但對於整天以指令為生的程式設計師來說,功能實在太過陽春。
iTerm2是OS X上加強版的Terminal,搭配on-my-zsh shell與Powerline主題之後,將可打造一個全功能的Terminal,支援多tab、ls檔案目錄顏色、git狀態、Laravel artisan指令補全…等。




