FuelPHPでInnoDBの全文検索を利用してみる

こんにちは。お久しぶりの更新です。

「入力内容に対する類似テキストの検索」を実装する機会があったので、FuelPHPでInnoDBの全文検索を利用してみました。
とはいえFuel自体には全文検索をサポートする操作は特に無いので、だいたい自前で書きました。

手間無くそこそこの精度が出せたので、導入から使用例までメモとして残します。

PHPで開発するためのgit hookを作った

こんにちは。
久々の更新です。

最近Schemaというフレームワークを作っており、
PHPでの開発について色々と新たな知識を得る機会がたくさんあります。

そこでまずは開発環境の構築編として、最低限のお作法を担保する Gitのhook を作成してみました。

PHPのand,or演算子の使い道を考えてみる

突然ですが、PHPの問題です。

<?php

$a = false and false;
$a = true and false;
$a = true and true;

$a = true or true;
$a = true or false;
$a = false or true;
$a = false or false;

おなじみのand, or演算子の優先順位テストです。
それぞれの$aには何が代入されているでしょうか。

php5.4から使える[]での配列初期化と、array()との速度比較

こんにちは。 PHP 5.4から、[]による配列の初期化ができるようになりました。

最近の言語やC言語ですら使える[]構文が今までPHPでは使用できませんでした。
従来、PHPで配列を生成するにはarray()という関数を使用しなければなりませんでした。

[]が使えるようになったので疑問に思ったのですが、array()関数です。

関数であれば多少なり呼び出しのオーバーヘッドがあるはず。
そのオーバーヘッドを考慮したらarray()で配列を初期化するより[]と書いたほうが高速なのでは?

という疑問が出たので検証します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

こんにちは。先日、

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

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

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

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

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

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