php

memcached のインストール。作業メモ

作ったもの memcached 環境作成(ローカルホスト) telnet でアクセス munin で監視 php からアクセス php のセッションを memcached に保存 その他 memcached 環境作成(ローカルホスト) 環境は Cent 最新。 yum install -y memcached memcached-devel php-pec…

PHP の short_open_tag 爆発しろ。

php

PHPの short_open_tag の仕様がバージョンによってコロコロ変わるのでメモ。 まとめ バージョン デフォルト 変更可能 備考 PHP 4.0.0 On PHP_INI_ALL "

Zend FrameWorkでCLIのスクリプトを実行するルーター

ZFでバッチ処理とかが、どうもすっきり書けないのでちゃんと考えてみた。こちらの方の記事をかなり参考にさせて頂きました。 CLI(php コマンドライン) から Zend Framework アプリを実行するには - Enjoi Blogこの方のプログラムの Controlelr_Router と Con…

ZendFW + Smarty3の autoloader 併用

ZendFWとSmartyのautoloader が干渉して画面がエラーだらけになるのだが、 検索して、ようやく回避方々を発見。 Warning: include_once(Smarty\Internal\Data.php) Warning: include_once(Smarty\Internal\Template.php)http://karenziv.com/2010/09/zend-fr…

Cake、複数のレコードをまとめて保存する。

CakePHP 1.3テーブルの複数のレコードをまとめて保存する方法メモ。 まず普通にテーブルのモデルを作って。

Cakeのシーケンス図も書いてやる。

Cakeを玩ぶ前に、ソースコードを読みながら書いてみた。 フレームワークの最低限の設計とかは理解しときたいな。と。 魔改造のお供。Cake1.3。まずコントローラ。View周りは別画像で。 気になるとこメモ。1. モデルがFly Weightパターンで生成されてる(っぽ…

PHPから携帯3キャリア対応のメールを送信。

php

メールを送信したら、SoftBankだけ文字化けです。ググったら「SoftBankにはUTF-8で送信」といった情報もありましたが、全キャリア対応もなんとかなりました。(だって送信先のドメイン確認してメールの内容変えるって、どう考えてもおかしいし)ここでくどくど…

Docomo、端末IDを常に取得する。

php

ページ内の全てのリンクに guid=ON のパラメータを設定する。http://www.aiwake.co.jp/modules/bulletin/index.php?page=article&storyid=2 ここの方のコードを少しアレンジ...url_rewriter.tags の値の form の要素だけ上書きするようにしています。 下書き…

Zend_Http_Cookie を使ってみる。

アクション内で。 getRequest() ->getCookie($name); //init or cout up if(is_null($value)){ $value = 0; }else{ $value = (int)$value + 1; } $domain = $this->getRequest() ->getServer('SERVER_NAME'); //cookie domain $expires = time() + 7200; /…

Zend_Application_Resource_Mail が Warning。

Zend FW 1.10.1Zend_Application_Resource_Mail が Warning 吐くのでちょっと直し。警告の内容。 Warning: Zend_Loader::include_once(Smtp.php) [function.Zend-Loader-include-once]: failed to open stream: No such file or directory in C:\Program Fil…

PHPのクラスで循環参照、 当然エラー

php

二つのクラスがお互いを循環参照すると、当然エラーなんだけれども、なんとなく確認したくなったので書いてみる。 _child = new ChildClass($this); } public function __call($name,$args) { return call_user_func(array($this->_child,$name),$args); } }…

Zend Controller内でのルーティング

Zend Frameworkのルーティングがちょっと気に入らない。1. URLと別のコントローラに飛ばすことは稀。 2. 設定ファイルが大きくなりすぎるので、適度に分離したい。 3. 設定とプログラムが分離しすぎてて可読性がちょっと低い。 こんな感じになった。 Control…

Zend_Db_Table_Row クラスで postgres の配列を扱おうとした => 挫折。

そのまま消すのもアレだから、ブログにでも乗っけるわ。postgres の配列があるテーブル test CREATE TABLE test ( key serial primary key, data integer[] );PHPで普通に検索すると、配列のフィールドが「"{1,2,3,4,5}"」のような文字列になって帰ってきま…

Zend_Applicationのシーケンス図

Zend_Version 1.9.4。Bootstrap周りの処理の流れを簡単に.....まず、Bootstrap内の _initXXX メソッドが全部実行される。 戻り値のオブジェクトはコンテナに保存される。 (図中では __set() と表記)その後、Resourceプラグイン( Zend_Application_Resource_X…

Zend_View_Smartyにコピーコンストラクタは必須。

Zend_View_Smarty (http://framework.zend.com/manual/ja/zend.view.scripts.html#zend.view.scripts.templates)一部のヘルパーでコピーコンストラクタの設定をしないと問題が発生する。 具体的にはPartial ヘルパー(と、それを内部的に呼び出しているクラ…

php の require に失敗して画面が真っ白になるのを避けたい。

php

php はよくよく画面が真っ白になる。 失敗したら失敗したでエラー画面が出て欲しいわけです。require のパスが条件によって変わったり(ファクトリパターンとかでは良くある)すると時々ミスする。フリーのライブラリとか使ってると、命名規則が違ってて __aut…

テーブルデータゲートウェイパターンの危険。

エンタープライズアプリケーションアーキテクチャパターンの詳細については文献にまかせるとして、 Zend_Db_Table の話。 insert($data); ※ My_Db_Table_Media は Zend_Db_Table_Abstract を継承したクラス。という数行のプログラムに対して、発行されるSQL…

Zend + Smarty で Struts 調の例外ページ

Zendのエラー画面にこんなテーブルを表示させたい。 class Zend_Controller_Dispatcher_Exception code 0 message Invalid controller specified (hoge) file C:\Program Files\PHP\lib\Zend\library\Zend\Controller\Dispatcher\Standard.php(241) trace C:…

Smarty 美しいテーブルを作る。

正確には「Smarty の美しくもないテーブルを可能な限り見やすく作る」↓こんなテーブルを作る。 画像1画像2画像3 画像4余白余白 <table> {foreach from=$record|@array_chunk:2 item='result1' name='loop1'} <tr> {foreach from=$result1|@array_pad:2:false item='resu</tr></table>…

Zend の index.php を結局どう書くか。

Zend_Toolで自動生成されるファイルがなんか気に入らない。Toolについてはこの方が大変詳しく解説しています。 http://nonn-et-twk.net/twk/zend-tool 自動生成の何が気に入らないかと言うと 1.bootstrap.php と index.php のファイルを分離する意味があまり…

十全な Zend_View_Smarty

これで Zend_Layout も Zend_View_Helper も使えるはず。 レイアウトは {$layout->content} ヘルパーは {$helper->Form()} みたいに呼び出す。Zend_View_Abstract を継承して Smarty に必要な部分だけ上書き、という作り。 なのでヘルパーとかフィルターとか…

Smarty に例外を投げさせる

php

require_once 'Smarty.class.php'; /** * Smarty のラッパー */ class My_Smarty extends Smarty { /** * エラー時に例外を投げるか * @var boolean */ public $throw_exception = true; /** * trigger Smarty error * * @param string $error_msg * @param …

PHP Fatal error: Allowed memory size of *** bytes exhausted

php

PHPでFatal error: Allowed memory size of ****** bytes exhausted (tried to allocate ***** bytes) in .......のエラー( ****にはサーバーの設定値 )が出た。 php.iniの memory_limit = ***M の値を超えたらしい。 ログの in ..... のところは、メモリー…

Smartyでテーブルの隙間を詰める

<tr> [テーブル作成用のループ] {assign var='cnt' value=$record|@count} {if $cnt%5>0} {section name='loop1' start=$cnt%5 loop=5} <td>&nbsp;</td> {/section} {/if} </tr> このくらいが見やすいか… プラグイン作るほどでもないし。 もう少し考えれば if 文を省略できそう…

Zend_Loader

http://d.hatena.ne.jp/modified/20081220/1229771472とか前に書いたけれども。ZFでZend_Loader::registerAutoload();とか書いたら同じ事ができる。 ついでに速いらしい。 http://www.php-seed.net/blog/archives/57 速度もそうだけど、「いらないファイルは…

Eclipse + PTD で保管を充実させる。

メモメモ。※環境は Mac(10.5) + Eclipse(Ganymede) + Pdt(2.0) で Pleiadesで日本語化してます。 1.Php Include Pathの設定Phpインクルードパス → インクルードパスの構成 → ライブラリー → 外部ソース・フォルダーの追加。 基本はZendとSmarty。 Pearライブ…

PHPでの5つの共通デザインパターン

php

デザインパターンの教本のサンプルはJavaばっかりだけれども、オブジェクト思考ならばどの言語でも応用できる。とりあえずIBMから5つ。 5 つの共通 PHP デザイン・パターン http://www.ibm.com/developerworks/jp/opensource/library/os-php-designptrns/ デ…

autoload関数

php

PHPのバージョンが上がってからオブジェクト指向っぽい関数がいろいろ増えいる。 結構便利そうなのがクラスの __autoload 関数。クラスを呼び出した時に、ファイルをインクルードしてなくても自動で読み込んでくれる。 ZendFramework でやるならばindex.php …