ひとりまとめ

もろもろのメモ

MAMPでphp.iniの設定が効かない!?

時々MAMPphp.iniの設定をいじろうとして、毎回あれ??と思ってる気がするので、忘れないようにメモ。

MAMPphp.iniは、実は2箇所にある。

/Applications/MAMP/conf/php.x.x/php.ini << 1

/Applications/MAMP/bin/php/php.x.x/conf/php.ini << 2

php.x.xは任意のバージョン)

しかし、実際に実行されるときに読み込まれるのは、2つ目の方だ。

 

ついつい1の方が先に目が入ってしまうので「おかしいなー」となるのだけど、ここは落ち着いて。

 

はじめてのフレームワークとしてのFuelPHP 改訂版

はじめてのフレームワークとしてのFuelPHP 改訂版

 

 

ウチの猫が長いこと遊んでるおもちゃ・あんまり遊ばなかったおもちゃ

自分のことを振り返ったので、猫についても振り返ってみようと思います。

猫と一緒に暮らすまでは、単に「猫じゃらしみたいなのがいいんだろうな」と思っていました。実際に店頭でもまずそういうのが目につく場所にあります。

ところが、うちの猫はあんまり食いつかない。

どういうのが好きなのか・食いつきが良いのか。どうやら猫の性格によるようです。まあ、当たり前ですよね。人間も同様ですし。

また、同じおもちゃでも、遊び方によって目の輝きかたが違います。

 

そこで、どんなおもちゃをどうやって遊んでるのかを振り返ってみようと思います。

 

猫の性格

うちの猫ですが、雑種のオスで今3歳です。どっちかというと活発。特定の時間帯に限らず、よく走り回ってるように思います。

また、全く知らない人が家に来た時などは、最初は物陰に隠れて覗いてるものの、すぐに様子を見に近寄ってくるようなタイプです。

そして無類の紐好き。家中の見えてるコードは噛みまくります。

 

食いついたおもちゃ

振動を与えると、音がする小さなぬいぐるみです。↑はウサギですが、動物の形に行くつかバリエーションがあります。形は違っても、どれも同じ「ピーピー」という音がします。棉の中にプラスチックのケースに収まって小さなスピーカーとボタン電池が入っています。

これを遠くに投げると走って追いかけてくわえて帰ってくる みたいなことをしてます。投げた先が視界に入ってない方が良いようです。

盛り上がりすぎて強烈に噛んだりすることがありますが、電池まで飛び出て来たことはないです。ただ、縫製が頑丈ではないので、縫い目が解けてきやすいのが難点。

臆病気味の子の場合、この音を怖がって近づかないこともあるようです。

 

猫壱 キャット トンネル カラクサ 緑

猫壱 キャット トンネル カラクサ 緑

 

シャカシャカと擦れる音がしやすいトンネルです。使わないときは畳んでしまうことができます。

彼が覗き込んでるときに、反対側から覗き込むと黒目が大きくなって飛び込んで来ます。しばらく走り抜けた後は、中に入ってゴロゴロ過ごしてたりもします。

音を立てやすい素材で破って遊んだりすることも目的になってるようですが、 ウチの猫は破れたところを食べようとするため、目は離しにくいです。

 

 

 棒の先に、紐で繋がった硬めのビニールの羽がついたおもちゃです。

これをゆらゆらさせながら部屋の中を歩き回ると、後ろからついて来ます。台の上や物陰に隠しながら運動させてます。

ゆっくりな動きに飽きて来たら、ビュンビュン振り回してやると大ジャンプで飛びかかっています。

持ち手の棒がプラスティックで、キャッチされたときにタイミングがあってしまうと折れ曲がったりします。羽部分にはふわふわした飾りもついてるのですが、新品で遊び始めても数分で千切れてしまうのが弱点。

 

これは「音が出るおもちゃ」と「紐の先に飾りがついたおもちゃ」の合わせ技で、しかも紐の部分がゴムという、ウチで最強のおもちゃです。

振ってる時も音がするし、キャッチすると音がする。しかもゴムなので予想しにくいし、瞬発的な動きも混じります。

素晴らしい!

 

 

 

食いつかなかったおもちゃ

ペッツルート (Petz Route) カシャカシャじゃれる 小鳥
 

 棒の先に硬めのビニールや羽がついたおもちゃです。

上で紹介したのと似てるのですが、違いは棒と羽が直接ひっついていること。

どうしても動きの範囲が狭まるのと、予想外の動きがしにくいために、最初こそ手を伸ばそうとしますが、そのうち座って見つめ始めました。

ウチでは、このタイプの棒直結系はいずれも負けでした。

 

電池仕掛けで棒の先に飾りがついたおもちゃが、不規則に回転するおもちゃです。

最初こそこの写真のように飛びついたのですが、不規則とはいえ動く位置が円周上なので、そのうち少し離れた場所でゴロンと横になり眺めていました。

体が小さかったりすると、相対的に動きが大きくなって遊びやすいのかもしれませんが、うちのはかなり大柄なためか全くでした。

 

 

猫壱 猫の巣 無地ベッド

猫壱 猫の巣 無地ベッド

 

 クッション生地の寝床です。中に入って遊んだり寝たりできればいいなと思って買いました。

しかし、これは球状というか平らな部分がないために、不安定なところが嫌いなうちの猫は全く入ろうとしませんでした。もっとも、体が大きくて丸まらないと収まらないという状態でもありましたが。

 

 

こうしてみてみると、食いつきがいいのは動きが大きく遊べるもののようです。逆に食いつかないのは、動きの範囲が狭いものと言えそうです。

 

どんどん食いつくおもちゃの登場を求ム!!

 

あまり理解されにくいけど、個人的に手放せないアプリ

先日の記事で1passwordについて書いている時、どんなに便利さを話しても周りの人になかなか伝わらないものってあるよな・・・と悔しくなったついでに、そういうものばかり紹介してみることにします。ユーティリティ系です。

 

 Numi

計算結果を変数に入れて使いまわせるメモ帳です。

こういうと「計算機でメモリーってあるよ。それ使ったら?」などと言われます。

Numi 2

Numi 2

  • Dmitry NIKOLAEV
  • 仕事効率化
  • 無料

a=100000/40

みたいなのを書いておくと、以降の行では変数aを使って計算ができます。

例えばこれに時給など入れておいて、費用を聞いた時に「ってことはXX時間分の工数に相当するのか・・・安すぎ!」みたいに利用してます。

他にも、

$148 in yen

というふうに書くと、ドルを円に換算してくれたりします。

海外サイトで値段を見る時に便利!

 

Beta版ですが、より新しいバージョンもあります。

numi.io

 

Revisions

 Dropboxで更新されたファイルを時系列で一覧してくれます。

こういうと「標準でもできるし、そんなにいちいち見ないでしょ」と言われます。

Revisions for Dropbox

Revisions for Dropbox

  • Bayesbits
  • 仕事効率化
  • 無料

もちろん標準でも更新されたファイルがあれば通知センターに出ます。

ですが、このRevisionsは、その更新履歴数も多い上に、どのディレクトリのファイルなのかとか、誰が更新したのかも表示されます。さらに、ここから直接ファイルを開いたり、任意のバージョンに戻したりなどいろいろできます。

チームでDropboxを共有していた時、アップされたデータなどを把握しやすかったです。

 

Near Lock

iPhoneを持ってMacに近づくと、自動的にMacをロック・ロック解除するアプリです。

こういうと「へー、面倒くさがりだね」と言われます。 

Near Lock - 自動でMacをロック&解除

Near Lock - 自動でMacをロック&解除

  • Filip Duvnjak
  • ユーティリティ
  • 無料

 今はAppleWatchでも可能なようですが、これはiPhoneで利用できます。

これを自宅のiMac相手にも使ってるのですが、iPhoneを持って机を離れると自動的にスリープされ、近づくと解除されるので、とっても省エネ(な気分!)。

さらに指紋認証iPhoneでこれを使うと、Macでパスワードを要求された時にiPhone指紋認証でパスワードを入れられる!なんかすごい!

ちなみに複数台のMacにも対応しており、反応する距離も自分で設定できます。

 

 

ClipMenu

クリップボードを10個まで拡張し、任意のを呼び出せるアプリです。

こういうと「そんなに覚えとく必要ある?それならメモ帳に貼ればいいじゃん」と言われます。

ClipMenu.com: クリップボード管理ソフト - ClipMenu.com

まずクリップボードが複数覚えてられると、何が良いのか?

例えばIDとPASSWORD的なものを入れる時、あっちとこっちを行ったり来たりしなくておも、書いてあるところで続けて⌘C、⌘Cとやれば、入力欄でポンポンと入れられるわけです。

(もっとも、1passwordがあればパスワード入力が楽になるのですが、これはあくまで例としてってことで。)

さらにこれは、スクリプトが使えます。クリップボードに入った数字を全部半角にしちゃうとか、改行の先頭に「・」を入れるとか、そういうのができます。

そのスクリプトは、自分でJavaScriptで作って利用することができます。

後継(?)アプリにClipyというのがあって期待しているのですが、現時点ではスクリプトが使えないようなので。

clipy-app.com

 

Shazam

 流れてくる音楽の曲名を解析し、通知してくれるアプリです。

こういうと「そんなに知りたい曲なんてないし。知りたかったら、iPhoneでもそういうのあったよね?」と言われます。

Shazam

Shazam

  • Shazam Entertainment Ltd.
  • ミュージック
  • 無料

 これは、常駐して周囲で流れてる音楽の曲名を教えてくれます。この常駐っていうのがミソで、テレビやラジオの会話の後ろでうっすらかかってるBGMも、片っ端からきちんと解析してくれるんです。「よく聞くこの曲は、実はこの曲だったんだ!」という発見があります。

解析された曲名は履歴として保持されて、そこからYouTubeiTunesのサイトへ飛び、購入することもできます。音楽との出会いの場を増やしてくれるわけです。

 

 

常駐好きな僕はそんなこんなでメニューバーが大変なことになってますが、何か気になるものに出会えれば幸いです。

WordPress4.7に更新するとFatal errorが出るのはopcacheが原因なことがある

WordPress4.6.1で運用中だったサイトを4.7に更新したところ、次のようなメッセージが出ました。

Fatal error: Uncaught Error: Call to undefined function get_user_locale() in /XXXXXX/wp-admin/about.php:22 Stack trace: #0 {main} thrown in /XXXXXX/wp-admin/about.php on line 22

おおっと。

 

同様な症状の人を探してみると、ここにたどり着きました。

Topic: [Resolved] Call to undefined function get_user_locale « WordPress.org Forums

どうも「opcacheを無効にすると問題なくアップデートするよ」とのこと。

 

opcacheはキャッシュの1種。php.ini で設定できるようですが、僕の場合はMAMPで試していた時にこの現象に出くわしたので、MAMPの設定画面から変更しました。

f:id:g2_girichan:20170105190117p:plain

この「キャッシュ」のところを「オフ」にして、再びWordPressの4.7に更新すると、無事に更新できました。更新後に再びopcachewを使うように戻しても、大丈夫そうでした。

 

ちなみに僕の場合は、エラーが出た時にブラウザをリロードしたら、以下のような画面が出ました。

f:id:g2_girichan:20170105190433p:plain

ここで「WordPressデータベースを更新」ボタンを押すと更新が終わり、かつ正常に表示されました。しかし先ほどのフォーラムなどを見ていくと、全く回復しない場合もあるようです。

 

発生しない環境と発生する環境があったのですが、こんなところに原因があったとは。

僕がMacで長いこと使い続けてるアプリ

先日続いてる習慣について考えてみたので、今度はMacを使ってる自分が結構ながいこと使い続けてるアプリについても思い返してみようと思います。

 

Tree

アウトラインエディターです。

Tree 2

Tree 2

  • Top of Tree
  • 仕事効率化
  • ¥1,400

 有名どころだとOmniOutlinerもあり以前はそちらも使っていましたが、2こほど前のバージョンアップ時にTreeに乗り換えしました。

最初は値段で飛びついたのですけども、横に横に伸びていくスタイルが使ってみると意外にも見渡しやすくて、すっかりこちらです。

打ち合わせの議事録やアイデアのメモなんかに使っています。

 

打ち合わせの時って、結構話題があっちこっちに飛びますよね。Treeを使った議事録では、話題ごとにまとめておき、出てきた話題を右へ右へ書き連ねていってます。散々枝葉が伸びた後で結論が出たら、そのテキストに色をつけるようにしています。すると、ほったらかしの話題が一目でわかるので、会議がそのまま終わってしまいそうなとき「あれについてはどうしますか?」なんてことが言えて良さげです。

また、宿題になったことも色をつけておくと、取りこぼしがなくなって便利です。

 

1Password

 パスワードを一括管理するものです。

1Password

1Password

  • AgileBits Inc.
  • 仕事効率化
  • ¥7,800

 これは正直、自分で使ってみるまで何が便利なのかピンときてなかったですし、今も人から誤解されることが多いアプリのように思います。

「パスワードを管理する」というと、よく人には「俺はEvernoteに書いて管理してるからイラネ」などと言われます。ですがそういったノート系に書き込んでいるのとは、利用するときに違いがあります。

パスワードを入力するのって、多くはブラウザで何かのサービスにログインするときではないでしょうか?1Passwordはブラウザのプラグインがあり、そのサイトにアクセスした際にプラグインのボタンを押すと、URLで判断して適切なID/PASSを提示してくれます。

「それってブラウザに覚えさせてるのと一緒じゃん!」と言われますが、ちょっと違います。ブラウザに記憶させている場合は、そのブラウザを使う限り誰でも自動的にログインできてしまいます。1Passwordの場合は、このアプリを有効にするマスターパスワードを入れなければ入力されません。

すると必ず「そのパスワード知られたら全部バレるし・・・」と言われます。が、メモ帳で管理したりブラウザに記憶していた時は、どれにもパスワードをかけてなかったりするんですよね。それと比較すると1段階上の安全な気はしてます。

 

さらに、1Passwordを使うことで、サービスごとに適当な文字列をパスワードとして何の躊躇もなく設定できます。パスワードジェネレーターがあるので、「tiD4AULiecPG」とか「RPfCQtTxuWtEnXzgQbUB2w」みたいなのを量産できるわけです。

スマホWindows版もあってそれらと連携できて、スマホでも楽に長ったらしい無意味な文字列を入力しやすくなります。

ただ、いかんせん値段がそれなりにする・・・。

 

TextExpander

スニペットツールです。短縮記号を自分で設定しておくと、決まり文句をズパーンと入力することができます。自宅の住所「;myhome」などと登録しておいて、Googleのルート検索で楽できたりします。

textexpander.com

TextExpanderが数あるスニペットツールと違うは、スクリプトが動くことです。

例えば、

return *1 - 2000 + 12) as text

のようなのを「??heisei」という文字列で登録しておくと、今日の日付を平成で返すようなのが作れます。これをさらに活用して

平成%snippet:??heisei%年%1m月%e日

というのを「;wareki」として呼び出すようにすると、

平成29年1月3日

と出てきます。

元号換算のためだけとかww」などと言われますが、クリップボードに入っている文字列を元に組み立てることもできるので、色々活躍してます。

 

以前は買い切りだったのですが、今は月額に移行しました。スクリプト機能はないものの似た機能のDashなど色々あるので、使ったことがない人はスニペットツールの便利さから体験してみてもいかなと思います。

 

Atom

Electron製のエディターです。

atom.io

その前はSublime Textを使っていてお気に入りだったのですが、Atomプラグインの充実に従い徐々に移行しました。

Git関連やBeauty関連のプラグインを入れて、活用しています。

 

Alfred

ランチャーアプリです。キーボードからアプリに限らず色々呼び出せます。 

Alfred

Alfred

  • Running with Crayons Ltd
  • 仕事効率化
  • 無料

 今となってはSpotlightで同じようにアプリが起動できるのですが、違いはWorkFlowという一連の処理を実行できる機能です。

Google翻訳を使ってブラウザに切り替わることなく翻訳したりなんてことができて、なんだかんだ便利です。

 

 

「長いこと使い続けてる」という選考理由のため、いずれも有名どころばかりになってしまいましたが、これら全体に言えるのはやはり「手間を省いてくれるもの」ということでしょうか。

機能的には+アルファで便利になるものですが、それを省力化して活用できるってことが、これらを使い続けてる理由な気がしました。

*1:year of (current date

続きやすかった習慣 と 続きにくかった習慣 を考えてみた

今年はあれやろう、これをものにしようなどと毎年、あるいは毎日欲張ってます。でも、実際にやってみたもの、続いているものというとごくわずか。

せっかく一度は欲張るのだから、もうちょっとものにしたい。

そこで、自分にとって続きやすかったものと続きにくかったものについて、理由を自分なりに探ってみました。

 

■続きやすかったもの

日時が残る自分専用todo管理

僕はasana ( https://app.asana.com/ )というのを使っています。

1日に2−3個終わるくらいの粒度に分けて登録しています。自分用にしている理由は、僕がフリーランスであることと、参加するプロジェクト全体のtodoだと自分の感覚よりもでかすぎるためです。

最終的には、カレンダー表記を活用して、青色申告をするときの交通費や経費の用途確認に使っています。(まとめてやるので忘れてるため)

 

作業時間計測

Toggl ( Toggl - Free Time Tracking Software )を使っています。

項目を記入してスタート・ストップを自分で測るのですが、上記のasanaと連携することで項目はasanaで入れたものを取得することができます。さらにasanaの画面内にスタート・ストップボタンが出るようになるので、asanaの画面だけで完結。

プロジェクトに対する自分のコスト計算確認に使っています。

 

ウォーキング

自宅作業が多いので運動不足になりがちです。そこでせめて歩くくらいはやろうと思って毎日1時間程度歩いています。

猫に毎朝起こされて、起き抜けにそのまま歩いてきます。帰ってきてから朝食をとっています。

 

Webサービスで勉強

今やってるのはDuolingoというサービスです。

Duolingo: Learn Spanish, French and other languages for free

多くの人が想うであろう「英語が身についたらいいよなー」と思っていたところ、たまたまeラーニングの調べ物をしてた時に知って、試しにやってみたら続いてます。

毎日決まった時刻に「すごいね、XX日連続記録更新中」というメールが来るのを合図にやってます。1回あたり10分くらい。

 

使う予定の技術系の勉強

近々やるプロジェクトで使うつもりのものを、電子書籍で教科書的なのを買ってやっています。

日にちが迫って来るため、焦ってます。

 

図書館で借りて読書

図書館で借りて来て読んでます。月1−2冊くらいか。

返却期限が借りた日から2週間後なので、間近になると布団に潜って一生懸命読みます。

 

日記

 僕はこちらを使って、毎日日記をつけてます。

Day One

Day One

  • Bloom Built Inc
  • ライフスタイル
  • ¥4,800

 フリーランスで自宅作業をしてるからできる技だとは思いますが、毎朝仕事を始める前に「昨日を振り返って4行日記をつける」というのを続けています。

最初の頃は仕事を終わる時に書いていたのですが、猫が遊び来たり、作業が終わらなかったりすると書くタイミングを失ってしまうため、マシンを起動して最初にすることにしました。

 

■続かなかったもの

日時が残らない自分専用todo管理

asanaを使う前も、やらなきゃいけないことを小分けにしてtodoアプリで管理してました。確かに漏れはなくなるのですが、僕は「あの頃何やったんだっけ?」というのを振り返りたくて、todoとは別にカレンダーアプリに実稼働した内容を記録してました。

こうなると完全に二度手間です。そのためどっちも滞りがちになってしまいました。

 

みんなで使うtodo管理

要注意:これは一般論ではなく、あくまでも自分と周囲の環境による理由です。

プロジェクトに参加してchatworkやBrabio!、あるいはasanaでtodoを共有したりすることがあるのですが、todoの粒度がバラバラ、複数人に対してざっくりとしたtodoが割り当てられる、スケジュールや内容が更新されない、これらを介してメッセージを飛ばしても誰も見てないなどの理由のため、自分はあまり続きませんでした。

 

使ってみたい技術系の勉強

今のところ仕事で使う予定はないけど興味があるものや、これを身につけて仕事で活用してやろうなどというものを、紙の本や電子書籍で買ってやっていました。

夜に仕事が片付いてからやっていましたが、猫に遊びに誘われたり仕事が長引いたり眠くなったりして間が空きがちに。

時間が取れる時にやろうとするも、前回までの内容を忘れてしまって、それを思い出してるうちに時間が過ぎるというのが繰り返されて、だんだん遠のいてしまいました。

 

買った本で読書

手元に置いておきたかったり、図書館にはなかったりするのは、電子書籍や紙の本で買っています。電子書籍の場合、場所を取らないのが便利なのですが、普段目につかないので存在を忘れがち。紙の本は本棚にしまって前にものを置きがち。

何より、図書館の本が届いたりすると、返却期限がないこちらを後回しにしてしまって、いつの間にかそれっきりです。

 

ポモドーロテクニック

集中力がないのは、そもそもそんなに長い時間集中できないからだった!という福音を受けて飛びつきました。自分が集中しているかを意識して作業ができるし、実際効率も良かったように思うのですが、togglでタイマー、こっちでもタイマーになって管理が煩雑になり、だんだん使わなくなりました。

(それでも時々、思い出したようにやります)

 

ストレッチ・筋トレ

これも運動不足解消のため、お昼になったら昼ごはんを食べる前に軽く15分ほどストレッチをしたり、スクワットをしたりといったことをしてました。

これは長く続いていたのですが、昼ごはん前ではない時間帯に動かしたら、やるのを忘れてそのうちしなくなりました。

 

■気づき

こうしてみると、自分のパターンがいくつか見えてきました。

1:譲れない期限や目的があるとやる

これはある意味義務の履行なので当たり前か。これを趣味やステップアップ的なことに適用するのは、他なかなか大変そうです。

目的があればそりゃやります。でもやってみたいこと・身につけてみたい憧れを習慣にしたいので、もうちょっとなんか解決策が欲しい・・・。

 

2:紙か電子書籍かは関係ない

よく紙の本と電子書籍との比較が語られますが、僕に関しては媒体の違いは継続にあんまり関係ないように感じました。

 

3:手間がかかるものはやらなくなる

同じようなことをしていても、一手間増えるごとに離脱率が高まっていきます。究極は「何もしないのにし終わってる」。まるでパッショーネのボス:ディアボロの仕業のように、経過を飛ばして結果だけ残ってるのが理想だと思います。

 

4:邪魔が入りやすいとやめがち

生活に関わる他の行動と重なる可能性があると、どうしてもそっちを優先しちゃいます。寝落ちや仕事もそれですね。

 

 

■続けるための作戦

1:手間を減らす

「一手間増えると命取り」の気持ちで、手を抜く方法をとる。自動化できることは自動化する。

やってたことを思い出すのに時間がかからないよう、やってたことを自分なりのメモにして残すというのも、手間を減らす作戦かもしれません。

 

2:邪魔者を排除する

猫のことではありません。

自分の生活・行動パターンを思い浮かべて、それとバッティングしないタイミングに設定する。寝食などすべてに勝るのは、シヴィライゼーションくらいなものです。

また、1回にかける時間を短くすることも、邪魔を減らすことにつながります。

 

 

 

「結局やる気がないから続かないんでしょ?」などと言われがちな僕ですが、自分なりに作戦を立ててみました。

行くぞ2017!!

 

やる気ボタン

やる気ボタン

 

 

 

FuelPHPでPHPUnitのユニットテストをやる時、test環境を使ってる件

FuelPHPは、development、test、staging、productionという4つの環境ごとにconfigファイルを分けることができます。実際にどれを使うか?は、public直下の.htaccessの初っぱなあたりに書かれている

SetEnv FUEL_ENV production

を動かしたい環境にあった内容に書き換えればOKです。あるいはbootstrap.phpの書き換えでも可能。

 

また、oilを使ってコマンドを実行する場合は、

FUEL_ENV=test oil refine migrate

などのように、FUEL_ENVで指定して好きな環境で実行させることもできます。

 

 

そしてPHPUnit

なんだかんだtests以下にテストしたいことを書いて、これまたoilから次のように実行できます。

oil test --group=App

 

 

 

通常は特に問題ないんだと思うのですが、ちょっと困ったことが起きました。 

はじめてのフレームワークとしてのFuelPHP 改訂版

はじめてのフレームワークとしてのFuelPHP 改訂版

 

こちらを参考に進めていたところ、「管理ページの作成」の「ファンクショナルテストの追加」で、テストが通らない。。

 

現象としてはこんなことになってました。

・自分としてはdevelopmentの環境で実行してるつもり

・ファンクショナルテストで入力画面などを通して書き込まれるDBはdevelopment

PHPUnitの中でDB::insertなどをするDBはtest

 

明示的に指定しないとダメなのか?と思い、PHPUnitをoilで実行する際に

FUEL_ENV=development oil test --group=Functional

のように指定しましたが、状況は変わりません。

 

PHPUnitがなぜFUEL_ENVを無視するのか?と思って調べてみると、PHPUnit

/fuel/core/phpunit.xml

の中の

<server name="FUEL_ENV" value="test"/>

を参照しているようです。

 

そこで、このファイル自体を/fuel/app以下へコピーして、

<server name="FUEL_ENV" value="development"/>

のように書き換えると、PHPUnitもdevelopment環境を参照するようになりました。

 

ファンクショナルテストを一緒にやっていて、そっちは.htaccessの設定に従ってDBに値を書き込んでいました。.htaccessコメントアウトしたままだったので、デフォルトのdevelopmentが選択され、DBもそちらへ。

今回は同時にPHPUnitで直接データを書き込んでおり、同じDBに書き込まれていることを前提としたチェック方法になっていたことが原因かな?と思います。

 

もっとも、僕が本書中にあるこれらの記述を見落としていた可能性があるのと、そもそも「テストするのがtest環境」だと思うのであんまりやらないことかもしれませんが・・・。

FuelPHPPHPUnitを動かす時にどこを参照して決めてるのか気がつきにくかったので、備忘録がてら。