C-limber's highへようこそ。
C-limber's highは山登りのサイトではなく、福岡システム開発WEB制作会社 C-limber(クライマー)株式会社の技術メモブログです。
福岡システム開発ホームページ制作をお探しの方はお気軽にご相談下さい。

2013年11月26日火曜日

[PHP] メモリ使用量を調べる

11:07 Posted by 井口達也 No comments
ローカルで作業してて重い検索なんかやってると時々メモリオーバーで、
画面真っ白になります。

 そんなときはメモリを食ってる部分をリファクタリングですが、
その際は
$mem = memory_get_usage();
$mem = number_format($mem);
print("Memory:{$mem}");
で調べましょう。

この関数は挿入した時点でのメモリ使用量を調べるので、
最終的な使用量を出すには下の方に挿入しましょう。

以上です。

2013年11月22日金曜日

[php][Pear] default_timezone がずれる

19:56 Posted by 井口達也 , No comments
PearのMail_Queueを使って、
大量のメールを送信出来るものを作ろうと思ってたときに起こった事。

テストでcronでメールキューを作ると同時に送信する => 問題なく送信。

別に管理画面からキュー登録、その後cronがキュー送信 => 送れない。

本当に原因がわからなくてPearのソース追っかけて
dumpしまくりながら調べた結果・・

原因はtimezoneにありました。

php.iniが Asia/Tokyo にセットされていて安心していたのに、
cronでメールキューを処理する時点でのtimezoneが Europe/Berlin になってました。

なんでなのかは調査が必要ですが、
とりあえずapache経由でのアクセスでは無い時は、(ターミナルとかでやってる時)
apacheが読んでるphp.iniとは違うものを読み込んでいるいる可能性がある。
っていうのを思い知りました。

ちなみにtimezoneを設定するときは、

// タイムゾーンを設定する
date_default_timezone_set('Asia/Tokyo');

// タイムゾーンを表示させる
echo date_default_timezone_get();



Pear+PHP5 は strict_standard(値か参照かの警告) やら deprecated(非推奨) やら エラーでまくるし嫌ですね・・



2013年11月16日土曜日

[blogger]syntaxHighlightの導入

17:02 Posted by 井口達也 No comments
記事的に、コードをメモする事が多いので、
シンタックスハイライトを導入してみました。

参考にしたのはコチラ。
BloggerにソースコードをハイライトするSyntaxHighlighterを導入する

結構簡単にできるもんですね!

って思ったら、
使うテンプレートによってはハイライトしてくれません。

jsばりばりのテンプレを使ってたんですが、
見やすさ優先・コード優先のシンプルテンプレートに変更しました。

他にもシンタックスハイライトする方法あるんだろうか・・

余裕がある時ちょこちょこいじってみます。



2013年11月15日金曜日

[yii] CDbCriteriaの書き方いろいろ

13:10 Posted by 井口達也 No comments
Yii FrameworkのCDbCriteriaを毎日毎日書いてるわけですが、

$criteria=new CDbCriteria();

としたあと、書き方の選択肢がいくつかあるので、そのメモです。

他のtableをjoinする場合  

$criteria->join.=' LEFT JOIN {{table_a}} a ON t.table_a_id=a.id ';




※メインのtableは t というデフォルトの別名が付きます。
※複数のtableをjoinする場合、CDbCriteriaのjoinプロパティは一つしか無い(配列ではなく文字列なので)ので.(ドット)で連結する事に注意!
※{{table_name}}で指定する事で、動的にprefixを無視してtable名を読み込めます。便利ですね


■ paramsの持たせ方

配列なので当たり前だけど後からどんどん追加できます。

$criteria->params[':name']="%{$name}%"; // 文字列
$criteria->params[':test_1']=$test_1; // 数値等


■ 一つのtextFieldで複数のfieldをテキスト検索する場合  

$criteria->addCondition('t.title LIKE :title OR t.comment LIKE :comment');
$criteria->params[':title']="%{$search['text']}%";
$criteria->params[':comment']="%{$search['text']}%";


■ where in で検索する方法

普通にリファレンスに書いてありますけどね、、一応メモ
$criteria->addInCondition('group_id', $group_id_array);


■ createCommandでも書けます

$commands=Yii::app()->db->createCommand()
   ->from('{{member}} t')
   ->leftJoin(
    '{{member_category_relation}} c',
    't.id=c.member_id AND c.group_id=:group_id'
    ,
    array(
     ':group_id'=>$this->_group->id,
    )
   )
   ->select(array(
    't.id AS id',
    'name',
    'category_id',
    't.update_time AS update_time'))
   ->where(
    array('in', 't.id', $member_ids)
   );
  // 後から追加も可能
  $commands->order=$order_sql;

  // コマンド実行
  $datas=$commands->queryAll();

2013年11月14日木曜日

[デバイス] Mac Book Air のサブモニター用 HDMIアダプタ

11:03 Posted by 井口達也 , No comments
安くていいの見つけました

Amazon.co.jp:MacLab.  Mini Displayport - HDMI変換アダプタ

相性保証あり30日間返品可で、
770円

家用、会社用と使ってますが、
ストック用でも一本買っとこうか、と思える安さです。

現状、使用になんの問題もありません。

おすすめです。
Amazon.co.jp:MacLab.  Mini Displayport - HDMI変換アダプタ

2013年11月13日水曜日

[jQuery UI] datePickerで日付が飛ぶ場合

16:43 Posted by 井口達也 No comments
jQuery UI の datepickerを使っていて、
時々1900年とか1899年に年が飛ぶ事があります。
そのときの対処法。

参考はここです。

Weird jQuery date picker action - Stack Overflow

Stack Overflow様々です。

これを
$(this).datepicker('destroy').datepicker({
    showOn:'focus',
    dateFormat: "yy-mm-dd",
}).focus();


これに変更
$('.datepicker').not('.hasDatePicker').datepicker({
     dateFormat: "yy-mm-dd",
     showOn:'focus',
});

datePickerが2個でることで起こるバグっぽいので、
すでに生成されている場合は、生成そのものを押さえる感じみたいです。 

勉強になりました。

2013年11月12日火曜日

[git] 各種戻し方

15:19 Posted by 井口達也 No comments
■一つのファイルの編集した後で、前回コミットしたところまで、修正内容を戻したいファイルがある場合

git checkout file_path


■ファイルの更新履歴を全て削除したい時(gitの管理下から外す時)

#ディレクトリごと
git rm --cached -r dir/
#ファイルだけ
git rm --cached file_path


■更新履歴がある場合、.gitignoreでignore出来ません。この場合、「ファイルの更新履歴を全て削除」してください。やり方は上記。

2013年11月8日金曜日

[yii] 時間系バリデートの記載

22:47 Posted by 井口達也 No comments
yiiのCActiveRecordのvalidateは超便利ですけど、

時間系のバリデートのformatの指定の仕方がちょっと特殊です。

特殊というか、PHPのdate関数と違います。

詳細はこちらを。。

CDateTimeParser | Class Reference | Yii PHP Framework

使えば使うほどyiiが楽しくなる感じ。
他のフレームワークでもこうなのかな。

少なくともZendFramework1系はこんな感じはなかったけど。

2013年11月6日水曜日

[ZF1] セッションを消す時

21:43 Posted by 井口達也 No comments
unsetで消そうとしてましたが、 Zend_Session::namespaceUnset('○○'); としないといけないみたいです。 メモメモ。