カテゴリー: PHP

Windows環境のxamppで入れたPHPにPHPUnitをインストールする方法

投稿者:isc_blog

Windowsでのxamppで入れたPHPにPHPUnitをインストールする方法が詳しく載っている記事を見つけました。

とっても参考になります!
windowsにPHPunit入れる|これでも・・・

2011年9月19日

PHPカンファレンス2011に行ってきました

投稿者:isc_blog

PHPカンファレンスに初めて行ってきました。                                                                              全体の様子は、いろいろとまとめ記事が出ているのでそちらをご覧ください。

PHPカンファレンス2011 スペシャルレポート

PHPカンファレンス2011に参加してきた

以下、聴講してきたセッションの感想です。

(さらに…)

2011年9月12日

CodeIgniter2.0.3日本語言語パック リリースされました

投稿者:isc_blog

本日、2011年9月5日日本CodeIgniterユーザ会により
日本語言語パック(CodeIgniter2.0.3)がリリースされました。

CodeIgniter 2.0.3 は、マイナーバージョンアップです。セキュリティ修正、および、いくつかの機能追加とバグ修正が含まれています。

変更点は、ユーザガイドの変更履歴 をご覧ください。

とのことですので詳細はご確認ください。

今回のプロジェクトではこのCodeIgniter2.0.3を使用します!

2011年9月5日

PHPベンチマーク結果まとめサイト「The PHP Benchmark」を見てスピードアップさせたい・・・

投稿者:isc_blog

PHP のベンチマークテスト結果ないかな~と思って検索していたところ
いつも愛読しているPHP SPOT開発日誌さんの過去記事を発見しました。
PHPベンチマーク結果まとめサイト「The PHP Benchmark」

こちらの記事で紹介されているサイトがこちら↓↓
The PHP Benchmark

なかなかやるせない(?)情報がいっぱいだった・・・・

たとえばこちら↓

以下 The PHP Benchmarkより引用
[php]
<?php

// Initial Configuration
$answer = 2;

// Test Source
function Test10_4() {
global $answer;

/* The Test */
$t = microtime(true);
while($i < 1000) {

if($answer === 1) {

} else if($answer === 3) {

} else {

}

++$i;
}

return (microtime(true) – $t);
}

// Variable Clean-up
function Test10_End() {
global $answer;
unset($answer);
}

?>
[/php]
というコードと
[php]
<?php

// Initial Configuration
$answer = 2;

// Test Source
function Test10_6() {
global $answer;

/* The Test */
$t = microtime(true);
while($i < 1000) {

switch($answer) {

case 1:

break;

case 3:

break;

default:

break;
}

++$i;
}

return (microtime(true) – $t);
}

// Variable Clean-up
function Test10_End() {
global $answer;
unset($answer);
}

?>
[/php]
というコード。

どちらも同様の計算が行われるはず・・・
ところが前者が

95μs(マイクロ秒)に対し

後者は

135μs(マイクロ秒)になる。
前者を100%とすると後者は142%。
アプリケーション全体で後者の記述をしていれば前者に直すと142%加速する(・・・わけないか)

こんな感じでいろいろ比較があって見れば見るほど過去を反省・・・もといこれから直していこうと思っちゃいます。

※PHPの比較演算子について
「===」は型も含めて同じである場合にTRUEとなります。(PHP4以降)
詳しくはこちら(PHP:比較演算子)

2011年8月28日

CodeIgniterのすすめ Active Recordクラス

投稿者:isc_blog

CodeIgniterについて何度かご紹介してきていますが
ここんとこSeasar2(Javaのフレームワーク。個人的にはJavaのフレームワークの中で一番好きかな。)っぽいなぁ~と思ったActive Recordクラスについて
ご紹介します。

Seasar2の中でもS2JDBCっていうSeasar2のO/Rマッパーで・・・
っていうか
まぁ、百聞は一見にしかず・・・ってことでこんなコードでDB検索を可能にしています。
[java]
List<Employee> results = jdbcManager.from(Employee.class)
.join("department")
.where("id in (? , ?)", 11, 22)
.orderBy("name")
.getResultList();
[/java]
これって実際のSQLは・・・・こんな感じ
[sql]
select T1_.ID, T1_.NAME, T1.DEPARTMENT_ID, T2_.ID, T2_.NAME
from EMPLOYEE T1_ left outer join DEPARTMENT T2_ on T1_.DEPARTMENT_ID = T2_.ID
where T1_.ID in (?, ?)
order by T1_.NAME desc
[/sql]
※SQL文内の「?」に 「11」「12」が入ってくる感じです。

これをCodeIgniterのActive Recordクラスで書くと・・・
[php]
$this->db->select(‘employee.id,employee.name,employee.department_id,department.id,department.name’);
$this->db->from(‘employee’);
$this->db->join(‘department’, ‘department.id = employee.id’,’left’);
$this->db->where_in(‘id’, array(’11’,’12’));
$this->db->order_by("employee.name", "desc");
$query = $this->db->get();
[/php]
こんな感じ(間違ってたらごめんなさい)
もしかしたらCodeIgniterの方が直感的かもしれない。

どちらももっと複雑なSQLの場合は直接SQL文節をかけちゃう
「S2JDBC」
[java]
List<Employee> results = (List<Employee>) entityManager.createQuery(
"select e from Employee e left join fetch e.department" +
" where e.id in (?1, ?2) order by e.name")
.setParameter(1, 11)
.setParameter(2, 22)
.getResultList();
[/java]

「CodeIgniter」
[php]
$this->db->select(‘(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4′) AS amount_paid’, FALSE);
$query = $this->db->get(‘mytable’);
[/php]

フレームワークを導入したせいでガチガチでどうしようもなくなる(またはフレームワークのせいでSQL構文を合わせないといけない・・・)というフレームワークではつかれるので、こういうところは柔軟であってほしい。

やはりいいフレームワークだと思います。

久々に書いたけどS2JDBCも強力だなぁ~
Java書きたくなってきたー
※Androidは書いてるか・・・

2011年8月2日

WordPressプラグイン「Throws SPAM Away」に設定ページを付けました。

投稿者:isc_blog

先日公開したスパム対策プラグインに下記設定項目を付けたくて設定画面をつくることにしました。
・日本語が最低何文字含有している必要があるか  文字数
・日本語を含まない(最低文字数以下の場合含む)場合にちらっと出るエラー文言から元の記事に戻る時間(ミリ秒)

こちらを参考に設定ページを付けることにしました。

設定ページの作成|WordPress Codex 日本語版
感謝っ!

この設定付きバージョンを Version 1.2 として公開しました。
是非、バージョンアップしてください!

インストール後は左側のメニューから「Throws SPAM Away」メニューをクリックして設定画面が現れます。

海外からのスパム投稿にお悩みの方はぜひともインストールしてみてください。
こちらからどうぞ↓↓↓
Throws SPAM Away

2011年7月24日

WordPressのプラグインを作りました・・・海外からの英語コメントスパムに悩むあなたへ

投稿者:isc_blog

お客様からご依頼いただいていたサイト修繕で
前々から海外からの英語コメントスパムになやまされてきたそうなので
なにかないかと思い、探して入れていたのが
SI CAPTCHA Anti-Spam」というプラグインでした。
これは「文字列を画像にしたものを表示しその文字列を入力して正しくなければコメントを投稿することが出来ない」というものなのですが
これを超えて来る奴らがいるんですね。 (ご苦労様ですw)

で、これ以上のものは・・・と探したんですがなかなか見つからないので作ることにしました。

スパム対策の方式は下記の通り
・コメント欄にダブルバイトが含まれていないと投稿出来ない。
・投稿出来ない・・・といってもエラーにするのではなく「無視」して何事もなかったようにもとの記事に戻る。
・日本人用に「日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)」というコメントを表示する

以上です。

一応、このブログでも可動させています。

下記からダウンロード出来ます。
Throws SPAM Away
※ご使用の際は自己責任でお願いします。

前述のSI CAPTCHA Anti-Spamも併用できるので便利です。

調子にのってこちらのページを参考にWordPress.orgに申請してみました・・・
どうなることやら・・・・

課題としてはダブルバイトならOKなので中国語やハングル、ロシア語などは入ってしまうのです。

日本語で画像認証作ればいいのかも・・・と思いつつ今回はこれまで。

2011年7月21日

今日の調べ物・・・

投稿者:isc_blog

Android開発で・・・・「赤外線」を使ったアプリを作りたかったので・・・調べた結果

SH Developers Square – download 赤外線データ転送API概要

JavaScriptにてIEの時は・・・と書きたかったので・・・・調べた結果

phpSpot開発日誌より
JavaScriptでIEかどうかをたったの1行で判別する方法

CodeIgniterのセッションクラス

今日はいろいろ立てこんでますw

2011年7月19日