- 1 名前:nobodyさん [2009/02/01(日) 18:10:57 ID:PdwQzQch]
- 質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り 次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 78 pc11.2ch.net/test/read.cgi/php/1230026935/ ◆質問用テンプレ 【OS名】vine linux 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
- 223 名前:nobodyさん mailto:sage [2009/02/05(木) 15:33:57 ID:???]
- ゲットの中身が整数である決まりならhtmlspe(ryを使わずにintvalを使うこともできる
- 224 名前:nobodyさん [2009/02/05(木) 15:42:27 ID:+8hoj09r]
- >>223
はい 整数なんですよ。 これでいいんでしょうか? $manky = "-1"; if (isset($_GET['hoge'])) { $manky = intval($_GET['hoge']); }
- 225 名前:nobodyさん mailto:sage [2009/02/05(木) 15:52:33 ID:???]
- >>221
>public $i=2; カプセル化の意味がないので、privateにする。 publicは通常使わない。継承する親クラスで、継承先で使いたい時にprotected使うぐらい。 通常はprivateでOK。 >function tasizan(){return $t=$this->$i+$n;} PHPの場合メンバー変数のアクセス方法は、$this->$iではなく、$this->i(iに$いらない)。 同様にnのほうもちゃんと$this->nにする。 return $this->i + $this->n;といった感じ。 単純な2値の計算なんかの場合はstaticメソッドを使うとよい。 class keisan { static function tasizan($a, $b){return $a+$b;} } echo keisan::tasizan(2,3); 最初は誰だって滅茶苦茶なのは当たり前。 がんばってちょうだい。
- 226 名前:nobodyさん mailto:sage [2009/02/05(木) 15:57:04 ID:???]
- 初心者相手に、僕すごいんだぞってか
- 227 名前:nobodyさん mailto:sage [2009/02/05(木) 16:07:57 ID:???]
- publicは通常、使わない、というが、
最後にはnewしてインスタンス化して使うんだよね だから、少なくても、最後の一個はpublicに しないとダメなんでしょ?
- 228 名前:nobodyさん mailto:sage [2009/02/05(木) 16:10:03 ID:???]
- >>227
public classとかphpにはないんで。 基本グローバル
- 229 名前:nobodyさん mailto:sage [2009/02/05(木) 16:11:37 ID:???]
- PHP使う時に他の言語の常識を振りまわすkz
- 230 名前:nobodyさん [2009/02/05(木) 16:42:15 ID:kfp6uZBj]
- var_dumpしたら、複雑な連想配列でした、これをさくっと取り出せないのでしょうか?
配列構造は、ケースによってまちまちです。 array(4) { ["tes"]=> array(1) { ["aaa"]=> string(12) "*" } [0]=> array(8) { ["bbb"]=> string(10) "*" <省略> ["ggg"]=> string(4) "*" ["hhh"]=> string(1) "*" ["iii"]=> string(4) "*" } ["jjj"]=> array(1) { ["kkk"]=> string(4) "*" } ["lll"]=> array(1) { ["fff"]=> NULL } }
- 231 名前:nobodyさん mailto:sage [2009/02/05(木) 16:45:21 ID:???]
- ヒント foreach 再帰
- 232 名前:nobodyさん mailto:sage [2009/02/05(木) 16:50:25 ID:???]
- 質問になってないのに、よくヒント出せるな。
- 233 名前:230 mailto:sage [2009/02/05(木) 17:11:23 ID:???]
- やっぱ再帰ですよね。
phpは、よくわかんないだけど、割に便利な関数があるんで、 そんなのがあったりするんかなと。ググる前に質問しちゃいました。ゴメンね。 でもコード考える気がなかったりするw php,再帰,連想配列でググってみたらよさげなものがあるんで、 流用しようw
- 234 名前:nobodyさん mailto:sage [2009/02/05(木) 17:17:37 ID:???]
- 新キャラ出現w
- 235 名前:nobodyさん mailto:sage [2009/02/05(木) 17:51:32 ID:???]
- PHP5.1.6のmb_convert_encodingでマルチバイトで1000文字くらいの改行の無い文字列の文字列変換をすると、
決まった長さまでは正常だけど、それ以降が文字化けするというのは仕様ですか?
- 236 名前:nobodyさん mailto:sage [2009/02/05(木) 17:55:34 ID:???]
- んなわけねーだろ
- 237 名前:nobodyさん mailto:sage [2009/02/05(木) 18:09:53 ID:???]
- 5.1系は使うなとあれほどいっただろ
- 238 名前:235 mailto:sage [2009/02/05(木) 18:46:55 ID:???]
- あ、申し訳ないです。問題の切り分けを間違えてました…。
mb_send_mailでの問題でした。 mail("hoge@example.com", "test", mb_convert_encoding("1234567890123…(改行無しで1000文字)", "JIS", "UTF-8")); で改行のない長い文字列を送ると、 これで本文の途中から「…123・u條。毅僑…」と文字化けしてしまいます。
- 239 名前:nobodyさん mailto:sage [2009/02/05(木) 19:10:36 ID:???]
- PHPは糞杉るので他の言語に転向したいんですが、何がいいですか?
- 240 名前:216 [2009/02/05(木) 19:15:28 ID:nQqyz+9C]
- >>217-220
遅レスだがありがと。 結局定期的に消すしかないのか。 まあ誰かがアップした時に同時にゴミ画像消すスクリプト動かせば手間はかからんな。
- 241 名前:nobodyさん mailto:sage [2009/02/05(木) 19:15:59 ID:???]
- HTMLはCとタイマン張れるほどの立派な低級言語だからHTMLおすすめ
- 242 名前:nobodyさん mailto:sage [2009/02/05(木) 19:17:24 ID:???]
- >>239
JSP
- 243 名前:nobodyさん mailto:sage [2009/02/05(木) 19:19:59 ID:???]
- このスレは糸を垂らすと必ず釣れるんだなw
- 244 名前:nobodyさん mailto:sage [2009/02/05(木) 19:25:09 ID:???]
- >>241
低級言語の意味わかってねぇwww しったかぶり厨うざいよ
- 245 名前:nobodyさん [2009/02/05(木) 19:52:16 ID:+8hoj09r]
- (´・ω・`)
- 246 名前:nobodyさん mailto:sage [2009/02/05(木) 19:57:05 ID:???]
- >>245
無視されたくらいでageんなよ
- 247 名前:nobodyさん mailto:sage [2009/02/05(木) 19:58:30 ID:???]
- HTMLは上級下級問わず全てのwebにかかわる人に愛され続けてる言語です
- 248 名前:nobodyさん mailto:sage [2009/02/05(木) 19:59:53 ID:???]
- マークアップ言語語りたいならpc11.2ch.net/hp/池
- 249 名前:nobodyさん mailto:sage [2009/02/05(木) 20:10:27 ID:???]
- >>247
お前、空気嫁ないねってよく言われるでしょ?
- 250 名前:nobodyさん [2009/02/05(木) 20:15:36 ID:r201bcdx]
- >>197
なるほど、参考にさせていただきます。 ありがとうございました。 $dir = C:\\www\\a\\、みたいに指定して 下のようにディレクトリaを削除してみたのですが、 if(DIRECTORY_SEPARATOR == '\\'){ system('rmdir '.$dir.' /s /q'); } $dir = G:\\www\\a\\にしたときは、削除できませんでした。(エラーなし) phpとかもろもろはCドライブにインストールしているのですが それが原因でしょうか? widows2000 php5.2.6
- 251 名前:nobodyさん mailto:sage [2009/02/05(木) 20:19:19 ID:???]
- $dir = C:\\www\\a\\
文法上おかしくない?
- 252 名前:nobodyさん mailto:sage [2009/02/05(木) 20:23:48 ID:???]
- ""でくくらなきゃ
- 253 名前:nobodyさん [2009/02/05(木) 20:26:47 ID:r201bcdx]
- >>251
>>252 すみませんでした。ここへ書くときに忘れてました。 正しくは、 $dir = "C:\\www\\a\\"; なのですが、やはりGドライプで操作したときは、 消したいディレクトリがその場に残ったままなんです。
- 254 名前:nobodyさん mailto:sage [2009/02/05(木) 20:31:05 ID:???]
- DIRECTORY_SEPARATORが\\なの?
- 255 名前:nobodyさん mailto:sage [2009/02/05(木) 20:34:21 ID:???]
- >>253
そもそもプロンプトで rmdir G:\www\a\ /s /q は通るの?
- 256 名前:nobodyさん [2009/02/05(木) 20:43:59 ID:r201bcdx]
- >>254
どこかのサイトに書いてあったのをやったらできたのです。 >>255 すみません、よくみたらまた間違ってました><; $dir = "C:\\www\\a"; でした。 これで、aはきえました。
- 257 名前:nobodyさん mailto:sage [2009/02/05(木) 20:47:50 ID:???]
- ほうほうそれで?
- 258 名前:nobodyさん [2009/02/05(木) 20:50:25 ID:3zIJ+Mqp]
- pearで一番簡単な入門的なパッケージってどれでしょうか?
- 259 名前:nobodyさん [2009/02/05(木) 20:51:00 ID:r201bcdx]
- それで、さきほど>>255さんを参考に
コマンドプロンプトで rmdir G:\www\a /s /q をしたら、消えてくれました。
- 260 名前:nobodyさん mailto:sage [2009/02/05(木) 21:00:26 ID:???]
- >>258
特に無い
- 261 名前:nobodyさん mailto:sage [2009/02/05(木) 21:09:41 ID:???]
- >>259
× rmdir G:\www\a\ /s /q ○ rmdir G:\www\a /s /q ってことか?
- 262 名前:nobodyさん [2009/02/05(木) 21:15:47 ID:r201bcdx]
- >>261
試しにさっき、 rmdir G:\www\a\ /s /q やってみたら、これも消えてくれました。 でも、なぜあphpで書くと処理してくれませんね。
- 263 名前:nobodyさん mailto:sage [2009/02/05(木) 21:25:19 ID:???]
- 権限とかopen_basedirとか?
結果を取得するなりログを見るなりすればなんかでるでしょ
- 264 名前:nobodyさん [2009/02/05(木) 21:55:05 ID:r201bcdx]
- いろいろやっていくいうちに、原因がわかりました。
ものすごくくだらないですが・・ まず、CをGと変更しているのに、削除しようとしているのは Cの方だったことがわかりました。 そこでもう一度視野を広げてみてみると、 原因はphpの編集ツールにありました。 CからGへapacheのルート?wwwディレクトリをコピーで移動させてからも、 そのツールの編集画面を開いたまま編集していました。 つまり、Gの方のphpを編集している気でいたら、Cの方のphpを編集しており Gの方のC:\\www\\aがそのままになっていただけでした。 ありがとうございました。
- 265 名前:nobodyさん [2009/02/05(木) 21:56:40 ID:r201bcdx]
- 訂正
すみません。原因はツールより、私の方にありました。
- 266 名前:nobodyさん [2009/02/05(木) 22:48:44 ID:Gj5tVrB7]
- 超くだ質ですが、お願いします。
[1.htmlの内容] <form name="form" action="./1.php" method="GET"> <input name="name" type="text"> <input name="name2" type="text"> <input type="submit" value="送信"></form> [1.phpの内容] <?php $name1 = $_REQUEST["name"]; ?> 値は<?php print $name1;?> 1.htmlのnameに山田、name2に太郎と入れてsubmitした時に1.phpのprintに 値は山田太郎 と出力させるようには出来ないのでしょうか?
- 267 名前:nobodyさん mailto:sage [2009/02/05(木) 22:50:53 ID:???]
- >>266
value $_GET[]
- 268 名前:nobodyさん mailto:sage [2009/02/05(木) 22:56:49 ID:???]
- $_REQUEST["name"] . ' ' . $_REQUEST["name2"]
- 269 名前:nobodyさん [2009/02/05(木) 23:04:00 ID:Gj5tVrB7]
- >>267
>>286 ありがとう!こんな事で2時間以上ぐぐってたのか・・
- 270 名前:nobodyさん [2009/02/05(木) 23:08:37 ID:ApJraLWL]
- 永続接続を使った場合apacheの待機プロセスorスレッドの分だけデータベースにスレッドが立ったままになっちゃいますけど
そういうものなんですか psコマンドで出すとズラーっと並んでいて気になります
- 271 名前:nobodyさん mailto:sage [2009/02/05(木) 23:13:16 ID:???]
- >>270
そういうものです。
- 272 名前:nobodyさん mailto:sage [2009/02/05(木) 23:14:15 ID:???]
- つまり気にしなくておk?
- 273 名前:nobodyさん mailto:sage [2009/02/05(木) 23:16:02 ID:???]
- OKかどうかは、運用と鯖のパワーバランス
- 274 名前:nobodyさん mailto:sage [2009/02/05(木) 23:19:21 ID:???]
- わかりました
ありがとう
- 275 名前:nobodyさん [2009/02/06(金) 01:07:33 ID:Zd9hNyvT]
- 20090206
を書式化して 2009年02月06日 としたいのですが、やはり一度分割して配列に入れる方法しかないのでしょうか?
- 276 名前:nobodyさん mailto:sage [2009/02/06(金) 01:09:40 ID:???]
- echo date( "Y年m月d日", strtotime( "20090206" ) );
- 277 名前:nobodyさん mailto:sage [2009/02/06(金) 01:16:12 ID:???]
- >>275
strtotime
- 278 名前:nobodyさん [2009/02/06(金) 01:37:39 ID:3pSilmD2]
- 一般的になコーディング方法について教えてください。
私は以下のようにしてコーディングしているのですが、 このスタイルは間違っていますか? <?php class Test{ // 送信ボタン名 private $_submitButtonName = "test_submit"; // フォームを出力する public function print_form(){ print "<form action=\"{$_SERVER["PHP_SELF"]}\" method=\"POST\">\n"; print "<input type=\"text\" name=\"textarea0\">\n"; print "<input name=\"{$this->get_submitButtonName()}\" type=\"submit\" value=\"送信\">\n"; print "</form>"; } // 送信ボタン名を返す public function get_submitButtonName(){ return $this->_submitButtonName; } // 送信されたかチェックする public function determineSubmit(){ if( isset($_POST[$this->get_submitButtonName()]) ){ return true; } else{ false; } } } // END class Test
- 279 名前:278 [2009/02/06(金) 01:38:02 ID:3pSilmD2]
- $obj = new Test;
$obj->print_form(); if($_SERVER["REQUEST_METHOD"]=="POST"){ if($this->determineSubmit()){ 〜 } } ?>
- 280 名前:nobodyさん mailto:sage [2009/02/06(金) 01:44:36 ID:???]
- コーディングスタイルに正解も間違いもないよ
- 281 名前:nobodyさん mailto:sage [2009/02/06(金) 01:58:55 ID:???]
- >>278
普通はHTMLタグはページ用のファイルに書くんじゃないかな submitボタンのname属性も可変にする必要ないと思うけどするなら、 <form action="test.php" method="POST"> <input type="text" name="textarea0"> <input name="<?=MyConst::SUBMIT_BUTTON_NAME?>" type="submit" value="送信"> </form>
- 282 名前:nobodyさん mailto:sage [2009/02/06(金) 02:00:52 ID:???]
- set_submitButtonNameしたいときもあるかもしんねぇだろwww
- 283 名前:nobodyさん mailto:sage [2009/02/06(金) 02:17:24 ID:???]
- >278
クラス名が具体性を欠く。$obj = new Test; の1行からは、何をしたいのかという意図が全く伝わってこない。 そもそもそのクラスは、「何を」表したクラスなんだ?アプリケーションか?ユーザーからのリクエストか?今から生成するフォームか? クラス内の処理が実質的に全てstatic。こんなクラスはインスタンス化する意味が無い。 ボタン名をconstにして全てstaticメソッドにする、あるいはクラス自体を取っ払って単なるグローバル関数にする。 ボタン名を定数ではなく変数にする意味は? 変数を使うというのは「この値はスクリプトの実行中に変化する可能性がある」という意思の表明でもある。だから「変わる数」なんだよ。 動的に変わるならばそのままでもいいが、もし仮に実行中に変わらないならば定数にすべきだ。 determineSubmitという関数名。回りくどい上に、意味がおかしい。サブミットされたかは、このメソッドが決めるわけじゃない。 百歩譲ってもcheckSubmitted()。 俺ならisSubmitted()もしくはsubmitted()。boolを返す事が自明になるし、どっちの場合にtrueが返るのかも分かりやすい。 それとアプリケーション構造として、処理に必要になる値の存在だけをチェックすべきだ。 textarea0に文字が入ってさえいれば、サブミットボタンが押されてようが爆発してようが別にどうでもいいだろ? サブミットされたかは関数なのに、POSTかどうかの判定は変数を直接見ている。記述のレベルが揃っていない。 「好きな食べ物は辛いものと糖質を75%以上含むものです」なんて言わないだろ?同じレベルの記述では抽象度を揃えろ。 「辛いものと」なら「甘いもの」だし、「糖質を75%含む」ならば「カプサイシンを10mg含む」だ。その時興味のあるレベルに揃えるんだ。 つまりif( isPosted() && isSubmitted() ) か、if( $_SERVER["REQUEST_METHOD"]=="POST" && isset($_POST[[$key]) 。
- 284 名前:283 mailto:sage [2009/02/06(金) 02:34:31 ID:???]
- クラスは、クラスが必要なところでだけ使えばいいんだよ。
クラスを使う事が偉いのではない。クラスを使うことで分かりやすい/保守しやすいコードを書く事が偉いんだ。 「なんでクラス使ってるの?」と聞かれて、答えられるか?説得する必要はないが、自分なりの回答が存在するか? ttp://d.hatena.ne.jp/masayang/20081211/1229033163 その程度の処理にクラスを持ち出すのは、このコードと同じ事をしている。 クラスや関数などの中間層は、増やせば増やすほど何をやっているか分かりにくくなる。 $this->determineSubmit() より isset($_POST['test_submit']) の方が分かりやすい。具体的に何をやってるか、メソッドの定義部を読みに行く手間も省ける。 ま、練習中なら、過剰なまでに抽象化するのもひとつの経験だけどな。
- 285 名前:nobodyさん [2009/02/06(金) 02:38:16 ID:y9gQg+aR]
- PDO の質問です。
$id = 1; $sth = $pdo->prepare('select * from hoge where id = ?'); $sth->execute($id); で、実行したバインド済みのSQL(select * from hoge where id = '1') を取得したいんですが、方法はありますでしょうか。
- 286 名前:nobodyさん mailto:sage [2009/02/06(金) 02:49:11 ID:???]
- >>284
そりゃそうだ 時給制や残業制とは無能であればあるほど金がもらえる仕組みなんだよ
- 287 名前:nobodyさん mailto:sage [2009/02/06(金) 02:50:43 ID:???]
- >>285
なんでマニュアルみーへんの?
- 288 名前:nobodyさん mailto:sage [2009/02/06(金) 03:12:57 ID:???]
- これくらいなら僕でもできるもん!
>>285 間違ってるかも・・・ 詳しくは先輩から聞いてください>< $id = $_GET["id"]; $sth = $pdo->prepare('select * from hoge where id = ?'); $sth->blindParam(1,$_GET["id"]) $sth->execute();
- 289 名前:nobodyさん mailto:sage [2009/02/06(金) 03:27:05 ID:???]
- >>288
まず日本語学んだら? >で、実行したバインド済みのSQL(select * from hoge where id = '1') >を取得したいんですが、方法はありますでしょうか。
- 290 名前:288 mailto:sage [2009/02/06(金) 03:53:28 ID:???]
- すまんね。書き直します。
PDO の質問です。 $id = 1; $sth = $pdo->prepare('select * from hoge where id = ?'); $sth->execute($id); 以上のコードの後に、パラメーターがバインドされた形の 実際に実行されたSQL文を取得したいのですが、方法は ありますでしょうか。 * 上記の例では "select * from hoge where id = '1' " を得たい。 . 簡単にいうと getLastQuery() 的なもの。 >>287, 288, 289 日本語スマソ お分かりの方お願いします。
- 291 名前:nobodyさん mailto:sage [2009/02/06(金) 03:57:16 ID:???]
- はい?285=288なの?
- 292 名前:285 != 288 [2009/02/06(金) 04:01:32 ID:y9gQg+aR]
- まちがえt
- 293 名前:nobodyさん mailto:sage [2009/02/06(金) 04:04:39 ID:???]
- >>292
>>287
- 294 名前:nobodyさん mailto:sage [2009/02/06(金) 04:13:51 ID:???]
- >>289
>>287 >>293 早く教えろよ わからねーのか
- 295 名前:291 mailto:sage [2009/02/06(金) 04:16:12 ID:???]
- わからねーよ
蛸
- 296 名前:285 ◆Oto8cICx9k [2009/02/06(金) 04:23:43 ID:y9gQg+aR]
- めんどくさいから鳥つけた
>>293 結構読んだはずなんだけど分からんかった。 user noteまでは読み切ってないので、どのへん〜だけでも ヒントくれたら助かります。
- 297 名前:nobodyさん mailto:sage [2009/02/06(金) 04:29:33 ID:???]
- 結構ではなく全部読め
- 298 名前:nobodyさん mailto:sage [2009/02/06(金) 04:31:05 ID:???]
- 自作自演ですか?
- 299 名前:298 mailto:sage [2009/02/06(金) 04:33:07 ID:???]
- そうです俺馬鹿なもんで
- 300 名前:nobodyさん mailto:sage [2009/02/06(金) 04:37:15 ID:???]
- >>299
馬鹿なんだ^−^−^−^−^−^
- 301 名前:nobodyさん mailto:sage [2009/02/06(金) 04:38:48 ID:???]
- きもい〜★
- 302 名前:nobodyさん mailto:sage [2009/02/06(金) 04:49:25 ID:???]
- なんかエッチな気分
- 303 名前:nobodyさん mailto:sage [2009/02/06(金) 05:35:37 ID:???]
- 表現が稚拙だな
- 304 名前:nobodyさん [2009/02/06(金) 06:29:21 ID:IlUhJl+1]
- スレ違いかな…
phpと.htaccessの質問なのですが… .htaccess中のRewriteEngineを使用して拡張子の書き換えを行い、 htmlへアクセスした際、phpへリライトするということをしたいです。 [例] www.***.com/cgi/sample.html ↓ www.***.com/cgi/sample.php で、 RewriteRule ^(.*)sample.html(\?.*)?$ $1sample.php$2 と、設定するとうまく動作してくれるのですが、 RewriteRule ^(.*)/cgi/sample.html(\?.*)?$ $1/cgi/sample.php$2 と、設定すると404(not found)となってしまいます。恐らく、リライトのルールに合致しない為 書き換えが行われていないのだと思います。 なんで…なんでなのぉ〜(号泣)
- 305 名前:nobodyさん mailto:sage [2009/02/06(金) 07:06:20 ID:???]
- phpは全く関係ないな。こじつけにもほどがある。
このスレ、そんなに頼りになると思ってんの??ありえん。 # mod_rewriteスレがあるよ
- 306 名前:nobodyさん mailto:sage [2009/02/06(金) 10:01:08 ID:???]
- >>404
スレチ AddTypeでググれ
- 307 名前:nobodyさん mailto:sage [2009/02/06(金) 10:05:50 ID:???]
- >>304
こんな感じじゃない? RewriteRule ^([^\/].*)/cgi/sample.html(\?.*)?$ $1/cgi/sample.php$2
- 308 名前:278 [2009/02/06(金) 11:46:08 ID:3pSilmD2]
- 返信遅くなりました。
私としては、”意味のまとまり”をクラスとする、 というつもりです。 先のTestクラスは意味を表していないので例として間違っていました。 申し訳ありません。 例えば、先日私は「郵便物の配達履歴」のプログラムを組みました。 そこでは、 (1)郵便物を登録するクラス ・登録フォームを出力 ・ユーザの入力が間違っていないか(番地は数字と-のみとか)チェック ・過去の履歴を検索してユーザの入力を助ける ・郵便番号からDB中の住所を検索する etc (2)過去に登録した郵便物を検索するクラス ・フォームを出力する ・ユーザが入力した情報から過去の郵便物を検索する ・検索したものを編集/削除する etc (3)ログイン時の認証をするクラス を用意しました。
- 309 名前:278 [2009/02/06(金) 11:46:44 ID:3pSilmD2]
- 続・308
意味のまとまりをクラス化し、 そのクラスに関係する情報はそのクラスで全て管理する、 という気持ちでやっていたので、 >>278のような感じになりました。 (確かに、>>283さんのいうようにボタン名はconstにしたり、 if( isPosted() && isSubmitted() ) を用いるべきでした。) 私はJava、C++メインなためどうしてもクラスありき、 (といってもJavaもC++も大した力はありませんが・・・) で考えてしまうのですが、 PHPは必ずしもそうではない、ということでしょうか?
- 310 名前:nobodyさん mailto:sage [2009/02/06(金) 11:52:24 ID:???]
- PHPはクラスありきではない。
PHPはスクリプト言語、スクリプトからクラスを使う。 しかし、実質的にクラスベースっ"ぽい"開発もできる。 あとは好みの問題。
- 311 名前:nobodyさん mailto:sage [2009/02/06(金) 11:52:37 ID:???]
- Javaのスキルも程度が知れるな
- 312 名前:nobodyさん mailto:sage [2009/02/06(金) 13:29:37 ID:???]
- クラスってなにかくんですか?
- 313 名前:nobodyさん mailto:sage [2009/02/06(金) 13:30:14 ID:???]
- MVC
- 314 名前:nobodyさん mailto:sage [2009/02/06(金) 13:53:32 ID:???]
- MDD
- 315 名前:nobodyさん mailto:sage [2009/02/06(金) 14:03:37 ID:???]
- TDD
- 316 名前:nobodyさん mailto:sage [2009/02/06(金) 14:06:07 ID:???]
- MVC意識してるのにうまく分離できない
VとCがくっついたりVとMがくっついたり・・・
- 317 名前:nobodyさん mailto:sage [2009/02/06(金) 14:06:11 ID:???]
- やまだくんです
- 318 名前:nobodyさん mailto:sage [2009/02/06(金) 14:09:43 ID:???]
- まだやくんです
- 319 名前:nobodyさん mailto:sage [2009/02/06(金) 14:37:49 ID:???]
- >>308-309
基本的にどの言語だろうとクラスの本質は変わらないはず。 オブジェクト指向で書けるようになると戻りたくないというのも解る。 …が、その設計は果たしてどうだろう? クラスはその名の通り型(intやstring、ひいては構造体等の)であって、 (そのような側面もあるが)名前空間が本領ではない。 クラスの本質は「データとメソッドを結びつける」ことによって、 自身の振る舞いを知っている型として纏まって独立し、 型・コードの再利用は勿論、カプセル化やポリモーフィズムなど様々な恩恵を生み出す…。 そこで話を戻すとその内容はクラス、というよりも デザインパターンの話になってしまうのではないか。 まずはパータンの前に郵便物情報のクラスを作ってから、 それをActiveRecord/MVCのModelとかにして、 そいつに郵便物情報の処理を適切にスタティック/インスタンスメソッドなり追加して その外側からViewやControllerで操作する…というのが私見。 # Javaや.NETのクラスライブラリの中から処理形態として類似したものを真似てみるのもいいかと。
- 320 名前:nobodyさん mailto:sage [2009/02/06(金) 14:45:05 ID:???]
- >>319
そんなクラスの一般論なら、クラスでググればいいだけだろ。 うざいからほどほどにしてくれ。 「デザパタの前に実装してPHPのくせを先に学ぶのを先にした方がいい」 って私見ぐらいは語ってもいいけど、デザインパターンが通じない開発者の方が少数派だろ。
- 321 名前:nobodyさん [2009/02/06(金) 14:46:21 ID:iuyfFTeY]
- いまのPHP三大フレームワークは以下のものと認識してもよろしいでしょうか?
cakePHP シンフォニー zendフレームワーク
- 322 名前:nobodyさん mailto:sage [2009/02/06(金) 14:47:30 ID:???]
- =>フレームワークスレ いけ
- 323 名前:nobodyさん mailto:sage [2009/02/06(金) 14:48:16 ID:???]
- >>320
おいトリップつけるかIDだせ
|

|