ラベル PHP の投稿を表示しています。 すべての投稿を表示
ラベル PHP の投稿を表示しています。 すべての投稿を表示

2013年2月15日金曜日

Zend_Registryの使用法

レジストリは、アプリケーション空間でオブジェクトや変数を保存するためのコンテナです。 変数をレジストリに保存すると、 そのオブジェクトはアプリケーション内でいつでも利用できるようになります。 この仕組みは、グローバルなストレージを使用する代わりに使用できます。

Zend_Registry::set('index', $value);
if (Zend_Registry::isRegistered($index)) {
$value = Zend_Registry::get($index);
}


Zend_Registry

2011年6月29日水曜日

GreeのPepleAPIのサンプル

GreeのPepleAPIのサンプルに
PECL HttpRequest
つかってるって描いてるけど
実はPEAR HTTP_Requestだと思うんだ。

Pecl HTTP インストール メモ

pecl install pecl_http

checking for curl/curl.h... not found
configure: error: could not find curl/curl.h
ERROR: `/var/tmp/pecl_http/configure --with-http-curl-requests --with-http-zlib-compression --with-http-magic-mime=no --with-http-shared-deps' failed
とかでて失敗。


yum search curl
curl.i386 : 数量の単位換算ユーティリティ
curl-devel.i386 : libuser アプリケーションの開発に必要なファイル
python-pycurl.i386 : A Python interface to libcurl

とでたので
yum install curl-devel
としてから再度挑戦したらいけました。
vi  /etc/php.d/http.ini
extension=http.so
を作成してApache再起動しておわり。

2011年6月27日月曜日

Zend_Db_Adapter 結果セットからの キー/値 のペアの取得 fetchPairs()

結果セットからの キー/値 のペアの取得

fetchPairs() メソッドは、データを キー/値 のペア (連想配列) の配列で返します。 この連想配列のキーは、 SELECT クエリが返す最初のカラムの値となります。 また、連想配列の値は、 SELECT クエリが返す二番目のカラムの値となります。 クエリから返されるその他のカラムは破棄されます。
SELECT クエリをうまく設計し、最初のカラムの値が一意になるようにしなければなりません。 もし最初のカラムに重複する値があれば、連想配列のエントリが上書きされてしまいます。 

count()
varに含まれる要素の数を返します。 他のものには、1つの要素しかありませんので、通常 var は配列です。
もし var が配列もしくは Countable インターフェースを実装したオブジェクトではない場合、 1 が返されます。 ひとつ例外があり、varNULL の場合、 0 が返されます。 

array_rand
注意: PHP 4.2.0 以降、 srand() または mt_srand() によりランダム数生成器にシードを与える必要はありません。 これは、この処理が自動的に行われるためです。

2011年6月23日木曜日

Zend_LogのFirebugのコンソールへの出力について

 Zend_LogのFirebugのコンソールへの出力ができねぇ。できねぇ。と思ってたら
あれはhttpheaderを使ってるからGreeを介してたら使えねーわけだな!?
はっは~ん。してやられたぜww

Zend Framework-Zend_Log Zend_Debug Zend_Db_Profilerの使いどころ?

例外発生時などに
Zend_Log
http://www.4web8.com/2105.html 
http://framework.zend.com/manual/1.11/ja/zend.log.writers.html
  1. $writer = new Zend_Log_Writer_Stream('/path/to/logfile');
  2. $logger = new Zend_Log($writer);
  3. $logger->info('Informational message');
Zend_Log_Writer_Db は、 Zend_Db を使用してログ情報をデータベースに書き出します。 
Zend_Log_Writer_Firebug は、ログデータを » Firebug » コンソール に送信します。
Zend_Exception のログを記録するには、 単にその例外オブジェクトをロガーに渡すだけです。
Zend_Log_Writer_Mail は、 Zend_Mail を使ってログエントリをメールのメッセージに書き出します。
Zend_Log_Writer_Syslogは、 システムログ (syslog) にログ項目を書きます。


開発中のデバッグに
Zend_Debug
http://framework.zend.com/manual/ja/zend.debug.dumping.html

Zend_Db_Profiler
http://framework.zend.com/manual/1.11/ja/zend.db.profiler.html
  1. $profiler = $db->getProfiler();
これは、Zend_Db_Profiler オブジェクトのインスタンスを返します。 このインスタンスのさまざまなメソッドを使用することで、 クエリの内容を調べることができます。
  • getTotalNumQueries() は、 情報を取得したクエリの総数を返します。
  • getTotalElapsedSecs() は、 情報を取得したクエリの実行所要時間の合計を返します。
  • getQueryProfiles() は、 すべてのクエリ情報を配列で返します。
  • getLastQueryProfile() は、最後に (直近に) 実行されたクエリの情報を (そのクエリが 完了したか否かにかかわらず) 返します (クエリが完了していない場合は、終了時刻が NULL となります)。
  • clear() は、スタック上に残っている 過去のクエリ情報をすべて消去します。
getLastQueryProfile() の返り値、および getQueryProfiles() の個々の要素は Zend_Db_Profiler_Query オブジェクトで、 これを使用すると個々のクエリ自体の情報を調べられます。
  • getQuery() は、クエリの SQL テキストを返します。 パラメータつきのプリペアドステートメントの場合、 クエリがプリペアされた時点のテキストを返します。 つまり、プレースホルダを含んだままの形式ということです。 実行時に置き換えられた値を知ることはできません。
  • getQueryParams() は、 プリペアドクエリを実行する際に使用する、パラメータの値の配列を返します。 ここには、バインドパラメータだけでなく execute() メソッドへの引数も含まれます。 配列のキーは、(1 から始まる) 数値かあるいは (文字列の) パラメータ名となります。
  • getElapsedSecs() は、 クエリの実行所要時間を返します。
Zend_Db_Profiler の提供する情報は、 アプリケーションのボトルネックを調査したり クエリをデバッグしたりする場合に有用です。

2011年5月30日月曜日

PHPでのオブジェクト型は参照で代入される。

PHP では通常は値による代入になりますが、オブジェクト型については例外です。 PHP 5 以降、オブジェクトは参照で代入されるようになりました。オブジェクトを明示的にコピーするには clone キーワードを使います。

2011年4月11日月曜日

累乗の計算

PHP
number pow ( number $base , number $exp )
 baseexp 乗を返します。

MySQL
POW(X,Y),POWER(X,Y)
XY 乗の値を戻します。
mysql> SELECT POW(2,2);
        -> 4
mysql> SELECT POW(2,-2);
        -> 0.25

static functionでの自分自身のインスタンスの作成

 $thisはつかえまてん。

new self(), new parent()

http://blog.xole.net/article.php?id=472 

2011年3月31日木曜日

Zend_Db_Table における独自の検索メソッドの定義

Zend_Db_Table における独自の検索メソッドの定義

もし特定の条件によるテーブルの検索を頻繁に行うのなら、 独自の検索メソッドをテーブルクラスで実装できます。 大半の問い合わせは fetchAll() を用いて書くことができますが、 アプリケーション内の複数の箇所でクエリを実行する場合には 問い合わせ条件を指定するコードが重複してしまいます。 そんな場合は、テーブルクラスでメソッドを実装し、 よく使う問い合わせを定義しておいたほうが便利です。

Zend_Db_Table

2011年3月28日月曜日

Zend_Db テーブルへの式の挿入

データ配列の中の値を SQL の式として扱い、 クォートしたくない場合もあるかもしれません。 デフォルトでは、文字列として渡した値はすべて文字列リテラルとして扱われます。 その値が SQL の式であること、つまりクォートしてはいけないということを指定するには、 文字列ではなく Zend_Db_Expr 型のオブジェクトをデータ配列に渡します。
  1. $data = array(
  2.     'created_on'      => new Zend_Db_Expr('CURDATE()'),
  3.     'bug_description' => 'Something wrong',
  4.     'bug_status'      => 'NEW'
  5. );
参考リンク
http://framework.zend.com/manual/ja/zend.db.adapter.html

クラスの作り方

クラスの中身を知るために何階層もたどらなきゃいけないようなのは分かりづらいからだめだ。
つまり今つくっってるのはだめな感じだ・・・。

クラスやメソッドは中身がわからなくても使えるようにするべきなんでしょ?
テレビやリモコン