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

【PHP】フレームワーク CakePHP 8ホール目【1.3】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/03/18(木) 10:00:59ID:6+kHM8kH
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※sage推奨
テンプレは>>1-5くらい

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0583nobodyさん2010/06/23(水) 13:58:09ID:???
独自のグローバル関数を追加する方法は
cake\basics.phpに追加する以外に
何か方法はありますか?
0584nobodyさん2010/06/23(水) 14:11:23ID:???
ヘルパー化する
0585nobodyさん2010/06/23(水) 15:24:39ID:???
>>583
app/config/bootstrap.php
0586nobodyさん2010/06/23(水) 18:19:33ID:???
1.3を使っています。
Authコンポーネントを使い基本的なログイン機能を作っていたのですが
core.phpを書き換えてセッションをDB管理したら
ログイン出来なくなりました。
エラーメッセージも出ず、auth.phpを上から見ていってるのですが
どこでつまづいてるのかわかりません。
セッションをDB管理し、authを使うには何か設定が必要でしょうか
0587nobodyさん2010/06/23(水) 18:20:11ID:???
cakePHPにはDB接続をサポートする機能が搭載されていますが、
それを使わずmysql_connectやpear::DBを使ってDB接続することはありますか?
0588nobodyさん2010/06/23(水) 18:26:15ID:???
>>582
ありがとうございます。DebugKit導入しました。
これで少しは原因が分かりそうです。
0589nobodyさん2010/06/23(水) 18:53:01ID:???
>>587
ない
0590nobodyさん2010/06/23(水) 23:04:49ID:???
一部を除いた全ソースから?>を削除した
こんなもんいらね
0591nobodyさん2010/06/23(水) 23:10:47ID:???
あぁ?>いらないんだよね
ていうか開発者から、取るのを推奨されているんだっけ?

何のためかは良く知らないけど
改行が入ったりの予防くらい?
0592nobodyさん2010/06/23(水) 23:24:38ID:???
俺は?>は書かないし、viewで極力セミコロンを付けない
でも最初からあるコードは基本的に放置だな
むしろ手を加えることで何か不具合出してしまいそう
0593nobodyさん2010/06/23(水) 23:54:21ID:???
>>592
>viewで極力セミコロンを付けない

<? echo $hoge ?>
こういうこと?
0594nobodyさん2010/06/24(木) 00:20:59ID:???
>>593
うん、<?php echo $hoge ?>だけど
0595nobodyさん2010/06/24(木) 00:29:11ID:???
どうでもいいよ
0596nobodyさん2010/06/24(木) 01:10:16ID:???
まぁプログラムって運だからな
0597nobodyさん2010/06/24(木) 02:10:58ID:???
は?書いたようにしか動かないよ
何いってんの?
0598nobodyさん2010/06/24(木) 08:28:24ID:???
>596
ちげぇよ愛だよ
0599nobodyさん2010/06/24(木) 13:44:40ID:???
>586

coreに記述されているハッシュの種が変わったから、
違うパスワードが生成されているんじゃないの?
照会SQLを確認してみな。
0600nobodyさん2010/06/24(木) 23:26:58ID:???
まるでIEのHTML勝手解釈だな。
そのうちPHPの仕様が変わって絶滅するだろうな。

ガハハハハハハハハ
0601nobodyさん2010/06/24(木) 23:45:45ID:SNEZsqXV
<?php e(date(__('F j,Y'),$times)); ?>

とcakePHPによる実践アプリケーション開発 という本に
例があり一部抜粋したのですが、この先頭のeとは何なんでしょうか?
0602nobodyさん2010/06/25(金) 00:06:12ID:???
>>601
echoの短縮表記
0603nobodyさん2010/06/25(金) 08:04:32ID:???
debugが1以上だと、HTMLの最後に<!-- 0.00sec -->みたいな出力にかかる秒数書いてあるけど
Ajaxで使うときはエラーになって邪魔です。Ajaxで使うときは出力しないようにできませんか?
0604nobodyさん2010/06/25(金) 08:55:39ID:???
>>603
beforeRenderとかで
if ($this->RequestHandler->isAjax()) Configure::write('debug',0);
って感じ
0605nobodyさん2010/06/25(金) 10:22:11ID:???
>599
照会SQL確認して、
セッションテーブルのIDをintにしていたのが間違っていました
ばーちゃーにしたらうまく動きました。
ありがとうございます!
06066032010/06/25(金) 10:24:39ID:???
>>604
なるほど!RequestHandlerがあったんですね。ありがとうございます。
0607nobodyさん2010/06/25(金) 18:49:37ID:0V5oobxv
>602
ありがとうございました。

0608nobodyさん2010/06/25(金) 20:47:40ID:???
普通RequestHandlerを使うとLayoutがajaxになると思うが、みんなはajax.ctp使ってないの
0609nobodyさん2010/06/25(金) 20:55:23ID:???
なにがだ
0610nobodyさん2010/06/28(月) 01:42:58ID:???
CakePHPって新規開発にしか使えないよね。
0611nobodyさん2010/06/28(月) 04:10:11ID:???
何を期待してるんだ?
何ができれば”既存案件で使える”になるんだ?
0612nobodyさん2010/06/28(月) 10:41:06ID:???
session管理ってcookie使ってますか?

情報の引き渡しにsessionを多用してたら、複数のブラウザを立ち上げて
並行してオペレーションを行うと動作がおかしくなりました。
同じsessionを複数のオペレーションから参照してるので当たり前といえば
当たり前なのですが。

こんな場合はURIにsession idを含めるとか、そういう対処が一番ですかね?
0613nobodyさん2010/06/28(月) 11:07:09ID:???
何を期待してて
でもどうなった
だからおかしいと思ってる

ってのが分らなけりゃ答えようがないと思わないかい?
はいかいいえで答えてくれ
0614nobodyさん2010/06/28(月) 11:30:46ID:???
いいえ
06156122010/06/28(月) 11:56:53ID:???
>>613
はい、その通りです。例をあげると
http://sample.sakushima.net/Cake/sessions/
ブラウザを2つ立ち上げて、このページをそれぞれ開きます。
2つのブラウザを順番にリロードすると、リロードした順に1,2,…と回数が上がります。
2つのブラウザで同じSessionを共有しているので、この動作は正しいと思います。

やりたいことは、上記の動作を行った際、2つのブラウザそれぞれで1,2,…と回数を上げたいのです。
実現方法ご存じの方お教えください。
0616nobodyさん2010/06/28(月) 12:06:27ID:???
>>615
認証済みのユーザーということじゃないんだよね?
そうすると、2つのブラウザのアクセスが同一人物だと判定しなきゃいけない

URLに埋め込むとセッションハイジャックされるリスクを負うんじゃまいか?
0617nobodyさん2010/06/28(月) 12:13:19ID:???
>>610は名称可変のコピペだろ
0618nobodyさん2010/06/28(月) 15:17:05ID:???
User.id User.name
Diary.id Diary.user_id Diary.body
Comment.id Comment.diary_id Comment.body
というDB構成で作っているときに、
「最新のコメント10件がが誰の日記に向けて書かれたか」を表示させるとき、
$this->Comment->findで、recursiveを2にしてデータを取ってきてるんだけど、
CommentとDiaryがJOINされるんだけど、それとは別にUserのデータを
取ってくるのに10回もSQLを投げてしまうのはしょうがないものなの?
CakePHPが副問い合わせに対応していないせい?

表示させたいのは
>最新のコメント10件
> こんにちは → Aさんの日記
> お久しぶりです → Bさんの日記
> 面白いですね → Aさんの日記
> ...
という感じなんだけど
0619nobodyさん2010/06/28(月) 19:53:05ID:qHDwmPz9
VIEWのCTPファイル内で、TABLEの幅を400pxに固定したいんですが。

<TABLE width="400px"> として表にしてもブラウザの幅に
あわせて伸び縮みしてしまいます。
デフォルトのCSSファイルより、優先されると思うのですが何故でしょうか?

CSKEPHPはver1.2です。
0620nobodyさん2010/06/28(月) 20:02:50ID:???
<TABLE width="400">
htmlはpxいらねーよ
てか悪いことは言わん。この業界あきらめろお前は
0621nobodyさん2010/06/28(月) 20:26:44ID:???
仕事とは限らないとおもた
0622nobodyさん2010/06/28(月) 20:27:47ID:qHDwmPz9
>620
なるほど、うまくいきました。
ありがとうございました。
0623nobodyさん2010/06/28(月) 20:36:54ID:???
仕事だろうと趣味だろうとなんでもいいやめろ
HTML/CSS/PHP/CakePHPこれらを切り分けもできずに
こんなところで糞な質問しちゃう奴なんざやめろ今すぐ。
0624nobodyさん2010/06/28(月) 20:44:55ID:???
まあスレ違いではあるね
今後は気をつけるだろう
0625nobodyさん2010/06/28(月) 23:42:04ID:???
こええよw
0626nobodyさん2010/06/28(月) 23:52:38ID:???
みんな、メモリはどれくらい使っているのか知りたい。
1セッション当たり、10MBくらいは普通かな?
0627nobodyさん2010/06/28(月) 23:54:20ID:???
>623
優しい奴だな。ちょっともえ
0628nobodyさん2010/06/29(火) 07:25:59ID:???
HTMLで悩むならまずとほほを読んで来い。
あそこは世紀を超えての名サイトだ。
0629nobodyさん2010/06/29(火) 08:46:43ID:???
〉〉623
これをリアルで言われて
言われたヤツやめちゃって
やめたヤツの仕事が俺に回ってきて
言ったヤツ知らん顔
俺涙目
06306122010/06/29(火) 12:04:06ID:???
>>615
結局やりたいことというのは
「同時にブラウザを複数立ち上げたときに、それぞれ別々に状態を保持しておきたい」
ということです。極端な話、ブラウザ1・ブラウザ2でそれぞれユーザー1・ユーザー2
で認証をしたら、それぞれのユーザーで独立して動作するイメージです。

実際に作っているアプリでは、認証情報・画面遷移情報・入力データなど、結構な量の
データを画面間で保持する必要があります。実現方法として考えているのは下記です。
1.URLにSession IDを埋め込み、それを基にServer側で使うべきSessionを切り替える
→携帯サイト向けのサンプルは見つかった。いまいち良いサンプルが見つからない
2.引き継ぐ情報をまとめてシリアライズ・暗号化してURL・POSTで渡す(極力Sessionは使わない)
→通信データサイズが結構な量になるかも・・・

こうしたほうが良い等ご意見ありましたらお教えください。。
0631nobodyさん2010/06/29(火) 12:16:19ID:???
>>630
ん?>>616だけど完全に逆だと思ってた。
っていうか、違うブラウザなら、別のセッションだと認識されるのが普通だが、どんな環境でチェックしてるの?
FFとChromeでやってみたが、ふつうにそれぞれ独立してインクリメントされるよ??
06326122010/06/29(火) 12:47:04ID:???
>>631
こちらではIE8、FF、Chromeともに下記の動作となります。
時系列で書きます。

ブラウザ1を起動
ブラウザ2を起動
ブラウザ1で「http://sample.sakushima.net/Cake/sessions/」を表示→表示回数:1
ブラウザ2で「http://sample.sakushima.net/Cake/sessions/」を表示→表示回数:2
ブラウザ1でF5(リロード)→表示回数:3
ブラウザ2でF5(リロード)→表示回数:4
06336122010/06/29(火) 12:55:56ID:???
>>632
補足で、ブラウザ1・2ともに同じ種類のブラウザです。
もしかしたら616さん、ブラウザ1:FF・ブラウザ2:Chormeとか、
別のブラウザを立ち上げてるんじゃないかと。
0634nobodyさん2010/06/29(火) 16:46:35ID:???
クライアント側でUAを変えるなどの小細工が許されないのなら、
サーバ側で何らかの識別データをGET/POSTで埋め込むのしか思いつかない。。
0635nobodyさん2010/06/29(火) 17:07:06ID:???
>>633
うん。そうだよ。別のブラウザでやった。
同じブラウザのタブ別で別ユーザーだと認識させたいの?
そりゃまた無茶なことを、、、
0636nobodyさん2010/06/29(火) 17:11:36ID:???
なにがしたいのかわかりません。
0637nobodyさん2010/06/29(火) 17:35:04ID:???
Macで開発中にwebkitを使ってプレビューするソフト(codaとかCSSEditとか)を同時に使うと
セッションが切れちゃって確かに鬱陶しいけど、まあ開発中の一時的なもんだしなあ。
0638nobodyさん2010/06/29(火) 23:52:30ID:???
CakePHPって新規案件でしか使えないよね。
0639nobodyさん2010/06/30(水) 00:49:39ID:???
俺なんて5年くらい前に作ったデータ管理がファイルベースのシステムをcakeに移行中だ
データをmysqlに移行する以外は意外とめんどくさくない
0640nobodyさん2010/06/30(水) 15:36:49ID:???
>>638>>617でFA
0641nobodyさん2010/06/30(水) 19:52:27ID:???
modelを新しく作るたびに、毎回データベースにテーブルを作らないといけないのでしょうか?

Fatなコントローラーをmodelに集約しようと思い、
新しく scrape というモデルを作って、動かしてました。

ローカルでは普通に上手く行くのですが、
いざWEB上で動かすと、

Database table scrapes for model Scrape was not found.

というエラーメッセージが。。
0642nobodyさん2010/06/30(水) 20:10:45ID:???
>>641
データベース 使わない model cakephp
でググるんだ
0643nobodyさん2010/06/30(水) 20:11:23ID:???
あほっぽいのの相手はしたくないけど
modelで
var $useTable = false;
だったかをするとテーブルなくても怒られないけど?
0644nobodyさん2010/06/30(水) 20:13:05ID:???
書く前にリロードすればよかった
すまそ
0645nobodyさん2010/06/30(水) 20:24:17ID:???
>>642
>>643

解決しました!

初歩的すぎる質問どうもすみませんでした。。
0646nobodyさん2010/07/01(木) 04:37:27ID:???
>>645
一応チュートリアルにもあるが、Cakeで始めにはまる落とし穴。
あと>>643とか使えないヤツだから気にするな。
0647nobodyさん2010/07/01(木) 10:24:02ID:???
paginate()をカスタマイズしたいのですが、ソートが機能しなくて困っています。

モデルAのpaginate()の中で
SELECT * FROM a, b, c WHERE a.b_id = b.id AND b.c_id = c.id;
という形のSQLを発行しているのですが、
<th><?php echo $paginator->sort('c.name');?></th>
のリンクをクリックしてもソートされないのです。
モデルAとCはリレーションがないため、
paginate()の$order引数に 'c.name' => 'asc' が入ってこないようです。
どうすればいいでしょうか?
0648nobodyさん2010/07/01(木) 13:01:04ID:???
チューとリアルとかマニュアルに書いてあることを人に質問するとか終わってるだろ
二度と来るな
0649nobodyさん2010/07/01(木) 16:03:56ID:???
ionCube PHP Encoder等のソース暗号化ツールを適用させて
cakeを動かした例はあるでしょうか。

同業者からの依頼でcakeを使う予定なんですが、再利用される恐れがあるため
なんとかできたらと考えてます。
0650nobodyさん2010/07/01(木) 16:57:28ID:???
>>649
ionCube Japan アシアル株式会社に電話して聞けばいいじゃん。
ただの商品じゃないんだし。
0651nobodyさん2010/07/01(木) 17:10:35ID:???
>>649
使ってみたことあるよ
0652nobodyさん2010/07/01(木) 18:58:02ID:???
\app\views\layoutsの中にベースデザインが入ってるctpファイルがあるんだけど
そのファイルのソース中にリンク、例えばhote.htmlがあると出力したときに

hoge.html?CAKEPHP=681a529c456e8da3f6a2e39219c8f4ca

と言う文字列が必ず付くのですがこれはどうすれば消せますか?
と言うか何のためにリンクに文字列が付いて出力されてるんでしょうか?
0653nobodyさん2010/07/01(木) 20:23:40ID:???
>>652
それセッションIDだろ
session.use_trans_sid = 0にするか、セッション使わない設定にしたら?
0654nobodyさん2010/07/01(木) 21:58:57ID:???
>>649
アプリの挙動が変わることもあるみたいだね。
06556472010/07/01(木) 22:49:41ID:???
$this->A->bindModel(array('belongsTo' => array('B', 'C')));
で動的に関連をセットすることでできました。
0656nobodyさん2010/07/03(土) 02:07:02ID:???
MediaPluginでvideoファイル扱ってる人いる?
ffmpegもインストールしてやってるんだけど
初期から入ってるvideoのサムネイル設定なのに
Medium::make - Invalid instruction `VideoMedium::fitCrop()`.
とかなって死ぬ
なんか設定が足りないのかサポートされてないのか
というかMediaPluginと動画の話題が全然ぐぐってもヒットしないんだけどみんな使わないのかな
0657nobodyさん2010/07/03(土) 02:44:20ID:???
ありゃ??でけた
一応書いておくと

filterの指定を↓見たいにしてたんだけど
array('fitCrop'=>array(100, 100), 'convert'=>'image/jpeg')
するとvideoのClassをよむからメソッドがなくて怒られる

まさかとは思ったけど順番変えて最初にconvertおくと
array('convert'=>'image/jpeg', 'fitCrop'=>array(100, 100))

ちゃんと変換してくれました。
スレ汚しすまんです。
0658nobodyさん2010/07/03(土) 04:16:09ID:???
みんな動画扱わないのかな

ついでに汚します。寝たかったのにはまって一応解決?したんで

wmvをアップして画像とかflvとかに変換したかったけどできない。
mpgならできたのに・・・ってなって四苦八苦

で、MediaPluginのソースいじることになるんだけど
vendors/......../ffmpeg_video.php
で最初に定義されてるrequire['mimeTypes']の
mswmv
ってのを
ms-wmv
に変更したら動いた。

同じ階層にあるgetid3_video.phpでも同じように定義されてあるんだけど、
そこではms-wmvになってるんだよね。揃えてみたら動きました。
なんかよくわからんが一応解決です。
0659nobodyさん2010/07/03(土) 07:41:45ID:???
最近CakePHPを学習しはじめた者です。
PHP自体は理解しており、MVCも理解しているつもりです。

とりあえず学習の定番と言えそうな本家(日本語)のチュートリアルをやってみました。
でもこれだけでは、その後独力でCakePHPの学習を推進していくチカラが得られませんでした。

チュートリアルのつぎのステップとしてお勧めな学習方法を教えてください。
(マニュアルを理解するには、チュートリだけでは知識が浅すぎると感じました)

よろしくおねがいします。
0660nobodyさん2010/07/03(土) 07:55:26ID:???
>>659
何かアプリ作りましょう
実践して、詰まって、解決策を自分で見つけてるうちに使えるようになるよ
0661nobodyさん2010/07/03(土) 09:36:37ID:???
テストプロジェクトとかじゃなしに、
実際の開発プロジェクトで、みんなadmin routingとか使う?
0662nobodyさん2010/07/03(土) 09:49:14ID:???
>>660
チュートリアルをやれば、あとは独力ということですね。

でも、チュートリアルを一通りやっただけで、独力で解決策を見出しながら開発を
進めていくチカラが付いたとは思えないんですけど・・・

CakePHPは習得が簡単だと思っていましたけど、実はかなり敷居が高いのでは
ないかと思ってしまいます。
0663nobodyさん2010/07/03(土) 10:13:10ID:???
>>662
それ、そもそもPHPの習得を一通りこなせていないのでは?
0664nobodyさん2010/07/03(土) 10:33:21ID:???
>662
何でひっかかってるんだい?
チュートリアル+入門書だけでスタートアップは十分だと思うけどな・・・
0665nobodyさん2010/07/03(土) 12:03:57ID:???
作成したテキストなどのファイルを一時的に保存しておくには
app/tmp/
の中に適当なディレクトリを作って保存する方法で構わないんでしょうか。

他に適切な配置場所があれば教えていただきたいです。
0666nobodyさん2010/07/03(土) 16:09:42ID:???
1.3の$js->linkなりで、updateの複数指定って出来なくなりましたよね?
代替の書き方ってあるんでしょうか?
0667nobodyさん2010/07/03(土) 16:49:44ID:???
>>659
cakeの実践アプリケーションの本でも買ったら?
あとはcakeの開発陣の人たちはgitとかで他人のコードを読みまくるのが大切と言ってたと思う

>>665
app/tmp/の中は基本的に消えちゃってもかまわないキャッシュファイルとかの置き場なので
作成したテキスト(がどんなものなのか知らないけど)がそういうたぐいのデータならそこでいいと思う

誰か>>618答えてくれー・・・
0668nobodyさん2010/07/03(土) 17:39:44ID:???
>>659
PHPのサンプル本とかで「○○の作り方」ってのを一個一個おさらいしていったらいい
それができれば、あとはcakeの中でそれらをくっつけていくだけでしょ
0669nobodyさん2010/07/03(土) 21:12:12ID:???
>>662
チュートリアルをそのまま殆ど写しただけで「終わりました」とか言ってないか?
そりゃ身に付いてるはずがない。
コピペすれば動くんだから、エラーの時の問題解決なんか出来るようになるわけないわな。

1から作るのがまだ辛いなら、チュートリアルアプリをなにか改造してみれ。
画面を増やすとか、レコード(テーブル)にカラム追加するとか、入力チェック追加するとか。
0670nobodyさん2010/07/04(日) 17:29:17ID:???
CakePHPは独力での学習コストは高いよ。
マニュアルがうんこだから。
非公式のチュートリアルもロクなもんがないしな。
0671nobodyさん2010/07/04(日) 17:46:20ID:???
object思考なにそれ?なおれが習得できたんだからそうでもないと思うけどな
0672nobodyさん2010/07/04(日) 18:30:42ID:???
CakePHPは独力での学習コストが高いと思うのは、
お前にとってCakePHPがはじめて使うフレームワークだからだろ。
0673nobodyさん2010/07/04(日) 19:01:49ID:???
よし学習コストが高いフレームワークを教えろ早く
0674nobodyさん2010/07/04(日) 19:19:56ID:???
.netはコスト高いぜ
0675nobodyさん2010/07/04(日) 19:30:42ID:???
struts
0676nobodyさん2010/07/04(日) 19:38:11ID:???
フレームワークが初めての人向けのチュートリアル
と、
フレームワークを既に知っている人向けのチュートリアル
があると、普及が促進されるかもね。
0677nobodyさん2010/07/04(日) 19:43:15ID:???
前にも誰か言ってたけど
バッドノウハウ的なもんがちょっと多いかなとは思う
0678nobodyさん2010/07/04(日) 20:39:01ID:???
>>674
.netはコスト低いだろ。
といってもmsの掌で踊るようなコードを書いてる限りだが。
0679nobodyさん2010/07/04(日) 23:19:50ID:???
チュートリアルと、実際に作るアプリの間に大きなギャップがあるのは確かだな。
チュートリアルを終えて、実際のアプリを作っていくうえで
「ここはどうやるんだろう」ということを何回も調べなければならない。
ま、どんなフレームワークでもそうだが、Cakeはチュートリアルが薄すぎる。
>>662が言っているのもそういうことだろう。
0680nobodyさん2010/07/04(日) 23:39:54ID:6la4DkIe
チュートリアルが薄いっつーのもあるけど
実際に開発通じての経験から言うと
フレームワークの設計の難に由来してる問題点も少なくないなと思った
よく知られてる大きなプロジェクトとかが
他のへ移行してしまうのは
やっぱそういった事も関係してるだろうなと思ったよ
0681nobodyさん2010/07/05(月) 00:27:13ID:???
CakePHPさわって、他のMVCフレームワークさわってみれば良いんじゃないの?
遠回りかもだけど、それぞれの似ているようで違う仕組みだから、より理解しやすいかも。
そして、CakePHP以外に合うものが見つかるかも。
0682nobodyさん2010/07/05(月) 01:12:10ID:???
俺ちゃんとつかったのはCakeが初めてなんだけど、他のFWに比べてCakeの良い点って何でしょう?
Javaの何かと比べると、覚える事が意外と少ないな、という印象なんですが・・・
■ このスレッドは過去ログ倉庫に格納されています