トップページphp
1001コメント368KB

Zend Framework Part4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/02/09(火) 22:21:24ID:???
公式
http://framework.zend.com/

マニュアル
http://framework.zend.com/manual/ja/

翻訳状況
http://mikaelkael.dyndns.org/checker/language/details/lang/ja
http://framework.zend.com/wiki/display/ZFDEV/Japanese+(Nihongo)

バグ報告
http://framework.zend.com/issues/secure/Dashboard.jspa

API
http://framework.zend.com/apidoc/core/

前のスレッド Zend Framework Part3
http://pc11.2ch.net/test/read.cgi/php/1239320100/
0412nobodyさん2010/07/05(月) 14:56:06ID:???
>>411
あ、RouterでPlugin登録してるわけじゃないよ。

Module別Bootstrapはあるけど、
Module別Pluginが欲しかったから
Routeされた段階で遅延登録されるようにした。

Host数=Module数は30個くらい?で、
その中でもさらにサブドメイン(?)をパラメータにして
いろいろやってた。

ちなみに今のバージョンでどうなのかは知らない。。
0413nobodyさん2010/07/05(月) 15:00:43ID:???
あとroutesの設定ファイルがXMLで
route要素もextendsとか多用してて複雑になってたから
標準のRoute_Hostnameだと
対応できなかったから自作したんだっけかな?
0414nobodyさん2010/07/05(月) 15:05:19ID:???
そうだ思い出してきた。

まず正規表現でHostnameからパラメータ取得したかったのと、
その際にPunycodeをデコードしたかったんだった。
0415nobodyさん2010/07/05(月) 15:48:35ID:???
なるほどねー
おれだったら、正規表現はmod_rewriteで済ませて、
デコードはルーティングに入る前にプラグイン処理だな。
もしくは、RouterじゃなくてRouteで。
まぁ、Routerでもいけるだろうけど。
0416nobodyさん2010/07/05(月) 17:46:39ID:???
ぷに〜コードのデコードめんどくさくてフレームワーク放棄した俺とは大違いだ(笑)
0417nobodyさん2010/07/13(火) 22:41:12ID:???
よくPlugin作ってdispatchLoopStartupに認証や共通処理をうんぬんって見るけどさ、
画像のリンクが切れてるだけでdispatchLoopStartup何回も走るとかうぜぇ・・
0418nobodyさん2010/07/14(水) 00:21:27ID:???
「画像のリンクが切れてるだけ」と事前に判別出来るなら、
dispatchする前に別処理へ移行すればいいだけの話だ
0419nobodyさん2010/07/14(水) 05:41:59ID:???
>>417
mod_rewriteで対処でしょ jk
0420nobodyさん2010/07/16(金) 15:47:04ID:???
Zend_FormでsymfonyにあたるsfFormのsetNameFormatってどうやったらいいの?
0421nobodyさん2010/07/22(木) 09:02:40ID:8xnHx2ro
初心者です。
ネットとかみてZend_Fromを勉強中ですが、デコレーターとかのファイルを
どこに置いていますか?
Contoroller内?????
0422nobodyさん2010/07/23(金) 14:07:23ID:???
フィルタじゃね
0423nobodyさん2010/07/30(金) 23:46:03ID:???
なぜか1.10.7がダウンロードできた
0424nobodyさん2010/08/07(土) 14:32:30ID:???
1.1から2.0は簡単に移行できるの?
0425nobodyさん2010/08/07(土) 22:28:35ID:???
2.0ってnamespaceとか使うから
簡単にはいかないんじゃない?
使わないの?
0426nobodyさん2010/09/01(水) 17:07:49ID:???
どうも。

MySQLを使用してるのですが、単純なサブクエリを実装して、
ZendFrameWork経由でデータを取得しようとしたのですが、
取得できませんでした。

発行しているSQLをコマンドラインで実行すると
ちゃんとデータを取得できました。


ZendFrameWorkってサブクエリが使用できないなどといった
制限があったりするのでしょうか?
04274262010/09/01(水) 17:14:57ID:1WzgUIV/
すみません。

バインドも使っています。
0428nobodyさん2010/09/01(水) 17:27:19ID:???
「できませんでした」の詳細を書かないとわからんわ
0429nobodyさん2010/09/02(木) 01:35:42ID:???
バインドされている値が間違ってるとかじゃね?
04304262010/09/02(木) 14:41:33ID:bqeUspcn
>>428 429

こんな感じのSQLを投げてます。
select colA1,colA2 (select count(colB3) from tableB where colB4 = :bind1 and colB5=bind2)as col3 from tableA where colA6 = :bind1 and colA7 = :bind2 and colA8 = 'hoge';

バインドを使用しているbind1とbind2の部分に直接値を記述すると
レコードは取得できるのですが、
プログラムからbind機構を使うとレコードを取得できません。

select colA1,colA2 (select count(colB3) from tableB as b where colB4 = a.colA6 and colB5=a.colA7)as col3 from tableA as a where colA6 = :bind1 and colA7 = :bind2 and colA8 = 'hoge';
とした場合はうまく動きました。

bind変数を複数個使っているのが原因でしょうか?
無知な私に救いを。
よろしくお願いします。
0431nobodyさん2010/09/02(木) 22:02:42ID:VdyJTTz3
>>430
実際の呼んでる所のコードも書かないと分からんよ。
0432nobodyさん2010/09/03(金) 00:06:56ID:???
>>430
SQLエラーやPHPエラーは出ていない?

Zend_Db_Profilerやらで、Zend_Dbから発行されているSQL文を検証してごらん。
0433nobodyさん2010/09/04(土) 16:12:12ID:???
あ、自己解決しました。
04344262010/09/06(月) 11:06:46ID:???
>>433
まだ自己解決していないです。

>>431
このような感じで実装しています。

//バインドの設定
$bind = array('bind1'=>'aaa1','bind2'=>'bbb2');
//クエリの実行$dbInfoの中にはDBへの接続設定が入っています。
$db = new Zend_Db_Adapter_Pdo_Mysql($dbInfo);
$stmt = $db->query($sql,$bind);
$rows = $stmt->fetchAll();
としています。

$rowsの中をダンプで出力すると、
select colA1,colA2 (select count(colB3) from tableB where colB4 = :bind1 and colB5=bind2)as col3 from tableA where colA6 = :bind1 and colA7 = :bind2 and colA8 = 'hoge';
の場合は何もデータがないarray()。

select colA1,colA2 (select count(colB3) from tableB as b where colB4 = a.colA6 and colB5=a.colA7)as col3 from tableA as a where colA6 = :bind1 and colA7 = :bind2 and colA8 = 'hoge';
の場合はレコードが取得できています。

>>432
SQLでも、PHPでもエラーは何も出ておりませんでした。。。

Zend_Db_Profilerで出力される情報を
バインド変数で指定している箇所に埋め込むと
しっかりとレコードが取得できました。
ホントにちんぷんかんぷんチンプイワン太夫です。

どうぞよろしくお願いいたします。
0435nobodyさん2010/09/06(月) 21:31:31ID:???
>colB5=bind2

普通にここ、コロンがないよね
0436nobodyさん2010/09/07(火) 03:37:56ID:eLHDoNIE
よろしくお願いします。zend_dbのトランザクションを以下のようにしています

$t_kihon = $this->_config->table->scheduleKihon;
$t_player = $this->_config->table->schedulePlayer;
$where_kihon = array(
$this->_dbConn->quoteInto('uId=?', $uId),
$this->_dbConn->quoteInto('uType=?', $uId),
$this->_dbConn->quoteInto('id=?', $deleteId)
);
$where_player = array($this->_dbConn->quoteInto('evId=?', $deleteId));

try{
$this->_dbConn->beginTransaction();
$ret_k = $this->_dbConn->delete($t_kihon, $where_kihon);
echo "基本>".$ret_k;
echo "<br />";
$ret_p = $this->_dbConn->delete($t_player, $where_player);
echo "出演者>".$ret_p;
echo "<br />";
$ret_c = $this->_dbConn->commit();
echo "commit>".$ret_c;
echo "<br />";
$commit = 1;
}catch (Zend_Db_Statement_Exception $e){//トランザクション失敗
$this->_dbConn->rollBack();
print($e->getMessage());
}catch (Exception $e){
print($e->getMessage());
}

つづきます
04374362010/09/07(火) 03:39:11ID:eLHDoNIE
この処理で、$where_kihonの中で一カ所故意に間違えているので('uType=?', $uId)
echo "基本>".$ret_k;の結果は「基本>0」となるものの、
echo "出演者>".$ret_p;の結果は「基本>1」となり、
実際にテーブルから該当情報が削除されてしまいます。なぜでしょうか?

$t_kihon向けのクエリが失敗しているのだから、$t_player向けのクエリも失敗し
ロールバックするのでは?と思っていましたが違うんでしょうか?
なお、echo "commit>".$ret_c;の部分の出力はされません

Zend_dbの知識以前の話になっているかもしれませんが、すみませんが
ご意見よろしくお願いします
0438nobodyさん2010/09/07(火) 10:34:39ID:an1mTvTq
Zend FrameworkのMVCモデルを使ってます。
エラーになった場合、ほとんどのケースで
'Invalid controller specified (error)'
のエラーメッセージしかでなくてどのが悪いのか
みつけるのにすごく時間がかかるのですが、
これが普通なのでしょうか?
0439nobodyさん2010/09/07(火) 11:57:19ID:???
設計が悪いとしか。ソフトの勉強した事無いでしょ?
0440nobodyさん2010/09/07(火) 12:48:16ID:an1mTvTq
>>439
工夫しないとそうなるということですね?
それについての資料などありませんか?


04414262010/09/07(火) 12:56:14ID:???
>>435
すみません。その箇所は転載時の発生した誤りになります。
実際はしっかりと「:」を入れているので、
SQLの構築でのエラーも出ていない状況なんです。

なんとも不可思議な感じです。
0442nobodyさん2010/09/07(火) 13:40:25ID:jaTKXsd6
>438
errorコントローラがないっていってるので作ってその中で(開発時のみ)色々情報出力すればOK
例外handlingはここ読むべし
ttp://framework.zend.com/manual/ja/zend.controller.exceptions.html
0443nobodyさん2010/09/07(火) 13:41:23ID:QU8+yQCW
>>441
DB側でログ取って、どんなSQLになっているか見てみて

>>438
エラーコントローラーを無効にして、エラーを表示したらいいよ。
0444nobodyさん2010/09/07(火) 15:07:59ID:an1mTvTq
>>442,443
ありがとうございます。調べてみます。
0445nobodyさん2010/09/07(火) 21:53:55ID:???
>>441
要はPDOのpreparedが普通に使えるかってことだろ?
テストしてみればすぐわかるんじゃね?下で普通に動いたけどな。

    $queryString = "select colA1,colA2, (
                        select count(colB1)
                        from tableB
                        where colB2 = :bind1 and colB3 = :bind2
                       )as colA3
            from tableA
            where colA6 = :bind1 and
               colA7 = :bind2 and
               colA8 = 'hoge'";

    $dbAdapter = Zend_Db::factory('PDO_MYSQL', $info));

    $stmt = $dbAdapter->prepare($queryString);

    $parameters = array(':bind1',':bind2');
    $values = array(1, 2);

    $stmt->bindValue($parameters[0], $values[0]);
    $stmt->bindValue($parameters[1], $values[1]);
    $stmt->execute();
    $data = $stmt->fetchAll(PDO::FETCH_OBJ);
    $stmt->closeCursor();
04464262010/09/11(土) 16:05:36ID:???
>>443
SQLにも問題なさそうでした。
副問い合わせのバインド変数の名称に
別のものを指定すると、こちらの期待通りの動きになりました。

釈然としませんが、とりあえず、プレースホルダの名称を別のものにして
やっていってみたいと思います。
0447nobodyさん2010/09/15(水) 06:29:22ID:c+gNv7dN
>>446
DB側でログとってないでしょ。
うまくいったときと、いかないときと同じSQLが発行されているわけがない。

スペルミスでした、って正直に書けないのかな
0448nobodyさん2010/09/15(水) 10:49:01ID:???
いちいち余計なこと言わないと気がすまないのも面倒な性格だな。俺とかw
0449nobodyさん2010/09/15(水) 10:57:10ID:???
ZFをやるならdwooも覚えたほうがいいよ
zendは公式サイトで解説してるほどdwooを押してるからね
0450nobodyさん2010/09/15(水) 15:39:54ID:???
dwooってなんて発音するの?
0451nobodyさん2010/09/17(金) 01:02:51ID:???
ドゥヲゥ!!
04524492010/09/17(金) 12:21:09ID:???
一応ページはここね
http://devzone.zend.com/article/12322
0453nobodyさん2010/09/17(金) 14:55:33ID:???
公式と言っても、そのサイトはPHP関連の技術全般を紹介するブログみたいなもので
ZendがDwooを特別にプッシュしてるわけではないのでは?
0454nobodyさん2010/09/17(金) 15:27:29ID:???
Vikram Vaswaniさんがこういう使い方もできますよって紹介記事書いてるだけだな
SoftwareDesignとかWeb+DB Pressの記事みたいなもんだ
0455nobodyさん2010/09/17(金) 17:17:36ID:???
>>449
それ言ったらsymfonyだって解説してたわけだが
0456nobodyさん2010/09/18(土) 00:21:20ID:???
>>449
それ言ったら公式ドキュメントにはSmatryViewの作り方まで載ってるぜ
0457nobodyさん2010/09/18(土) 03:15:59ID:HoVONag+
質問なんだけど、リクエストオブジェクトで $_FILESに当たるものを取得するにはどうしたらいいの?
無理なのかな。無理だとしたらどうやって取得すべき?
getParam('picture')とかやったんだけど無理だった。すみませんが教えてください
0458nobodyさん2010/09/18(土) 13:16:26ID:???
Zend_Form_Element_File を調べて、関連記事から他人がどうやってるか見るよろし
0459nobodyさん2010/09/19(日) 00:06:18ID:uSiTgTXw
>>458
ありがとうございます
しかしzend_formって扱いにくいんで使ってないんだけど、$_FILESの制御のために導入するなんて…
みんなzend_form使ってるの? そんなに便利?
0460nobodyさん2010/09/19(日) 00:27:48ID:iCptYkYB
>>459
ドキュメント読もうぜ。
http://framework.zend.com/manual/ja/zend.file.transfer.introduction.html
0461nobodyさん2010/09/19(日) 03:19:18ID:???
馬鹿にはzendは無理。
0462nobodyさん2010/09/19(日) 04:20:52ID:???
>>457-
>無理なのかな。無理だとしたらどうやって取得すべき?
Zend_Formを使っていないのであれば、
リクエストオブジェクトを継承した$_FILESも取得出来る子クラスを作るのが良いかと・・・
(もし必要であれば、その子クラス中でZend_Formを使えばいいし)
0463nobodyさん2010/09/19(日) 17:59:19ID:???
Zend_OpenIdの
TODO: OpenID 2.0 (7.3) XRI and Yadis discovery
がなくなってたから、
yahoo.co.jpやmixi.jpでログインテストしてみたんだけど、
エラーになっちゃう・・・

まだ対応してないのかな?
0464nobodyさん2010/09/22(水) 17:02:23ID:???
ところでさ、Zend Framework とその後ってぶっちゃけどうよ
おれもそこそこ使ってきたけど、新規案件で使うべきか迷ってる
使うなら、2.0を試すべき?
0465nobodyさん2010/09/23(木) 00:18:04ID:???
>>464
今まで使っていて新規案件で使わない理由は?
0466nobodyさん2010/09/23(木) 01:19:05ID:???
オートロード楽チン
ブートストラップ書けば大抵どうにかなる
ビューが無駄に適当でPHPそのまま
中のクラスが単体でも呼べる
外部モジュールのラッパークラスが多い

粗結合いいとこ取りだけどなんかperlぽい気がするんだよね
0467nobodyさん2010/09/23(木) 02:38:04ID:???
>>459
ZendFormは確かに使いづらいけども、他に選択肢がなくね?
ZendForm使わないで、フォームどうしてるの?
煽りとかじゃなくて普通に疑問なんだけど、
↓こんな感じなの?

<select name="Hoge">
<option value="1" <?php if ($value == 1) echo "selected"; ?>>
<option value="2" <?php if ($value == 2) echo "selected"; ?>>
</select>
0468nobodyさん2010/09/23(木) 02:52:30ID:az/C8i5M
>>467
View Helper 使えばいいんじゃね?
0469nobodyさん2010/09/23(木) 02:59:54ID:???
>>467
sfForm
0470nobodyさん2010/09/23(木) 04:12:58ID:???
えっフォームの部分だけSymfony使うの?
0471nobodyさん2010/09/23(木) 04:36:38ID:???
ZendFormはオブジェクト組み立ててバリデータだけ使ってる
0472nobodyさん2010/09/23(木) 08:21:59ID:???
>>470
symfony使わなくてもフォームだけ抜き出して使える
0473nobodyさん2010/09/23(木) 10:21:11ID:???
>>465
リリースタイミング的にphp5.3もしくは6でメンテ&追加開発していくので、
そのメリットを生かせるFWにしようかと。
0474nobodyさん2010/09/23(木) 10:45:19ID:???
え?PHP6て白紙になったやつだけど?
0475nobodyさん2010/09/23(木) 14:16:25ID:???
そうだったね。ってことでphp5.3なんだけど
04764592010/09/23(木) 16:26:48ID:???
>>467
smartyと組み合わせてる。
zendformとsmartyが共存出来るかわからないけど、
smartyで自前の関数用意して
<select name="prefecture">
{$val|selecterChk:"prefecture"}
</select>
とかなんとかやって呼び出して解決する方法になれすぎちゃってzendFormに
入れなくなっちゃった。
0477nobodyさん2010/09/23(木) 16:40:00ID:y1pwafIu
zend_dbのdeleteメソッドについて質問させてください。

以下のdelete処理を実行したところ
-----------
 echo "picTblId>>".$picTblId;
 echo "reportId>>".$reportId;

 $where = array(
  $this->_dbConn->quoteInto('id=?', $picTblId),
  $this->_dbConn->quoteInto('reportId=?', $reportId)
 );
 $retP = $this->_dbConn->delete($t_pic, $where);
========

以下のエラーが出ました。
-----------
 picTblId>>7
 reportId>>41

 SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
 check the manual that corresponds to your MySQL server version for the right syntax to use
 near 'WHERE `id` ='41' AND `reportId` ='41'' at line 9
========

エラー文の中で、`id`='41'ってなってるのが理解できません。7のはずでは?
また at line 9 となっていますが、このクエリ処理を書いているモデルファイル(.php)は
2000行くらいあって、この処理は9行目なんかに書いていません。
実際の9行目はクラスの宣言部分です。
どう考えたら良いのでしょうか、ご意見お願いします。

php5 ZF1.10です。
0478nobodyさん2010/09/23(木) 17:11:52ID:???
とりあえず、quoteIntoの返り値を見てみたら?
で、9行目ってのはSQL文の9行目じゃね?
04794772010/09/23(木) 18:00:12ID:y1pwafIu
>>478
おお、どうもありがとうございます!

 $where = array(
  $this->_dbConn->quoteInto('id=?', $picTblId),
  $this->_dbConn->quoteInto('reportId=?', $reportId)
 );
 var_dump($where); 

としたところ、
array(2) { [0]=> string(6) "id='7'" [1]=> string(13) "reportId='41'" }
となりました。ちゃんと入ってる…

>で、9行目ってのはSQL文の9行目じゃね?
納得です。
生成されたクエリ文を表示する方法はないんでしょうか?
04804772010/09/23(木) 18:55:24ID:???
すみません、解決しました。
詳細は下らな過ぎて書きませんが自分の凡ミスでした。

一つだけ気になってるんですが、Zend_dbクラスでの deleteメソッドで生成されるクエリ文を
確認する方法はないんでしょうか?
Zend_db_tableのselectメソッドだと __toStringを使って出来ますよね?
それに似たものはないのかなと… 
0481nobodyさん2010/09/25(土) 13:12:44ID:???
>>476
なるほど、既存のリソース(pluginだっけ?)を生かせるし、そういうのはありですね。

偏見かもしれないけど、ZendのFormはせっかくPHPが柔軟な言語なのに、
なんか無理矢理オブジェクト指向にしてる気がする。

まあ確かに利点もあるとは思うけど、場合によってはデメリットも目立つよね。
べた書きなら数行で済むような簡単なフォームでもZendFormだと数十行になっちゃう事とかあるし。

特にSmartyと組み合わせる前提なら、ZendFormとは相性が悪いし、デメリットばっかりになりそう。
0482nobodyさん2010/09/25(土) 13:25:53ID:???
>>480
実行後でいいなら、profilerでできる気がする

$profiler = $dbAdapter->getProfiler();
var_dump($profiler->getQueryProfiles());

俺はdbAdapter直接触るような場合はいつも直接SQL作成して
$dbAdapter->query($sql);
でやってる。
これなら実行前にdumpなりなんなり出来るし。
0483nobodyさん2010/09/25(土) 19:28:24ID:???
adapterって実行したクエリを全部保存してるの?
状況によっては、すごいメモリ食いそうだけど
0484nobodyさん2010/09/25(土) 23:16:09ID:???
>>483
あ、factoryメソッドのオプションでprofile = trueみたいに指定する必要はあるね。
いつも開発環境では常にtrueにしてるから気づかなかった。
0485nobodyさん2010/10/09(土) 15:33:32ID:1KEL8kwG
質問です
zendDBでinsertなりupdateなりdeleteなりが正常に処理できたか確認したいんだけど
みんなどんな方法でやってますか?
しらべたらrowCountを見つけたけど、他に方法ないですか?
0486nobodyさん2010/10/09(土) 17:17:01ID:???
何を持って正常と判断するかは、ロジック次第なので何とも・・・
0487nobodyさん2010/10/09(土) 17:37:49ID:c5ynP6XY
過去レス読めばいいのかもしれんけど、ちょっと知りたい事があります。
今までフレームワーク無しでPHP使ってきたんだけど、最近ZendFrameworkを使ってみようかと思っています。でも、いまいち踏み切れません。(CakePHPのほうがいいのかな? と思ったり)

ZendFrameworkのメリット/デメリットを教えてもらえませんか?
0488nobodyさん2010/10/09(土) 17:55:35ID:???
>>487

CakePHPにZendFramework組み合わせて使うのは?
0489nobodyさん2010/10/09(土) 18:53:54ID:1KEL8kwG
>>486
単純に、insertならちゃんとデータが登録されたか、updateなら変更されたか
そういうことを確認したいんです
それが確認出来るメソッドというか機能は備わってないんでしょうか?
0490nobodyさん2010/10/09(土) 19:21:03ID:???
>>489
返り値が0かどうかじゃだめなの?
0491nobodyさん2010/10/09(土) 21:46:07ID:???
>>487
かなり偏見かもしれないが、良くも悪くも
・CakePHPはウェブアプリケーション開発のためのFW
・ZendはPHPプログラムのためのFWって感じで、PEARの集まりみたいな感じ

web開発するにあたって、cakeならすんなりできる部分も、
Zendなら色々classを呼び出すなり、子クラス実装するなりしなきゃいけなかったりする。
Zendの方がハードルが高いのはまあ間違いない。
0492nobodyさん2010/10/09(土) 22:19:17ID:???
とりあえずcakeはormがしょぼい。
0493nobodyさん2010/10/09(土) 22:27:33ID:v6/8xFVg
>>489

lastInsertId() とか使えばいいんじゃないの。
http://framework.zend.com/manual/ja/zend.db.adapter.html#zend.db.adapter.write.lastinsertid
0494nobodyさん2010/10/10(日) 01:21:37ID:???
>>488, >>491
ありがとうございます。
CakePHPとZendFrameworkは思想そのものが違う感じなんですね。

使いやすさを除いた、たとえばWebサービスや通常のサイトを作ったときの速度はどうでしょうか?
もちろん、それぞれの規模やプログラマ/エンジニアの腕によって大きくばらつくのはわかりきってるのですが・・・
どうしても「フレームワーク=ソースコードが太る」というイメージがあるので、実際に使って開発した感想も聞きたいです。

PHPプログラムはZendFrameworkの方が向いているということなので、一旦はZendFramweorkに挑戦してみたいとは思いました。
繰り返しの質問になりますが、よろしくおねがいします。
0495nobodyさん2010/10/10(日) 01:32:12ID:???
場合に寄るから自分で試せよ
0496nobodyさん2010/10/10(日) 01:49:57ID:???
>>494
数年前と比べて、最近はハードウェアが高性能化してるからな・・・
「フレームワーク有りと、無しでは実行速度が2倍違う」と仮定しても、
0.01秒が0.02秒になるようなレベルで、体感速度は変わらない。


開発チームがフレームワークに慣れれば開発効率は数倍跳ね上がる。
コード肥大化による動作速度の低下を下げたいなら、
その人件費をハードウェアにつぎ込む方が低コストかつ、運用も楽。

そんな感じ。
0497nobodyさん2010/10/10(日) 05:06:02ID:???
CPUの高性能化は頭落ちしてる。
0498nobodyさん2010/10/10(日) 05:06:59ID:???
ごめん。頭打ちだった。
0499nobodyさん2010/10/10(日) 08:03:13ID:???
>>494
人にもよるだろうけど、開発が早いのはcakeだと思うよ。

簡単なプログラムつくるならFW使うとソースは増える。
0500nobodyさん2010/10/10(日) 15:40:37ID:???
>>497
ヒント:クラウド
0501nobodyさん2010/10/10(日) 17:09:41ID:???
>>497
VPS十台借りても1万くらいだし

最初は一台で作って
重くなってきたら役割ごとに分割
それでも重いなら並列化
って感じで増やしてけば対した問題じゃない

もちろん、負荷、売上がちゃんと整合性取れる範囲の話だがフレームの問題じゃなくなる
0502nobodyさん2010/10/10(日) 22:37:53ID:???
ケースに因るんだ。本当に負荷の高いサイト、FacebookなんかはPHPをHipHopでバイナリにしちゃうし、Yahooはロジックをエクステンションに追いやってる。
ZendとかCakeとか、この手のPHPのフレームワークは負担が大きいので使わない。
0503nobodyさん2010/10/10(日) 23:39:03ID:???
>>502
ケースに困る?
YahooとかFacebookとか・・・君の請ける案件はそんなに大規模な案件ばかりなのかい?
多分、ここにいる人の大半は数人〜数十人規模の中規模開発者だと思うよ。
0504nobodyさん2010/10/11(月) 00:50:45ID:???
困ったなw
0505nobodyさん2010/10/11(月) 01:03:04ID:???
どこまで釣りかわからなくなってきたorz
0506nobodyさん2010/10/11(月) 02:41:41ID:???
うち5人で作ってるEC+アフィリのサイトだけどWebサーバ10台クラスですげー高負荷だよ
キャッシュサーバとか検討してるレベルだし
0507nobodyさん2010/10/11(月) 11:21:25ID:???
因みに、Yahooでも5〜10人程度の開発チームが1サービスを担当する。
それぞれのチームが働きやすいようにもろもろ準備してるだけ。
しかも高付加なのはトピックとかの上位10%ほどのサービスを除けば、
中の下のエンジニアでハードウエアで済ますっていう世界だよ。

ま、おれはその中の下より下なわけだがw
0508nobodyさん2010/10/11(月) 20:09:48ID:???
>>496>>499>>502>>503
いろんな意見ありがとうございます。

エクステンションの書き換えとか追加はまあ出来るんですけど、PHP全体の挙動を詳細に解析したことがあるわけじゃないので、思わぬ穴ができそうでやりたくないんですよね。

ハードの性能がある程度あれば、通常の開発規模では気にしなくていいことがわかりました。
実際にサービスをリリースして運用を開始してから、もし問題があればフレームワークの排除等も検討してみます。

ありがとうございました。
0509nobodyさん2010/10/13(水) 17:49:35ID:9/s0PB03
>>506
zend全く関係なくて申し訳ないんだけどアクセス数とCPUとメモリ教えてくれない?
0510nobodyさん2010/10/18(月) 11:50:14ID:???
>>509
アクセス数についてだけど、トピックに上がった記事で人気があると、
だいたい秒間200アクセスを超えてく。
CPU、メモリについては聞いてどうするな世界だな。
サーバーはごく普通のレベル。
自前のDCにDELLとかの平均的なサーバーを入れてるだけ。
0511nobodyさん2010/10/18(月) 12:02:03ID:???
サーバ1台当たり20アクセス/sでアップアップなのかよw
■ このスレッドは過去ログ倉庫に格納されています