でじくる。

主にプログラムの話題などを扱うブログです。

PHP

$argvはスーパーグローバルではない

PHP

PHPは主にWebアプリを作成するための言語ですが、 当然のごとくコマンドラインで動くスクリプトを作成することもできます。 一般的にどの程度PHPがコマンドラインで使われているかは知りませんが、 私はあまりPHPでコマンドラインのスクリプトを書いたりしま…

PHPからApache SolrにJSONでデータをポストする

ApacheSolrにデータを投入する場合、 一般的にはxmlのファイルを読み込んだり MySQLなどからDataImportHandlerで読み込むと便利です。 ただ、クライアントサイドから頻繁にアップデートをする場合など、 PHPとかプログラムからデータを送りつけることができ…

PHPMDで既存のルールセットからカスタムルールを作るときに気をつけること

PHP

PHPMDというツールがあります。 PHP Mess Detectorということで、 PHPで書かれたコードのいまいちいけていないところを指摘してくれるツールです。 未使用の変数を指摘してくれたりなかなか便利なのですが、 二文字の変数を使いたいから一部の条件を外したい…

PHPのIteratorとIteratorAggregate

PHP

PHPのSPLにIteratorとIteratorAggregateというインターフェースがあります。 Iteratorはそのまんまですね。 Iteratorインターフェースを実装したクラスは指定されているメソッドを実装すれば foreachで回したりできるようになる、と。 それは以前から知って…

PDOのFETCH_CLASSがprivateなプロパティでも使えるのは便利なのか気持ち悪いのかよくわからない

PHP

PHPでデータベースを操作する際に、 私は基本的にPDOを使用しています。 PDOには、fetchしてきたデータを指定したクラスに 勝手に詰め込んだオブジェクトを返してくれる PDO::FETCH_CLASSというオプションがあります。 いかにも便利そうなんですが、 何とな…

PHPのmktimeは引数の順番がイミフなのでDateTimeを使いたい。

PHP

PHPを使っていて結構困ることの一つに mktimeの引数の順番があります。 どんな順番で並べたらいいかだいたい忘れていて、 いつもphp.netのお世話に。 ということで、PHP5.2以降だとDateTimeクラスが使用できるようになっているので 多少めんどくささが緩和さ…

PHPのautoloadは結局どう書くのが一番気分がいいのか

PHP

PHPにはクラスを自動的に探してくる オートローディングという機能があります。 オートロードするための関数を登録する方法として __autoload()とspl_autoload_register()の二つが存在し、 __autoload()は複数の関数を登録できないので非推奨、 spl_autoload…

JenkinsとPHPでCIしたいときに読むべき記事

Jenkinsを導入してみようと思い立ち 先週ぐらいから弄っています。 Jenkins本 http://www.amazon.co.jp/dp/4774148911 は去年発売されたときに買って積んでいたので崩しつつ。 それで参考にしたブログの記事など並べておきます。 PHPでTDD&CIワークショップ…