トップページ⇒php
985コメント290KB

【PHP】フレームワーク CakePHP 5ホール目【v1.2】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/12/19(金) 15:52:19ID:ylogT+7c
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
cookbook(マニュアル)
http://book.cakephp.org/ja
the Bakery
http://bakery.cakephp.org/

■日本語フォーラム
http://cakephp.jp/


■過去スレ
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0685nobodyさん2009/02/09(月) 23:30:16ID:???
mysql のテーブルが2つ用意してあって(稼動用、テスト用)
cakephp の設置は1つのままで、稼動用、テスト用のデータベースへの接続を
ファイルをかきかえる事なく自由にやる事ってなんかいい方法ないですかね?

ブラウザであるアドレスにアクセスすると、データベースをこっちみてくれる、とか
そんなんできないですかね?

ページが探せないんですけど、なんかすると debug の値を変更してアクセスできる
みたいな tips をどっかで見た記憶があるんですけど、そういう勢いで…。
0686nobodyさん2009/02/09(月) 23:34:21ID:???
稼働用とテスト用で二つファイルを置けばいいだけじゃねーか
0687nobodyさん2009/02/09(月) 23:40:42ID:???
>>686
どういう意味?

2つファイルを置いてリネームして使えってこと??

そうじゃなくて、通常にアクセスすると稼動用DB を見にいってるけど
なんか URL などにある細工をするとテスト用DB を見にいく、
みたいに設定ファイルをいじる事なくやりたいんすが。
0688nobodyさん2009/02/09(月) 23:54:57ID:???
>>687
$useDbConfig でググれば、ヒントがいろいろ出てくるはず。
0689nobodyさん2009/02/10(火) 01:05:58ID:???
/test/app
と
/unyo/app
って二カ所に同じものをコピーしてDBの設定だけ変えときゃいいんじゃねーの?
どうせテスト用のは一時的にソースいじったりするんだべ?
だったら運用とテストは別ディレクトリに分けといた方がいいんでないかい?
0690nobodyさん2009/02/10(火) 01:08:41ID:???
俺も>>689の方法に1票。
0691nobodyさん2009/02/10(火) 01:53:54ID:???
/test_unyo/app
で よくね?
0692nobodyさん2009/02/10(火) 02:21:12ID:???
動かねえなあと思ってたら単にモデルのファイル名を間違っていただけと
知った時は割とショック。
0693nobodyさん2009/02/10(火) 08:56:22ID:???
CakePHPの変態?CSSと心中するつもりは無いので、CSSを書き替えようと思うんだけど。
app/webroot/css/cake.generic.css
を直接書き替えればいいのかな?

何かお勧めの設定ありますか?
0694nobodyさん2009/02/10(火) 09:58:52ID:???
>>685
ttp://d.hatena.ne.jp/charly24/20070512/1178956046
debugの値じゃないけど、これも、設定変更が不要なパターンで使い勝手が良い
>>689のように別ディレクトリでも同じファイルでよいから、ミスが少ない
0695nobodyさん2009/02/10(火) 12:33:26ID:???
bakeで生成されるviewが編隊CSS前提になっているからなぁ。
うまく作らないとviewがぐちゃぐちゃになる。
0696nobodyさん2009/02/10(火) 18:10:04ID:???
>>689
俺そんなかんじで、appを分けてテスト用の方で機能追加したりしてたんだけど、
機能追加分がやっとできたー。と思って、本番用のappからテスト用のappにコピーしちゃった。
そして気づかずに速攻でリモート鯖にアップしちゃった。
機能追加した分が全部パーじゃねえか!・・・・

まあ俺用サイトの管理画面の手直しだからまだ救われるけど、
バージョン管理とか導入した方がいいのかもしれんなあ。とほほ。
0697nobodyさん2009/02/10(火) 18:21:35ID:???
SVNも使ってないのか
0698nobodyさん2009/02/10(火) 20:35:04ID:???
テスト用ディレクトリでコミットして
本番用はチェックアウトするだけってするのが
ミスもなくなってらくちんですよね
0699nobodyさん2009/02/10(火) 22:01:09ID:???
1.2対応decorat.phpマダァ-? (・∀・ )っ/凵⌒☆チンチン―
0700nobodyさん2009/02/10(火) 22:06:53ID:???
>>697
SVNって便利なの?どうやって使うの?
自動で差分を管理してくれたら、楽だろうなとは思う。

>>699
./cake bake all
が便利だったので、もういいか、って思う。
でも、bake allって焼き直す時に確認が多すぎてウンザリ。
0701nobodyさん2009/02/10(火) 22:09:54ID:???
>>684  >>661
今後、食っていけるかどうか不安で一杯なのに
「ボランティア」なんて心の余裕はない。勘弁してください。
0702nobodyさん2009/02/10(火) 22:46:53ID:???
>>700
そんなのほかのフレームワークからしたらしょぼすぎる自動生成だけどな
0703nobodyさん2009/02/10(火) 23:15:30ID:???
>>700
自動でバージョン間の差分出すとか、
当たり前というか出来なかったらバージョン管理ツールと呼べないw

個人で使うならSVNがお勧めだな
0704nobodyさん2009/02/10(火) 23:33:37ID:???
まだ全部読んでないけど。
良さげなんで、メモ
http://jeffhowden.com/code/css/forms/
0705nobodyさん2009/02/11(水) 13:25:54ID:???
http://cakephp.seesaa.net/article/96046006.html
0706nobodyさん2009/02/12(木) 03:37:49ID:???
てか、開発中のアドミン画面とか最初のScaffold段階ならまだしも
外に見せる部分にもcake.genericとか使っちゃうの?
0707nobodyさん2009/02/12(木) 07:26:53ID:???
>>706
外に見せるもののcssは独自設定になるね。cake.genericの設定は2割位しか
残らないかな。
0708nobodyさん2009/02/12(木) 12:04:09ID:???
http://cakephp.jp/
乙!
0709nobodyさん2009/02/12(木) 12:34:16ID:???
`Cakeは命の恩人` w...
0710nobodyさん2009/02/12(木) 16:27:26ID:???
まだ英語で読んだほうがわかりやすいわw
0711nobodyさん2009/02/12(木) 16:41:01ID:???
年月日を2つのフィールドで入力させてくれる
formヘルパーの拡張、誰か作ってくれ。いや、ください。
というか、formヘルパーの拡張って、どこですんの?
0712nobodyさん2009/02/12(木) 16:42:20ID:???
>711の訂正
2つのフィールドじゃない。3つのフィールドだ。
0713nobodyさん2009/02/12(木) 16:49:22ID:???
>>711-712
何をどう拡張して欲しいか、まったく分からんのだが
selectじゃなくてinputってこと?
独自のHelper作ればよろしいがな
0714nobodyさん2009/02/12(木) 19:58:05ID:???
AuthCompornentを使ったログインで、
ログイン画面を、管理者用と一般用に分けたくなりました。

そこで、管理者用にmodelが空のkanris_controllerを作って
$this->Auth->loginAction = '/kanris/login';
として管理者用ログインのviewを表示させたのですが、
うまくログインできません。

方法として間違ってるのでしょうか?
なにかヒントがあれば、教えて頂けませんでしょうか。
0715nobodyさん2009/02/12(木) 20:41:26ID:???
マニュアルを読め
0716nobodyさん2009/02/12(木) 20:41:53ID:???
>>714
viewだけ分ければいいでしょ。
0717nobodyさん2009/02/13(金) 02:26:21ID:???
BirthDay←→birth_day
この変換してくれる関数とか、ありませんか?
0718nobodyさん2009/02/13(金) 03:05:24ID:???
>>717
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
0719nobodyさん2009/02/13(金) 03:28:48ID:???
>>717
Inflector
マニュアルは暇な時にでも目を通しておこうよ。あとできればAPIも。
0720nobodyさん2009/02/13(金) 03:38:29ID:???
>>719
ありがとう。

マニュアル見ても、使い方と結びつかないと覚えられないのですよ。
0721nobodyさん2009/02/13(金) 03:52:15ID:???
とりあえず、ここまで来た。
<?php
class DateFormHelper extends AppHelper {
function input($title = null, $model = null, $field = null, $value = null) {
$class = "dateForm";
$name = "data[".$model."][".$field."]";
$txt = "\r";
$txt .= "<div class=\"input text\">";
$txt .= "<label for=\"".$model.Inflector::camelize($field)."\">".$title."</label>";
$txt .= "<input class=\"".$class."\" name=\"".$name."[year]\" type=\"text\" maxlength=\"10\" value=\"1970\" />";
$txt .= "年";
$txt .= "<input class=\"".$class."\" name=\"".$name."[month]\" type=\"text\" maxlength=\"10\" value=\"1\" />";
$txt .= "月";
$txt .= "<input class=\"".$class."\" name=\"".$name."[day]\" type=\"text\" maxlength=\"10\" value=\"1\" />";
$txt .= "日";
$txt .= "</div>\r";

return $this->output($txt);
}
}
?>
だが、引数が多すぎる・・・
Helperの中で、引数をどこからか取得できない?
0722nobodyさん2009/02/13(金) 08:01:17ID:???
>>721
その引数なら、HtmlHelperを使えば不要だろ。
0723nobodyさん2009/02/13(金) 08:30:00ID:???
ごめん。不要は語弊があるな。
0724nobodyさん2009/02/13(金) 11:24:30ID:???
DateFormHelperの中でHtmlHelperを使おうと思ったけど、
HtmlHelperってobsolate? 意外に面倒? って思って、
直接書いちゃった。
引数に当るものは、$this->params, $this->dataで
普通に取れた。
0725nobodyさん2009/02/13(金) 12:32:00ID:???
あ、違った。FormHelperだ
$this->Form->inputに渡しなさいってことよ
http://book.cakephp.org/ja/view/102/
0726馬鹿2009/02/13(金) 15:25:23ID:???
こんにちは、馬鹿ですw

>>637

ACOにmodelとforeign_keyを入れると、
たしかにcheck()で判定できました。

例えば、

$aro = array("model"=>"User", "foreign_key"=>1);
$aco = array("model"=>"Post", "foreign_key"=>3);
$this->Acl->check($aro, $aco, 'read')

みたいな感じでですよね。

ですが、Authと組み合わせても、
ACOのforeign_keyがまったく影響されません。

0727馬鹿2009/02/13(金) 15:26:41ID:???
上記のcheck()でdenyであるにも関わらず、posts/view/3を実行すると下記のようなSQLが実行されて
id:3のPostの内容が表示されてしまいます。

SELECT `Aco`.`id` , `Aco`.`parent_id` , `Aco`.`model` , `Aco`.`foreign_key` , `Aco`.`alias`
FROM `acos` AS `Aco`
LEFT JOIN `acos` AS `Aco0` ON ( `Aco0`.`alias` = 'Posts' )
WHERE `Aco`.`lft` <= `Aco0`.`lft`
AND `Aco`.`rght` >= `Aco0`.`rght`
ORDER BY `Aco`.`lft` DESC
LIMIT 0 , 30

# というか、なんでaliasで探しているんだ?
なんとかならないでしょうか?

ちなみに、beforeFilter()の中はこんな感じです。

function beforeFilter(){
$this->Auth->authorize = 'crud';
$this->Auth->authenticate = $this->NoHash;
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->mapActions(
array(
'create' => 'add',
'read' => 'view',
'update' => 'edit',
'delete' => 'delete'
)
);
$this->set('auth', $this->Auth->user());
}
0728馬鹿2009/02/13(金) 15:47:24ID:???
あと、マニュアルに

User の情報には、単独の Model::find() の実行結果が(もしアソシエーションが正しく定義されていれば、それも)含まれます。
逆に、ある特定のブログの投稿やレシピの表などを編集する作業を管理したい場合は、これらのモデルのレコードを ACO にリンクさせます。

とあるんですが、これって、

class User extends AppModel{
var $actsAs = array('Acl'=>array('requester', 'controlled'));
}

であれば、Userに所属するPostも同様に扱われる、と解釈していいのでしょうか。>Model::find()の実行結果が含まれます。
0729nobodyさん2009/02/13(金) 15:57:43ID:???
>>725
渡したいのは山々だが。うまいやり方が分からん。
特に、3つのinputを、一つの<div>に括るのが。

ちなみに、>721だと、cssに
form .dateForm {
width: 45px;
}
を追加すると、それぞれの数字の入力場所が小さくなって、
他のcssとの設定もあって、年/月/日の3つの入力場所が
1行に収まるのですよ。
0730馬鹿2009/02/13(金) 16:02:04ID:???
あと、私が、

> なんか、ここはレベル低いなぁ。

と言ったのは、例えば1つ上で、

> formヘルパーで、複数のテキスト入力boxを
> 1行に並べるのって、どうするの?

なんて質問している人がいるからだったんだが、
正直、すまんかった。

ちょっと苛ってた。
0731nobodyさん2009/02/13(金) 16:10:45ID:???
>>730
いいよ。
0732nobodyさん2009/02/13(金) 17:12:28ID:???
不特定多数が集まる場所でレベルとか・・
0733nobodyさん2009/02/13(金) 17:28:54ID:???
いいよいいよ、レベルが低いのは俺だけだから。
0734nobodyさん2009/02/13(金) 18:32:32ID:???
>>727
check()でfalseが返るならそれを判定して好きなようにエラー処理でもしろよ
まとめてやりたいならcontroller,actionを全部ACO扱いにしてapp_controllerのbeforeFilterあたりで好きにやれ
0735馬鹿2009/02/13(金) 20:38:17ID:???
>>734

> check()でfalseが返るならそれを判定して好きなようにエラー処理でもしろよ
> まとめてやりたいならcontroller,actionを全部ACO扱いにしてapp_controllerのbeforeFilterあたりで好きにやれ

うーん、そうするしかないのかな。
開発例だとACOがテーブル+アクション単位だからする必要がなくて、
ACOをレコード単位(モデル名と外部キー指定)で権限設定した途端になにか書かなければならない、
というのは変だと思うんだが…。
まぁ、aliasの使い方がまだ良く分かっていない。
というか、仕様が固まってなさ過ぎるんじゃないか、とさえ思った。

そもそも、GoogleしてもACOのmodelとforeign_keyに値を入れる人があまりいないんだよなぁ。
あと、こんな議論してたり…。
ttp://groups.google.ch/group/cake-php/msg/8d20dc14a91402c3


でも、実際にやってみて勉強になったし、感謝してる。
ありがとう。
0736nobodyさん2009/02/13(金) 22:19:37ID:???
やってて不便だと思う時は、自分が何か間違った手順をしてるんだと考えることにしてる。
0737nobodyさん2009/02/13(金) 22:26:38ID:???
1つのビューの中で、複数の paginator を使いたい時は
どうすればいいですか?
1つのモデルの中で、
過去の一覧、今日日付の一覧、未来日付の一覧のように
3つのテーブルを表示して、それぞれに paginator をつけたいんですが、
コントローラ変数 $paginateの定義をどうやって複数にすればいいか
わからなくて…。
0738nobodyさん2009/02/13(金) 23:20:28ID:???
>>725
$this->data['User']['birth_day'] = "1960-02-13" の様なデータを
どうやって$this->Form->inputに渡すか、ずっと考えてた。

$this->data['User']['birth_day']['year'] = "1960"
$this->data['User']['birth_day']['month'] = "02"
$this->data['User']['birth_day']['day'] = "13"
というデータを作って、
$form->text('User.birth_day.year', array('class' => 'dateForm'))
$form->text('User.birth_day.month', array('class' => 'dateForm'))
$form->text('User.birth_day.day', array('class' => 'dateForm'))
で、いいのか??
0739nobodyさん2009/02/14(土) 15:13:33ID:???
>>721
やっつけ

class FormHogeHelper extends FormHelper {
function dateText( $fieldName, $options = array( ), $separator = array( '年', '月', '日') ) {
// year
$opts = array(
'class' => 'input date year text',
'maxlength' => '4',
);
$options = am( $opts, $options );
$ret .= parent::text( $fieldName . 'year', $options );
$ret .= $separator[0];
// month
$options['class'] = 'input date month text';
$options['maxlength'] = 2;
$ret .= parent::text( $fieldName . 'month', $options );
$ret .= $separator[1];
// day
$options['class'] = 'input date day text';
$ret .= parent::text( $fieldName . 'day', $options );
$ret .= $separator[2];

return $ret;
}
}
0740nobodyさん2009/02/14(土) 19:24:44ID:m6dznHMB
>>737
俺ならPEARのPagerで実装しちゃうかも…それ。
いい方法が思いつかない。


ところで、皆様ビュー作るときのデザインってどうしてる?
デザイン周りはDreamweaver、ロジックはeclipseで書いてるんだけど、
ctpに落とし込むとめんどくさいのだよね。Htmlヘルパーで画像差込すると
デザインプレビューできないし。
0741nobodyさん2009/02/14(土) 21:44:54ID:???
>>740
全部eclipseでガリガリ書くのが結局はやい。
プレビュはブラウザのF5で十分
0742nobodyさん2009/02/14(土) 22:11:23ID:???
>>740
cakeの機能でやりたいんだよなー
なんとなく。

でもPEARのPagerなら可能なんだね。
いいこと聞いたわ
0743nobodyさん2009/02/14(土) 22:27:43ID:???
>>739
なるほどー。こうやって拡張するんですね。
まだ検証できてないけど、後で試します。
ありがとうございます。
0744nobodyさん2009/02/15(日) 00:08:56ID:???
>>737
model内で、paginateCount()とpaginate()の一番めの引数にsqlを渡せるようにしとく。
controller内にsql書くのはアレなので、sql取得用のメソッドも書いとく。

controller内で
$this->paginate = array(
 'conditions' => $this->Model->getSql( '過去'),
 'limit' => $limit,
);
$this->set( 過去の一覧, $this->paginate( 'Model' ) );

$this->paginate = array(
 'conditions' => $this->Model->getSql( '今日'),
 'limit' => $limit,
);
$this->set( 今日日付の一覧, $this->paginate( 'Model' ) );


$this->paginate = array(
 'conditions' => $this->Model->getSql( '未来'),
 'limit' => $limit,
);
$this->set( 未来日付の一覧, $this->paginate( 'Model' ) );

0745nobodyさん2009/02/15(日) 05:16:04ID:???
>>739
おかげで、タグが無くなり、可読性が上がりました。
'1960-02-13'を、年、月、日に分ける処理は必要でした。
0746nobodyさん2009/02/15(日) 11:18:12ID:???
レイアウトにデータ(ログイン中のユーザー名)を渡すには、
AppControllerでsetするしかないの?
個別のコントローラでsetしたら未定義エラーになった。
0747nobodyさん2009/02/15(日) 11:59:08ID:???
できた。>746は忘れてくれ。
飲み会明けで、思考力が落ちてるわ。
0748nobodyさん2009/02/15(日) 18:54:59ID:???
たすけてー。

Openidを使うためにOpenidコンポーネントを使おうとしています。

で、バックエンドをMySQLから変更したいんだけど(Postgres使いたい)、
/components/openid.php の
getMySQLStore周辺をゴニョゴニョ弄っても認証が通らないです。

具体的には
 $db = DB::connect($dsn);で接続は出来てるんだけど、
 その後の処理の中でnonceとかassociationがDBに入っていかない
 →認証の戻りでエラー(OpenID verification failed: Server denied check_authentication)

(バックエンドをファイルベースに変えると
 認証用のファイルが作成されて、認証も通ることは確認した)

OpenidコンポーネントでバックエンドをMySQLから変える方法って
どこかに資料とか無いでしょうか……。

0749nobodyさん2009/02/15(日) 19:55:19ID:???
>>748
ポスグレの対応にはバグがあるってどっかで読んだなぁ
07507482009/02/15(日) 21:36:19ID:???
>>749
><
0751nobodyさん2009/02/15(日) 22:18:27ID:???
>>750
いや、うろ覚えだから気にしないで
07527482009/02/15(日) 23:56:08ID:???
ソース延々辿ってったら
Auth/OpenIDのMySQLとPostgresqlで
データの持ち方が何か違うくさい箇所があって、
嫌な予感はしてたのよー。

……とりあえず放置w
(この先はもう気力が持たない)
0753nobodyさん2009/02/16(月) 12:30:03ID:???
>>740

> ところで、皆様ビュー作るときのデザインってどうしてる?
> デザイン周りはDreamweaver、ロジックはeclipseで書いてるんだけど、
> ctpに落とし込むとめんどくさいのだよね。Htmlヘルパーで画像差込すると
> デザインプレビューできないし。


つ ttp://www.studio-kingdom.com/cakephp/48

.thtmの説明ですが、.ctpも一緒に追加すれば使えます
0754nobodyさん2009/02/16(月) 12:54:51ID:???
大量のデータをデータベースに登録するとか、
すっごい時間がかかりそうな処理をする時に、
プログレスバーみたいな物って、どうしてる?
出してる?
待ち時間を計るって意味もあるけど、
出さないとtimeoutしそうな心配。
0755nobodyさん2009/02/16(月) 15:05:29ID:???
simpletest入れてみた。

CakePHP Test Suite v 1.2.0.0の画面は出て
自作のテストも動くんだけど、
simpletestディレクトリの中にあるファイルの使い方がわからない。

ドキュメント見ると「tests/all_tests.php」に書け的なことが書いてあるけど、
そこに置いても適当に動かしても認識されない。

なんか便利そうなんだけどなぁ。>simpletest
0756nobodyさん2009/02/16(月) 18:43:48ID:???
一般的に自分で書いたバリデーションルールってビヘイビアに書くもの?
0757nobodyさん2009/02/16(月) 21:37:13ID:???
>>756
AppModelだろjk
0758nobodyさん2009/02/16(月) 21:44:40ID:???
>>757
根拠は?
0759nobodyさん2009/02/16(月) 21:54:17ID:???
>>758
つ http://book.cakephp.org/ja/view/18/
0760nobodyさん2009/02/16(月) 21:58:13ID:???
どこに何を書くのか、正直迷う事がある。

>739で教えて頂いたのはFormHelperの拡張だったけど、
同じ機能を、
class DateFormHelper extends AppHelper {
var $helpers = array('Form');
でもほぼ同じで実現できる。できるんだけど・・・
FormHelperの拡張の方がいいのか?
FormHelperを読込む方がいいのか?
パフォーマンスに違いって出る??
0761nobodyさん2009/02/16(月) 22:19:02ID:???
>>757
親クラスに手を入れてよいものなのか?
0762nobodyさん2009/02/16(月) 22:24:43ID:???
manyuaruyomekasu
0763nobodyさん2009/02/16(月) 23:02:45ID:???
>>759
それはアプリ固有の話だろ
バリデーションなら他のアプリでも流用できるんだから
ビヘイビアのほうがいい
0764nobodyさん2009/02/17(火) 00:34:45ID:???
>>763
あんた天才。
email や name っていうよく使う奴だったら validation behaviour を作って、
それにまとめてかいて actas で読み込むってことか。

ナイス、アイデア!
0765nobodyさん2009/02/17(火) 06:29:15ID:???
strutsしか触ったことないから、バリデーション記述場所に違和感が。
最近のフレームワークはみんな、バリデーションをモデルに書くものなのかな?
0766nobodyさん2009/02/17(火) 09:56:53ID:???
>>761
何のためのapp_modelだと思っているのだ、キミは。
>>763-764
複数のappで共有するためにbehaviorを使うということかな?
具体的にどうするんだろうか?
setupで、$model->validateを書き換え、ってことかな?それとも、beforeSaveを利用するの?
0767nobodyさん2009/02/17(火) 10:00:17ID:???
あれ?単に独自メソッド記述すれば、$model->hoge()が使えるんだっけ?そこでvalidateするってことか。理解したわ
0768nobodyさん2009/02/17(火) 17:55:44ID:???
paginateですが、検索条件を次の画面に引き渡したい時はセッションに入れるべきですか?
それともURLパラメータにセットすべきなの?
0769nobodyさん2009/02/17(火) 20:09:38ID:???
>>766
ModelBehaviorクラスにbeforeValidateがあるからそれを使えばいいお
0770nobodyさん2009/02/17(火) 21:53:41ID:???
これとCodeIgniterってどっちがいいの?
07715602009/02/18(水) 10:11:30ID:???
ドキュメントのコードをざっと見て、見やすい方を選択すればよろし
0772nobodyさん2009/02/18(水) 10:25:52ID:???
>>770
つ http://pc11.2ch.net/test/read.cgi/php/1229960175/
0773nobodyさん2009/02/18(水) 12:03:42ID:???
Googleトレンド見たらRailsに追い付きそうだ
0774nobodyさん2009/02/18(水) 16:57:38ID:???
Cake、便利なんだけど、
フォームのname属性見るだけで
データベースのスキーマが手に取るようにわかっちゃうのがなんか嫌。
0775nobodyさん2009/02/18(水) 17:04:35ID:???
それがいいんじゃないの?
0776nobodyさん2009/02/18(水) 19:23:15ID:???
それはセキュリティ的にだめだろうね
0777nobodyさん2009/02/18(水) 19:27:16ID:???
何がセキリュティ的に駄目なんだ?
もともとスキーマが分かれば攻撃できちゃうような
駄目システムがさらに弱くなるってことか?
0778nobodyさん2009/02/18(水) 19:31:09ID:???
その時完璧な対策を施しても脆弱性なんてほとんどのシステムで見つかるものだから
脆弱性が見つかった後の防御が落ちる
0779nobodyさん2009/02/18(水) 20:25:48ID:???
スキーマが?
0780nobodyさん2009/02/18(水) 20:45:10ID:???
Commercial FREE って意味はなんですか?
商用でもOKってことですか?
0781nobodyさん2009/02/18(水) 20:47:06ID:???
CMが無料ってことなんじゃないかな
0782nobodyさん2009/02/18(水) 20:47:11ID:???
>>778
要するにフィールド名がすぐにわかるようではセキュリティに問題があるということね。

なら、君は今から、
「脆弱性対策のために安易に推測できるフィールド名を使わないようにする。」
というルールを提唱するべきだ。

例
商品名のフィールド名を product_name にしてはいいけない。
値段のフィールド名を price にしてはいけない。
0783nobodyさん2009/02/18(水) 23:04:31ID:???
このサイトのバグって1.2で修正されてる?
ttp://blog.livedoor.jp/coelacanth_blog/archives/55093835.html
0784nobodyさん2009/02/19(木) 00:14:13ID:???
>>782
落ち着けよ。
「出さなくて済む情報は可能な限り出さない」
はセキュリティの基礎の基礎でしょうが。

>商品名のフィールド名を product_name にしてはいいけない。
product_nameだろうとfooだろうとbarだろうと
「公開されているのは、公開されていないより、
 セキュリティ的には望ましくない」

あとは生産性その他との
トレードオフでどう考えるかという話。
(でもスキーマが判るのはcakeに限らないんじゃないか?
 よく知らんけど)
■ このスレッドは過去ログ倉庫に格納されています