發表文章

目前顯示的是 七月, 2018的文章

如何正確在 Laravel 撰寫 PHPUnit 單元測試

本篇文章內容主要參考自 LaracastsLaravel 5.4 From Scratch: Testing 101,並且替換掉舊有寫法,改寫成新版(Laravel 5.6)的版本。我們會撰寫一個簡單的 Unit Test 測試,可以在獨立的測試資料庫中測試 model 操作 CRUD,同時不會因為測試 Create 操作而造成資料庫無限肥大下去。建立測試案例先建立一個測試案例,本篇以單元測試為例建立一個 PostTest.php。# Create a test in the Unit directory... php artisan make:test PostTest --unit 規劃測試內容例如我們想要測試以下 Post model 的 method 是否正常:# app/Post.phppublicstaticfunctionarchives(){returnstatic::selectRaw('year(created_at) year, monthname(created_at) month, count(*) published')->groupBy('year','month')->orderByRaw('min(created_at) desc')->get()->toArray();}我們可以先依據 Given-When-Then 格式來撰寫註解,規劃好我們要寫的測試內容。關於 Given-When-Then 可以參考本篇文末 延伸閱讀 段落的整理。# tests/Unit/PostTest.phppublicfunctiontestArchives(){// Given I have two records in the database that art posts,// and each one is posted a month apart.// When I fetch the archives.// Then the response should be in the proper format.}建立測試資料在這裡,我們需要兩筆資料來測試。這時我們可以使用 Model Factories 來產生我們需要的測試資料到資料庫中。關於 Mod…
由於 Google+ 留言系統近期不會正常推送通知,請改用下方 DISQUS 留言,謝謝!

PHPBrew:編譯 PHP 的各種踩雷紀錄

PHPBrew 是由 C9S 大神產出來的神作,一直以來都用它維護伺服器上的 PHP 版本,但時常會有一些小問題要解決。這次剛好要裝到新機器上,就順便記錄一下遇到的一些狀況。系統環境新開的 VPS 主機,作業系統為 CentOS 7.5,已經用 yum update 更新到最新環境,有啟用 epel-release repository。Requirement先安裝官方 Wiki 指定的基本套件,使用的是以下段落:
https://github.com/phpbrew/phpbrew/wiki/Requirement#fedoracentos-requirements這頁面的另一個段落(CentOS Requirement)親身實驗確定已失效,repoforge.org 已經掛很久啦!!yum installmake automake gcc gcc-c++ kernel-devel yum install php php-devel php-pear bzip2-devel yum-utils bison re2c libmcrypt-devel libpqxx-devel libxslt-devel pcre-devel libcurl-devel libgsasl-devel openldap-devel yum-builddep php yum install httpd-devel 以及我自己需要裝的相依,注意 readline 是有包含在 +default 的,如果你也是指定 +default ,記得安裝。yum install readline-devel ImageMagick-devel libmemcached-devel Installing PHPBrew into System wide Environment參考資料:https://github.com/phpbrew/phpbrew/wiki/Installing-PHPBrew-into-System-wide-Environment如果想要讓編譯的 PHP 可以給所有使用者使用,就使用 root 來編譯吧。sudo -i # 切換成 root 身份 phpbrew init 增加環境變數到 PHPBrew 的 bashrcvim ~/.phpbrew/bashrc 增加 PHPB…