ZendFramework Part2
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/03/05(水) 23:21:24ID:???http://framework.zend.com/
マニュアル
http://framework.zend.com/manual/ja/
m-takagi ver(↑よりたぶん新しい)
http://www.m-takagi.org/docs/php/zend/
API
http://framework.zend.com/apidoc/core/
0002nobodyさん
2008/03/05(水) 23:25:27ID:???来るべき時が来た。
その名は勇者「Zend Framework」
君は生き残ることができるか!?
0003nobodyさん
2008/03/06(木) 05:21:30ID:???ほんの一部ZF1.0.3本体を弄ったんだよなぁ、どこだったか思い出せん...orz
差分取るしかないか。
0004nobodyさん
2008/03/06(木) 16:16:28ID:???0005nobodyさん
2008/03/06(木) 18:15:35ID:???これってZend_Viewを使うこと限定なのか?
Zend_View使わずSmarty使ってるんだけど、そのままrenderできないのかな
0006nobodyさん
2008/03/06(木) 18:35:53ID:???require_once 'Zend/Form.php';
$form = new Zend_Form;
$form->setAction('/')->setMethod('post');
$form->addElement('text', 'name');
echo $form->render();
出力「error」
00083
2008/03/07(金) 01:17:52ID:???ん? ZFを自分のリポジトリにつっこんで差分取ったり管理しろってことかな?
弄ったのはどこかの正規表現だったかな。
まぁupdateの度にdiffで確認するよりSubversionにつっこんだ方が楽だろうけど、
で、実際はどうする? 俺はZF1.0.3で初めて使ったんだけど、
1.0.3をsvnにつっこんで、branch分けしてそこに俺々修正したものをつっこむ。
1.0.4をtrunkでupdateしてbranch側でmergeって感じになるのかな。
0009nobodyさん
2008/03/07(金) 03:49:03ID:???00103
2008/03/07(金) 04:59:24ID:???そう、俺もそう思う。
弄ったのはバグだろうと思われるところだけ。
どうせそのうち修正されるだろうと思ってたから
ちょっと悩んだんだけど、継承せずに直で弄った。
確かググったら出てくる有名どころのバグだったと思うよ。
だから、修正箇所をちゃんと控えてupdateしたときに確認すればいい程度なんだろうけど、
ZFを初採用してバタバタしてたから控えてなかったのだ(´・ω・`)
0011nobodyさん
2008/03/07(金) 05:00:54ID:???00123
2008/03/07(金) 08:55:10ID:???有名どころって書いたのはmb_encode_mimeheaderが入れる改行だったんだけど、
こちらはZF本体を弄る必要がないね。
ひとつはZF入門本に載っていたZend_Mailのバグなんだけど、
本当にバグなんかな? 1.0.4でも修正されてないし、修正しなくてもよさそうな気もするが、
検証せずにとりあえず適用してる。
あと、Zend_DateのRFC2822の正規表現。これはZFが悪いんじゃなくて
某メール鯖が悪いんだけど、正しく拾えないので悩みつつZF側を修正した。
/**以下チラシの裏
trunkに1.0.3をつっこむ
1.0.3を分岐して俺々修正
trunkに1.0.4をつっこむ
1.0.4を分岐して1.0.3の俺々修正をmerge
ってなかんじでやってみた。
1.0.4つっこんだときに1.0.3との差分を見たけど
1000以上のファイルで修正されてた。
追加されてたのは5ファイルだけ。
**/
0013nobodyさん
2008/03/07(金) 14:48:59ID:???なんとか自前で継承して挙動の変更できないか検討して
止むを得ず本体のコードを変更する場合は
その該当ファイルのみコミットしておくかな、自分なら
rubyは再定義しやすいから
FWの一部分の挙動をちょろっとだけ変えるってのも楽なんだがな
0014nobodyさん
2008/03/07(金) 22:38:40ID:???0015nobodyさん
2008/03/08(土) 00:28:19ID:???framework.zend.com/issues/browse/ZF-1950
00163
2008/03/08(土) 01:56:10ID:???で、例えばZend_Mailのバグフィックスとかデフォルト文字コードをISO2022JPに
変更したMy_MailをZend_Mailから継承して作ったとするでしょ。
当然クライアントコードにはrequire_once 'My/Mail.php'とか new My_Mail() などが
ちりばめられるのだが、将来ZF側でフィックスされたり文字コードもmbstring_language
から自動判別されるようになり、My_Mailはお役ご免になったりしても
クライアントコードをいちいち書き換えたりするのも馬鹿らしいので中身が空のMy_Mailを
引きずることになる。
どうせMy_*を管理しなきゃならんのならZF本体を弄っても手間はあまり変わらないよなぁ。
他の人はどうしているんだろうと悩みつつ、時間がないのもあって前回はZF本体を弄っちゃった。
幸い外からも接続できる鯖を持ってるし、svn+sshで接続可能な様にしているので、
ZF専用のリポジトリを作って管理していけば、出先からでもcheckoutやexportできる。
本来フレームワークを直接弄るなんて邪道なんだろうけど、それはZFの完成度がまだまだ
低いと言うことで納得して、逆にリポジトリを立てることによって、遠慮なしに弄っていけるから
ある意味"すっきり"した感じがする。
0017nobodyさん
2008/03/08(土) 02:28:39ID:???自分の意図してないように変更がかかったらどうすんの?
またFW本体をハックする?
あと、FWがバージョンアップしたら自分のリポジトリで管理しているバージョンと
マージするんよね?そっちの方が手間暇かかりそうな気がする。。。
まぁここらへんは人それぞれなんだろうけど。。。
俺はFW本体はいじらない派。
0018nobodyさん
2008/03/08(土) 02:42:05ID:???00193
2008/03/08(土) 03:17:30ID:???もろに修正箇所が衝突したら手動マージしなきゃならないが、
でなければマージそのものはそんなに手間かからないんじゃ?
と思ってる。
本体を弄らず継承でが王道で、本体を弄ってしまうのは邪道だとは思う。
Zend_Mailのデフォルト文字コードなんてのは、継承で書き換えるのが
どう考えても普通。Smartyなんかも結構弄ったけど、基本的には
継承したり、新たなプラグインやフィルターを書いてた。
でもね... まぁ人柱気分でやってみるよ。
本体再書き換えしなきゃならんときも出てくるだろうけど、
そのうち、拡張は別だが修正は減ってくるだろうと願ってる。
(まだそんなに弄ってないけど、弄りたいところは他にもあったし)
FW使いながら、貧乏コードって言われそうだ(^^;
0020nobodyさん
2008/03/08(土) 03:33:37ID:???0021nobodyさん
2008/03/08(土) 05:32:10ID:???0022nobodyさん
2008/03/11(火) 14:16:57ID:???同じZendからfile_get_contentsで読み込めないの?
0023nobodyさん
2008/03/11(火) 18:55:26ID:???0024nobodyさん
2008/03/11(火) 19:27:58ID:???0025nobodyさん
2008/03/12(水) 03:54:29ID:???0026nobodyさん
2008/03/13(木) 14:50:15ID:???0027nobodyさん
2008/03/13(木) 17:01:18ID:???0028nobodyさん
2008/03/13(木) 18:25:33ID:???対象が違うアクション(管理者向けの編集機能やユーザ向けの閲覧機能)が混在してるコントローラ
は別コントローラとして分けたほうがいいんだろうか
0029nobodyさん
2008/03/18(火) 00:48:46ID:???0030nobodyさん
2008/03/18(火) 01:11:51ID:???ウチが検証と移行を検討できるのはいつになることやら。。
0031nobodyさん
2008/03/18(火) 01:24:23ID:???0032nobodyさん
2008/03/18(火) 01:25:03ID:???全部英語おおおおおおおおおおおおお
書き換わってるうううううううううう
m-takagi・・・がんばって・・・ください・・・応援してます・・・
0033nobodyさん
2008/03/18(火) 01:52:51ID:???多分サイトリニューアル時の作業ミスだろうね。
0034nobodyさん
2008/03/18(火) 23:01:29ID:???0035nobodyさん
2008/03/25(火) 01:22:11ID:???[controller]/fooBar/ってリクエストのとき
以前はfooBarActionメソッドが呼ばれてたんだけど、foobarActionメソッドじゃないと呼んでくれなくなった。
0036nobodyさん
2008/03/25(火) 01:57:20ID:gUsYdsCkその辺は仕様変更された。
よく確認した上で、実装しる。
0037nobodyさん
2008/03/25(火) 02:09:06ID:???0039nobodyさん
2008/03/25(火) 03:36:46ID:???ごめん、悪いけどその辺りの話ってドキュメントのどこに書いてある?
テンプレートがハイフン区切りになったのは知ってたんだが、今回のは初耳で、
http://framework.zend.com/manual/ja/zend.controller.html
http://framework.zend.com/manual/ja/zend.controller.action.html
を見ても書いていなくて困ったんだ。
0040nobodyさん
2008/03/25(火) 04:20:41ID:gUsYdsCkこの辺が参考になるんじゃない?
http://framework.zend.com/manual/ja/zend.controller.migration.html
0041nobodyさん
2008/03/25(火) 21:28:57ID:???ありがとうございます。
しかし
> しかし、PHP の関数名は大文字小文字を区別しないので、URL 自体を camelCasing 形式で書くこともできます。
> PHP では大文字小文字を細かく区別しないため、 これらはどちらも同じメソッドを実行することになります。
などは、ビュースクリプトはダッシュ区切りにすべきものの、アクションリクエストとアクションメソッド名はどちらでも構わないように読み取れる。
どうも腑に落ちないので、ファイルの中を検証してみた。
1.5からは最終的にZend/Controller/Action.php 498行目の
if ($this->getInvokeArg('useCaseSensitiveActions') || in_array($action, get_class_methods($this))) {
でメソッドが存在するか確認されるようになっているが、ここで渡される$actionは既に小文字に正規化されているため、
大文字メソッド名だとin_arrayがfalseになってしまう。
ここのif文は
if ($this->getInvokeArg('useCaseSensitiveActions') || method_exists($this, $action)) {
である方がドキュメントのニュアンスに即しているのでは。
0042nobodyさん
2008/03/27(木) 15:12:28ID:???0043nobodyさん
2008/03/27(木) 17:47:06ID:???何が修正されたんだ
0044nobodyさん
2008/03/27(木) 21:47:41ID:???http://framework.zend.com/issues/secure/IssueNavigator.jspa?reset=true&&pid=10000&fixfor=10174&status=5&sorter/field=issuekey&sorter/order=DESC
0045nobodyさん
2008/03/31(月) 01:42:25ID:DgX3Qd/tなんか使いにくい感じがするんだけど・・・
独自のがいいのかね?
それとも使ってれば慣れる?
ZendController使ってる人
メリットデメリットあれば教えてぷりず!
0046nobodyさん
2008/03/31(月) 01:53:02ID:???0047nobodyさん
2008/03/31(月) 02:03:49ID:???URIとかアプリとしてセキュリティ的にいいのか?とか
Directory構成とか考えるとなんだかなぁと
使ったことないからそんなもんだといわれればそれまで
かもしれませんが
ZF使ったオープンソースとか何かありませんかね?
0048nobodyさん
2008/04/01(火) 00:44:20ID:???あとRequestObject、ReponseObjectあたりが割と使いやすくて気に入ってる
0049nobodyさん
2008/04/01(火) 01:06:58ID:???とても自分でルーティング周りやDispatcher周りを自分で一から実装する気にはなれんw
ま、オレオレFWにZend Frameworkをライブラリの一部として使うのはそれはそれでアリだと思うけど。
0050nobodyさん
2008/04/01(火) 01:08:31ID:???0051nobodyさん
2008/04/01(火) 14:48:39ID:7JV3dDHX0052nobodyさん
2008/04/01(火) 15:09:08ID:???低機能なだけ・・
0053nobodyさん
2008/04/05(土) 21:54:16ID:???ケーキや管弦楽とは別の見方でモノ提供してる感じだね
FW作るための土台みたいな感じ
0054nobodyさん
2008/04/05(土) 22:59:41ID:???0055nobodyさん
2008/04/05(土) 23:17:50ID:???symfonyって打ったほうが早いだろ
0056nobodyさん
2008/04/06(日) 00:02:17ID:???既に結構作られてそう。
0057nobodyさん
2008/04/08(火) 13:18:35ID:???Zend_Form 使ってるけど、速度的に重い気がする。
だから Zend_Cache でキャッシュしてる。
0058nobodyさん
2008/04/11(金) 21:49:28ID:???検索してもサイトによって書いてる事がばらばらだったりで。
ZFにあるinterfaceから継承したsmarty用クラスは作成しました。
ここからなにをすればいいんでしょう?
$opt = array(
'templete_dir' => '../application/views/scripts/index',
'compile_dir' => '../../var/templates_c'
);
$smarty = new Common_View_Smarty(null, $opt);
$smarty->assign("books", "テスト");
$smarty->render("index.tpl");
これがアクション内の記述なんですが、何か変なところはあるでしょうか?
やったことは、
・PHP.iniにsmartyのincludeパスを通す。
・ttp://wadslab.net/2008/03/zend_view_smarty/
を参考にZend_View_Interfaceを実装したCommon_View_Smartyを作成
・index.phpの中身は
Zend_Session::start();
Zend_Controller_Front::getInstance()->setParam('noViewRenderer',true);
Zend_Controller_Front::run('../application/controllers');
これだけ
でIndexController.phpの中のindexActionに↑の奴を書いています。
エラーがでるでもなく、真っ白な何もない画面が表示されてしまいます。
0059nobodyさん
2008/04/11(金) 22:56:44ID:???0060nobodyさん
2008/04/11(金) 23:16:02ID:???画面に何も表示されないので、まずテンプレートファイル自体読み込めてないと思うんですが
$opt = array(
'templete_dir' => '../application/views/scripts/index',
'compile_dir' => '../../var/templates_c'
);
$smarty = new Common_View_Smarty(null, $opt);
$smarty->assign("books", "テスト");
$smarty->render("index.tpl");
この下に
echo 'てすと'
と書くと、てすとだけ表示されます。
なのでこのアクションは呼び出されているけど、上の方の処理が意味をなしてない?ようですが
どこで間違ってるのかが突き止められない状態です。
せめてphpのエラーメッセージがでればまだおいかけられるんですが、一見エラーがないように素通りするので・・・
0061nobodyさん
2008/04/11(金) 23:42:39ID:???ViewRendererに登録してZend_Viewを置き換える方法と
Zend_Viewを無効にしてアクション内でSmartyのrenderメソッドを呼び出す方法の2通りがある。
俺は前者でやっているが、後者でやるならマニュアルの42.3.2.2.にそのまんまの方法が載っているからそれ参考にすればおk。
そのサイトの怪しげな方法を参考にする必要は無い。
強いていうならそれはテンプレートディレクトリが正しく指定されてないと思われ。
0062nobodyさん
2008/04/12(土) 00:11:46ID:???マニュアルのはこれですよね?
一番最初はこれを見てやってたんですが、結局できず色々検索した次第です。
前述しましたが、interfaceを使ってsmarty用の,このマニュアルで言うところのZend_View_Smartyは作成しています。
このマニュアルで言うと、後は
$view = new Zend_View_Smarty();
$view->setScriptPath('/path/to/templates');
$view->book = 'Zend PHP 5 Certification Study Guide';
$view->author = 'Davey Shafik and Ben Ramsey'
$rendered = $view->render('bookinfo.tpl');
これすればいいだけなんですよね?(テンプレートファイルの配置は終わってるとして)
これだとテンプレートファイルのパスは指定していますが、templates_cのパスは指定してませんよね。
なしでもいけるんでしょうか?
このマニュアルのインターフェースを継承したsmarty用のクラスは作成して
マニュアル通り、アクション部分に↑の5行ほどのプログラムを書き、テンプレートファイルも適宜設置済み。
で実行してもやはり真っ白なんですが、何かが足りないんでしょうか。
テンプレートディレクトリが間違ってるかもしれないと、何十通りか考えられる全てパスは試してみましたが、やはり無理でした。
0063nobodyさん
2008/04/12(土) 00:33:44ID:???0064nobodyさん
2008/04/12(土) 00:40:04ID:???は設定済みです。
なのにエラーが出ない状態です。
0065nobodyさん
2008/04/12(土) 00:45:03ID:???みたいなところがおかしいと真っ白になるよね
0066nobodyさん
2008/04/12(土) 01:15:36ID:???0067nobodyさん
2008/04/12(土) 01:17:28ID:???ViewRendererに登録しないでやるんだったら、自分でZend_Controller_Response_HttpのsetBody()に登録せんと。
・コントローラ
$this->_view = new Zend_View_Smarty();
$this->_view->setScriptPath('/path/to/templates');
$this->_view->book = 'Zend PHP 5 Certification Study Guide';
$this->_view->author = 'Davey Shafik and Ben Ramsey'
・コントローラのpostDispatch()にこんな感じで書く。
$rendered = $view->render('bookinfo.tpl');
$this->getResponse()
->setBody($this->view->render($rendered));
こんな感じでどう?
0068nobodyさん
2008/04/12(土) 01:20:50ID:???$rendered = $view->render('bookinfo.tpl');
↓
$rendered = $this->_view->render('bookinfo.tpl');
0069nobodyさん
2008/04/12(土) 01:27:39ID:???0070nobodyさん
2008/04/12(土) 02:17:04ID:vLVKIeUG//Zend_Controller_Front::run('../application/controllers');
$front = Zend_Controller_Front::getInstance();
$front->addControllerDirectory('../application/controllers');
$front->throwExceptions(true);
try {
$front->dispatch();
} catch(Exception $e) {
echo nl2br($e->__toString());
}
0071nobodyさん
2008/04/12(土) 09:16:17ID:???0072nobodyさん
2008/04/12(土) 15:22:15ID:???はい、使えています。
>>67
参考に色々やってみたら、少し進んだような手応えがありました。
テンプレートの読み込みまではいったようです。
ただ、テンプレートの中に{$test}のようなsmartyタグを書くとエラーが出ます。
一切タグのない純粋htmlを読み込んでrenderするだけならできています。
テンプレートの中にタグを埋め込むと
Fatal error: Smarty error: [in index.tpl line 6]: [plugin] modifier 'sanitize' is not implemented (core.load_plugins.php, line 118) in
ライブラリのパス Smarty.class.php on line 1092
というエラーがでてしまいます。
恐らくこれを解決すれば表示されるのではないかと思いますが、エラーで検索してみてもこれといった解決法が見つかりませんでした。
in index.tpl line 6
この行に{$book_name}のようなタグがあります。
0073nobodyさん
2008/04/12(土) 15:57:34ID:???何をやったの?
> sanitize
カスタム関数のsanitizeファイルが無いんでしょ。
0074nobodyさん
2008/04/12(土) 15:59:52ID:???Zendのオフィシャルじゃなくて、少し改良したらしい他のサイトの継承クラス使ってたのが原因でした。
Zendオフィシャルのにしたらエラーは出なくなりましたが、表示はやはりでませんでした。
テンプレートには{$book_name} が埋め込んであります。
実行すると、コンパイル済みディレクトリにファイルが出来てそのタグを埋め込んだ部分が
<?php echo $this->_tpl_vars['book_name']; ?>
となっていました。
そのファイルではそうなっているんですが、Webでアクセスするとその部分が綺麗さっぱり消え去ってしまっています。
そのファイルのタグ該当部分の違いですが
テンプレファイル:{$book_name}
コンパイルファイル:<?php echo $this->_tpl_vars['book_name']; ?>
Webでアクセスしたページのソース:なにもなし
こんな状態です。
0075nobodyさん
2008/04/13(日) 17:59:08ID:???book_nameに値が入ってないんじゃね
0077nobodyさん
2008/04/22(火) 23:30:49ID:???すげーZF好きになった。
ZFの方が記述が納得しやすいと思う。
0078nobodyさん
2008/04/23(水) 00:19:31ID:???0079nobodyさん
2008/04/23(水) 00:22:18ID:???特にとんがった工夫も特徴もない標準的な実装がZF
0080nobodyさん
2008/04/23(水) 11:57:54ID:???0081nobodyさん
2008/04/23(水) 20:59:08ID:???と思ってたら本当にやりやがった。
マジかよw
な事になると思うよ。
Zendはいつもそうだもの。
0082nobodyさん
2008/04/23(水) 21:23:45ID:???マジかよw
0083nobodyさん
2008/04/26(土) 02:06:01ID:5isAEf4Oなんででしょう?
0084nobodyさん
2008/04/26(土) 02:15:12ID:???0085nobodyさん
2008/04/26(土) 03:22:30ID:???0086nobodyさん
2008/04/26(土) 03:46:35ID:faNVTaZiとすると、Zend_Date_Exceptionが1018行目から飛んできます。
第一引数に以下のような配列を渡すと正常にインスタンスが生成できます。
(※定数START_TMEの中身はtime()の戻り値です)
$dateArr = array(
'year' => date("Y", START_TIME),
'month' => date("m", START_TIME),
'day' => date("d", START_TIME),
'hour' => date("H", START_TIME),
'minutes' => date("i", START_TIME),
'second' => date("s", START_TIME));
Zend_Dateの199行目の以下のメソッドの戻り値がタイムスタンプでるので、
その後の処理で例外が飛んでいるのは何となく分かりました。
(以下の後にコールされるsetTimeZone()の中で、timezone_open($zone)で$zoneがintのタイムスタンプなのでこけているようです。)
$zone = $this->getTimezoneFromString($date);
リファレンスによると、引数なしでコールした場合は、
勝手に'now'なインスタンスが生成されるようなのですが、
同じような現象が起こった方はいらっしゃいますでしょうか。。
Zend_Dateのバージョン記述は以下です。
@version $Id: Date.php 8943 2008-03-20 21:43:37Z thomas $
これって既知のバグなのでしょうか。
それともこちらの何がしかの設定の問題なのでしょうか。。
事前にdate_default_timezone_set('Asia/Tokyo');は行っています。
0087nobodyさん
2008/04/26(土) 04:05:06ID:???008886
2008/04/26(土) 04:41:19ID:???こんなです。
<?php
define('START_TIME', time());
define('START_DATE', date("Y/m/d H:i:s", START_TIME));
define('APP_ROOT_DIR', dirname(dirname(dirname(__FILE__))));
define('DIR_SEP', DIRECTORY_SEPARATOR);
define('APP_LIB_DIR', APP_ROOT_DIR . DIR_SEP . 'library');
error_reporting(E_ALL);
set_include_path(APP_LIB_DIR . PATH_SEPARATOR . get_include_path());
date_default_timezone_set('Asia/Tokyo');
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
set_error_handler(array('My_ErrorHandler', 'userErrorHandler'));
$date = new Zend_Date();
008986
2008/04/26(土) 04:43:14ID:???今気がつきましたが、set_error_handlerの前でnew Zend_Date()だと、例外が飛んできません(正常にインスタンス生成できる)
0090nobodyさん
2008/04/26(土) 04:48:52ID:???009286
2008/04/26(土) 05:24:31ID:???すみません。自己解決しました。
初めの説明がちょっとおかしかったりしてるので補足します。
Zend_DateObjectの1016行目で、(ここ最初にちゃんといえてなかったです)
if (!@timezone_open($zone)) {
となっていますが、このZend_Dateのコンストラクタの第一引数がnullだと、
上記の$zoneがintのタイムスタンプで入ってきます。
そうすると、timezone_open()はタイムゾーン文字列が渡されることを期待しているので、
E_WARNINGを発しますが、@で抑制されます。(通常は。)
しかし、独自のエラーハンドラをすべてのエラーレベルに対して設定していて、
そのハンドラの中で@付きのエラー(ハンドラ内でのerror_reporting()の戻り値が0の場合)に対して適切な処理を行っていないと、
本来の@によるエラー抑制は無視され、処理が停止します。
このためnew Zend_Date(パラメータなし)がこけていました。
これは、Zend_Loaderの160行目でもおきます。。
(独自エラーハンドラのせいで@fopen()の@が効かないので)
E_WARNINGに対しても独自のエラーハンドラを適用している場合は、ZFでは色々と気をつけないといけないみたいです。
以上、お騒がせしました。
0093nobodyさん
2008/04/26(土) 13:15:49ID:???error_reportingのチェックは必須
ZFとかに限ったことじゃないぜ
0094nobodyさん
2008/04/26(土) 21:29:22ID:???Zend_Loaderの160行目の fopenの@は いろいろな問題を引き起こしているわけだけれど、、
さまざまなモジュールとの絡み合っている問題が多くて、どうしたものか悩んでます
http://framework.zend.com/issues/browse/ZF-2985
009592
2008/04/27(日) 06:13:29ID:???これじゃだめなんですかね?
自分は↓みたいにしてます。(Zend_Loaderそのものを)
// if (!$fh = @fopen($filename, 'r', true)) {
// return false;
// }
// return true;
add> clearstatcache();
add>
add> if ( is_readable($filename) ) {
add> return true;
add> }
add> $include_path = get_include_path();
add> $path_list = explode(PATH_SEPARATOR, $include_path);
add>
add> foreach ( $path_list as $path ) {
add> $fullpath = $path . DIRECTORY_SEPARATOR . $filename;
add>
add> if ( is_readable($fullpath) ) {
add> return true;
add> break;
add> }
add> }
add> return false;
009694
2008/04/27(日) 16:07:42ID:???fopenはinclude_pathを考慮してファイル取得できるのに、file_existsはinclude_pathを考慮できないのがデメリットなのだそうです
0097nobodyさん
2008/04/28(月) 10:22:32ID:zm3zzhzx0098nobodyさん
2008/04/30(水) 13:59:47ID:???http://FQDN/controller/01
Actionメソッドの定義の仕方がわからない・・・orz
0099nobodyさん
2008/04/30(水) 14:48:12ID:???actionメソッド名は適当につけてroutingで変えればいい
0100nobodyさん
2008/04/30(水) 17:55:35ID:???アダプタはPdo_Pgsql。
0101nobodyさん
2008/04/30(水) 18:12:00ID:???■ このスレッドは過去ログ倉庫に格納されています