念念不忘,必有迴響。有一口氣,點一盞燈,有燈就有人。

注意你的composer.json的minimum-stability設定 !!

注意你的composer.json的minimum-stability設定 !!

因為Laravel 4.2預設沒有安裝PHPUnitMockery,所以想自己用composer require安裝,但沒想到卻安裝到正在開發中的PHPUnit 6.0。重點是PHPUnit 6.0只支援PHP 7,因為Homestead 0.2.7裝的是PHP 5.6.10,而導致PHPUnit安裝失敗,而這一切的原因竟然因為是…

給 Laravel 初學者的幾點建議

給 Laravel 初學者的幾點建議

假如你對 PHP 的印象還停留在 PHP 與 HTML 夾雜、沒有 OOP、沒有 package、沒有 MVC、沒有 framework、沒有測試的寫法,那你應該來學學 Laravel,它是一個使用 PHP 最新 OOP 語法、以 Composer 管理套件、MVC 架構、融合 RoR 與 ASP.NET MVC 風格、支援單元測試的 framework,可以說與傳統 PHP 的寫法完全不同,是一個更優雅且生產力更高的全新 PHP。

如何使用 Laravel Debugbar ?

如何使用 Laravel Debugbar ?

Chrome/FireFox都會自帶一些debug工具可以幫助我們debug前端資訊,如CSS、JavaScript…等,但若要debug後端的Laravel資訊呢?如有了ORM之後雖然方便,但我們可能對其產生的SQL有所疑慮,想深入了解其所產生的SQL是否符合我們的需求,這些在Barry vd. HeuvelLaravel Debugbar都可以滿足我們。

深入探討 bindTo()

深入探討 bindTo()

PHP 的 closure 除了 __invoke() 外,事實上還有一個 bindTo(),在Laravel台灣Modern PHP讀書會 Chap.2 Feature時,曾經討論過closure,但總抓不到感覺,本文以JavaScript的觀點重新理解PHP的bindTo(),並比較兩種語言的用法與設計理念,讓bindTo()不再遙不可及,可以真正應用在我們的專案裡。

如何在 Homestead 自動執行測試 ?

如何在 Homestead 自動執行測試 ?

大澤木小鐵在PHP社群掀起一陣測試重構風潮後,已經有越來越多人開始在PHP寫測試。以Laravel而言,我們會在本機寫code,環境則搭配Homestead,由於TDD需要頻繁的測試與重構,若我們能在每次存檔的同時,PHPUnit就自動幫我們在背景執行測試,並將結果直接顯示在本機上,我們就能立即得知測試成功或失敗,如此將大幅提高工作效率。

PSR-2 PHP Coding Style

PSR-2 PHP Coding Style

相較於其他Web後端技術,PHP的一大特色是有眾多framework支援,有macro framework如Symfony與Laravel,也有micro framework如Silex與Slim,更有較早期的CodeIgniter。

PHP的各framework蓬勃發展是一種良性競爭,但也導致各framework一直在重新製造輪子。若能讓PHP的framework各展所長,彼此互相合作,就必須大家遵守一個共同的標準,這就是PHP-FIGPSR

PHP與C#語法快速導覽

PHP與C#語法快速導覽

理論上PHP與C#完全沒有關係,因為兩者都是後端開發語言,但因為Laravel台灣社團要一起參加陳仕傑老師的自動測試與TDD實務開發(使用C#)課程,而上課用的是C#,為了讓原本寫PHP的社友能快速看懂C#範例,進而將TDD用在PHP上,因此有了本文介紹。

本文僅就物件導向與常用的部分快速導覽,並不包含PHP與C#語言部分的全部,目的只讓PHP開發者能快速看懂C#學習TDD。

如何使用 Closure?

如何使用 Closure?

在 PHP 4 最早稱 callback,PHP 5.3 引入 closureanonymous function ,PHP 5.4 則新增 callable type hint。

所以在 PHP 中,callbackclosureanonymous function,與 callable,事實上指的是同一件事情,但因為底層用的都是 Closure 物件,通常統稱為 closure。

如何使用Generator?

如何使用Generator?

在物件導向時代,我們會使用foreach的方式遍訪每一個物件,傳統上我們會採用Iterator Pattern,去實作Iterator interface,簡單地說,generator就是更簡單的iterator。

Generator讓你不須實踐Iterator interface,也不須將資料放在記憶體中,直到foreach要取值時,才及時產生資料使用yield傳回。

如何設定iTerm2環境?

如何設定iTerm2環境?

OS X內建的Terminal雖然可用,但對於整天以指令為生的程式設計師來說,功能實在太過陽春。

iTerm2是OS X上加強版的Terminal,搭配on-my-zsh shell與Powerline主題之後,將可打造一個全功能的Terminal,支援多tab、ls檔案目錄顏色、git狀態、Laravel artisan指令補全…等。