2013年7月24日水曜日

CakePHPでの検索条件例集

CakePHPでの検索条件例集

condition

OR, プレースホルダ
$conditions = array(
'OR' => array(
            array('startDate > date(?)' => array($today)),
            array('endDate < date(?)' => array($today)),
        )
);
array('Post.read_count BETWEEN ? AND ?' => array(1,10))
大小
$conditions = array(
        'Task.date >=' => $start,
        'Task.date <=' => $end
);
否定
array("Post.title !=" => "This is a post")
IN(…)、 NOT IN
array(
    "Post.title" => array("First post", "Second post", "Third post")
)
array(
    "NOT" => array("Post.title" => array("First post", "Second post", "Third post"))
)
比較
array("Post.created = Post.modified")
LIKE
array(
    "Author.name" => "Bob",
    "OR" => array(
        "Post.title LIKE" => "%magic%",
        "Post.created >" => date('Y-m-d', strtotime("-2 weeks"))
    )
)
 
データを取得する - CakePHP Cookbook v2.x documentation 
http://book.cakephp.org/2.0/ja/models/retrieving-your-data.html 

2013年5月1日水曜日

[Tortoisegit] could not parse get .exe version number エラーの解決方法



「could not parse get .exe version number」というエラーの解決用法

画像赤枠の git.ext のパス中にスペースが有るのが問題らしい。

Program Files (x86)
   ↓

ProgramFiles(x86)






と修正することで無事解決します!
これはエイリアスとしてTortoisegitが持っているようです。

この時のバージョン情報
TortoiseGit 1.8.1.0
git version 1.8.1.msysgit.1 (C:\Program Files (x86)\Git\bin)


英語圏でも問題になっていたよう。
Issue 1533:    Could not parse git.exe version number
https://code.google.com/p/tortoisegit/issues/detail?id=1533


Windowsはやはりパス周りがつらいなー。

2013年2月7日木曜日

初心者のサイトのサーバー移転 ありがちな落とし穴


サーバーを変えたい。

サーバー移転をしたい。

いま安いサーバーがたくさんでてきてるし、スペックが相当良くなっているので、現状使っているサーバーよりも安くて高スペックとか良くあるので結構移転時のトラブルの相談とかされる。

静的なhtml自体では問題はあまりでないが、phpなどのプログラムを移した時によくある動かないパターンがあるのでその時チェックしてみるといい項目を書いとく。

・プログラムが動かない
→パーミッションを確認してみる。
→CGIスクリプト等1行目パスを確認。

・ベーシック認証が通らなくなった
→.htaccessで指定の.htpasswdへのパスがかわっているのを修正。

・フォームからの画像アップロードができなくなった。
→画像の保存先ディレクトリのパーミッションを確認。

・文字の表示が変。
→FTPでアップするときに文字コードを自動で変更してないか確認。


またあれば追記予定。


2013年2月1日金曜日

.gitconfigにログを見やすくする設定をする

これをついかしたらかなり見やすくなる。

使うときは git logg で。

[alias]
logg = log --graph --date=short --pretty='format:%C(yellow)%h %cd %C(cyan bold)%d%Creset %s %C(black bold)%an, %ar%Creset'

参考:
http://hail2u.net/blog/software/easy-to-read-git-log.html
http://yuroyoro.hatenablog.com/entry/20101008/1286531851


2013年1月25日金曜日

MySQLのスロークエリを追う設定


MySQLの遅いクエリ、パフォーマンスがきになって調べるための設定のまとめ








my.cnfに下記設定項目を追加

[mysqld]

# Slow Query log
slow_query_log=1
slow_query_log_file="/logs/mysql_slow.log"
log_queries_not_using_indexes
log_slow_admin_statements
long_query_time=5
min_examined_row_limit=10000
#log_output=TABLE



・long_query_time=5 とするとログが5秒位上のログを記録する。

・min_examined_row_limit=10000 とすると10000以上の行をテーブルから読み込んだクエリを記録する

・log_output=TABLEの行を追加するとDBの slow_logテーブルに保管される。コレは便利かも。


ちなみにTABLEの保存の場合指定したログファイルには書き込まれない模様。どちらかとなるよう。

2013年1月21日月曜日

Lingr bot作成メモ


Lingrに投稿 下記URLをキック
http://lingr.com/api/room/say?room={$roomID}&bot={$botName}&text={$message}&bot_verifier={$botVerifier};

$botVerifier = sha1($botName . $botSecret);

Herokuでphpを使ってLingrのbotを動かす


いまさらながらHeroku。
http://www.heroku.com/

そもそもLingrのbotを動かすのに現状どこで公開しようか?
と思い悩んでいた時になにもいいのが思い浮かばなくて、
じゃぁHerokuでと思いたち、しかしPHP動くのかなと試すだけ試してみようと。

実際アカウントも無いところからだったけど
登録したらtoolbeltをインストール。
https://toolbelt.heroku.com/

すると後はターミナルで(OSX)
ローカルののgitリポジトリにremoteをHerokuアプリのアドレスを追加して
最後にpushするだけですぐに公開される.
git remote add heroku APP_URL
git push heroku master

これは楽すぎる。

で一番やりたかったLingrへの定期Post。
これはHeroku Schedulerアドオンを使って実現できる。

ただしここでハマったのがPHPのパス。
下記コマンドを実行して解決した。

heroku config:set LD_LIBRARY_PATH=/app/php/ext:/app/apache/lib
参考:2012 coscup - Build your PHP application on Heroku

Heroku SchedulerのScheduled JobsのTASKの実行コマンドには下記のように。
$ ~/bin/php ~/www/YOURE_FILE_PATH

これで動いた。便利便利。でScheduled Jobsで時間を指定するときは
日本では9時間を足すこと。