phpのビルトインサーバーで簡単に動作確認

昔はWebサーバーにphpを使って確認しようとしたら
ApacheとかNginxとかWebサーバーが必要でしたが
php 5.4からはphpにサーバーがついています

php -S localhost:8000

とかすればWebサーバーが起動します
起動したディレクトリのファイルにアクセスできるので
ブラウザで

http://localhost:8000/sample.php

とかでアクセスできます
(index.phpを用意してればhttp://localhost:8000/だけでOK)

php -S 0.0.0.0:8000

としてあげれば、ネットワークがつながっている違うPCからもアクセスできます

アクセスするときは、

http://立ち上げたPCのIPアドレス:8000/sample.php
でアクセスできます

つながらないときは、ネットワークがつながってないか、ファイアーウォールなどで弾かれてるかだと思います

CakephpでModelのデータベースアクセスをsqlで確認する

Cakephpでモデルにアソシエーションたくさんつけたり、検索条件たくさんつけたりすると
ちゃんとデータがとれるか不安なので、sqlで確認したい..ときには

$data = $this->SampleModel->find('all);

$sqlLog = $this->SampleModel->getDataSource()->getLog(false, false);
debug($sqlLog);

とすると生のSQLが表示されて安心です

phpでin_arrayを使わずに同じことをする

phpではすごく大きな配列だとin_arrayが遅いようなので書き換えてみました

普通のin_array

$arr = [1,2,3, 4, 5];
if (in_array(2, $arr)) {
    echo 'exists';
}

issetが早いらしいので、isset版

$flipArr = array_flip($arr);
if (isset($flipArr[2])) {
    echo 'exists';
}

キーと値を反転させて、issetで判定しています
ベンチとればよかったですが、かなり早くなりました