phpのマジックメソッドを使ってRailsのfind_all_by_*メソッドを実装してみる

phpのマジックメソッドを使ってRailsのfind_all_by_*メソッドを実装してみる

久々の更新です。
ネタは溜まっているんですがなかなか書くモチベが沸かず。

これから定期的に更新できるよう頑張ります。

今日はPHPのマジックメソッドについて書きます。

PHPのマジックメソッドの中に__callStaticというメソッドがあります。
これは、クラスで定義されていないメソッドに対してstaticなコールをした際に呼び出されるフックです。

この機能を使えば、Rubyでいうところのmethod missingのような挙動が可能になるのでは?
と考え、実験にRuby on Railsで以前まで使われていたfind_all_by_*を実装してみたいと思います。

ライブラリ等に依存しないシンプルなデモと、
実用化するために、FuelPHPのモデルを用いた例も作成します。 Continue Reading…

boxenのPuppetfileを一発更新するスクリプトを書いた

boxenのPuppetfileを一発更新するスクリプトを書いた

こんにちは。
今使っているMac Book Airの容量がほぼ一杯になってしまったので、
クリーンインストールをしようと思っています。

Time machineから復旧してしまうと何も変わらないので、
boxenというGithub社が提供しているセットアップツールを使おうと思います。

詳しい使い方は下記リンクを見て欲しいのですが、
Puppetfileという設定ファイルで
色々とアプリを読み込んだり出来るのですが、

このバージョンをいちいち更新するのがひどく面倒くさい
でも、出来れば常にメンテされた最新版でありたい。

そんな悩みを解消するため、
Pupeetfileで読み込んでいるResourcesのバージョンを全て更新するスクリプトを書きました。

とてもピンポイントですが、
同じ悩みを抱える方には需要のある内容だと思います。

Continue Reading…

AlfredにURLを貼り付けるとMarkdownのリンク形式にしてくれるWorkflowを作った

AlfredにURLを貼り付けるとMarkdownのリンク形式にしてくれるWorkflowを作った

こんにちは。先日、

プラグインを使わずにMarkdownでWordpressのブログを更新する(実践編) | WEB EGG

という記事を書いたのですが、Markdownでの記事作成がより捗るように
AlfredにリンクさせたいページのURLを貼り付けるだけで、
[ページタイトル](リンクURL)という形式でコピーが出来るWorkflow
Markdown Link Generatorを作りました。

Continue Reading…

自分のはてブを検索できるAlfred Workflowを作った

はてなブックマークの検索が出来るAlfred Workflow作った

こんにちは。
暑いですね。溶けて消えそうです。

最近、はてなブックマークの記事を、
PocketとかEvernoteに送信せずに、ブックマークして放置
ということが増えてきて、はてブが地味に溜まって来ました。

クライアントアプリも無いし、webは使いにくい(けどいい記事は集まる)ので、
手軽に検索できる物を作ってしまおうと、
Alfredから自分のはてブの記事を検索できるWorkflowを作りました。

Continue Reading…

Alfred2のWorflowsを自作して作業を効率化する

Alfred2のWorflowsを自作して作業を効率化する

こんにちは。

最近は、Alfredというアプリに大変お世話になっております。
アプリを起動するのにいちいちトラックパッドを使わなくて済むので、すごく捗ります。

Alfredには、色々な便利機能があるのですが、

今回はもう少し突っ込んだことについて書きたいので、
参考になった記事を貼っておきます。

Mac仕事効率化!Spotlightを完全に超えた神ランチャーアプリ「Alfred 2」の使い方とおすすめWorkflows10選。[Mac] | MacWin Ver.1.0

[太]MacのランチャーアプリAlfred ver2の新機能「workflows」が結構凄そう。 | Fujitaiju Blog

ここからが本題です。
AlfredにはWorkflowsという機能があります。

このWorkflowsが非常に強力で、

  • Evernoteのクリップしてある記事から検索をかけたり
  • リマインダーにワンライナーでタスクを追加したり
  • Amazonの商品検索のサジェスト機能を使ったり
  • カラーコードを入力すると該当する色を表示してくれたり
  • URLを入力すると、短縮URLが生成されてクリップボードにコピーできたり

と、他にも色々ありますが、 Alfredというアプリ上で、一つのまとまった作業を一気に行うことができます

で、この中から
WebでAPIが公開されているサービスに何らかの問い合わせをし、
その結果を元に、何かアクションを起こす

といったタスクを行うWorkflowsを作ってみようと思います。

ググっても、チュートリアル系の記事が1件も見つからなかったので、 ソースを読んで作り方を学んでいきます。

今回は、日付を入力すると、
速水もこみちがMOCO’sキッチンで使ったオリーブオイルの量を検索出来るAPI
MOCO’SキッチンオリーブオイルAPIを利用したWorkflowsを作ります。

Continue Reading…

PHPで一時的にエラーを表示する方法

PHPで一時的にエラーを表示する方法

こんにちは。

私はさくらVPS2Gプランで開発をしているのですが、
デフォルトだとphp_iniファイルでdisplay_errorsがOFFになっているようです。

セキュリティ的にこちらのほうが好ましいのですが、
エラー潰しをしている時に何も出力してくれないのは、時間効率があまり良くありません。
一時的で良いのでエラー出せないかな?

ローカルで動作させてからアップロードしろよ、という話なのですが、
今回はphpの関数ini_setを用いて一時的にエラーを出力する方法を残します。

Continue Reading…

phpで「facebookでログイン」を実装するまで

phpで「facebookでログイン」を実装するまで

こんにちは。

先日、友達がシステムの実装を行なっている時に、
「phpでfacebookでログインを実装したいけど詰まった」と言っていまして、
そんな難しいものでもないだろうと思ったら、そのとおり簡単だったのですが
調べる事も結構ありましたので、

備忘録として、ここに残しておきます。
Continue Reading…