【PHP】フレームワーク CakePHP

このエントリーをはてなブックマークに追加
1nobodyさん
おら、とうとうガマンできなくて立てちまっただ

本家
http://www.cakephp.org/

10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

マニュアル日本語化
http://www.cakephp.jp/doc/

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

あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
2nobodyさん:2006/11/18(土) 20:58:37 ID:???
どーすんだよこのスレ
3nobodyさん:2006/11/18(土) 22:48:32 ID:???
smartyで挫折した俺様でも楽しく作れますか?
4nobodyさん:2006/11/19(日) 10:16:42 ID:???
>>3
きっとやれる きっとやれるさ
5nobodyさん:2006/11/19(日) 10:59:04 ID:???
甘い物が好きならケーキは食えるさ
6nobodyさん:2006/11/19(日) 13:27:36 ID:EFwoFeZu
>>3
下手するとsmartyより覚えることが少ない
慣れることは重要だが
73:2006/11/19(日) 14:21:47 ID:???
とりあえずなにかおしえてくれ
8nobodyさん:2006/11/19(日) 18:23:56 ID:???
まずは何をしたいんだ?blogでも作るのか?
9nobodyさん:2006/11/19(日) 19:59:39 ID:???
フレームワークチャレンジャーはCakePHPから入ろう!
Ruby on Railsに似てるんですよね?
エキスパートプログラマーの皆さん、ご質問への回答をよろしくお願い致します。<(_~_)>
10nobodyさん:2006/11/19(日) 20:03:59 ID:???
lt;?php symfonyとフランチョスのスレ ?gt;

↑シンホニーのスレタイ・・・なんだかな〜。orz
11nobodyさん:2006/11/19(日) 20:04:39 ID:???
最近のFWは大概railsから色々パクってるよ
cakeはPHP4で且つどうしてもっていう理由がない限り世話になりたくないな
12nobodyさん:2006/11/20(月) 10:06:03 ID:???
>>11さんのオススメ教えていただければ幸いに存じます
133:2006/11/20(月) 11:04:26 ID:???
簡単に作れるアプリを教えてください。
何度も言うがsmartyで挫折した俺様でも大丈夫でしょうか?
14nobodyさん:2006/11/20(月) 12:17:58 ID:???
http://p4life.jp/cake/
まずはこの通りにやってみる
153:2006/11/22(水) 02:22:02 ID:???
10分なんて長すぎ。1分で作れるものたのむ。
そう、Hello Worldを表示するだけでいいんだよ。それを教えてくれ
16nobodyさん:2006/11/22(水) 04:20:41 ID:???
>>15
サーバとCakeがしっかりインストールされているものとする。
1.app/config/database.php.default のファイル名をdatabase.phpに変える(10秒)
2.こうしてできたdatabase.phpをエディタで編集、とりあえずmysqlにつながるように設定(15秒)
3.app/views/pagesの下にhome.thtmlを作って、
 中身はとりあえず<strong>3は極度に忍耐力の無いゆとり教育の犠牲者で精神疾患</strong>とする(20秒)
4.ブラウザで確認(5秒)
5.ちょっと抜けてるとこを修正(5秒)
6.もう一度ブラウザで確認(5秒)

はいできた。ちゃんと答えたんでやってくれ
173:2006/11/22(水) 23:10:36 ID:???
2.こうしてできたdatabase.phpをエディタで編集、とりあえずmysqlにつながるように設定

ここにつまずいて1分オーバーした。
18nobodyさん:2006/11/24(金) 01:43:03 ID:???
>>16
1分じゃできないけど試してみる

あっ、ダウンロードとアップロードのやり方も教えて
19nobodyさん:2006/11/24(金) 02:08:20 ID:???
>>17-18
フレームワーク以前。
20nobodyさん:2006/11/24(金) 03:26:44 ID:???
17は偽者
本物は俺様だけどもう名無しで潜伏するからバカにしないでくれ
21nobodyさん:2006/11/27(月) 09:17:16 ID:???
http://localhost/cake_blog_tutorial/にCakePHP入れてチュートリアルやってたんだけど、無効なURL〜みたいなエラーが発生。
mod_rewriteが悪いのかな?と思いつつ調べてみたら.htaccessのRewriteBaseを設定しないといけないと書いてあった。

/.htaccess
RewriteBase /cake_blog_tutorial

/app/.htaccess
RewriteBase /cake_blog_tutorial/app

/app/webroot/.htaccess
RewriteBase /cake_blog_tutorial/app/webroot

これで動作した。同じ事で初っ端から躓く人が居るかもしれないからここに書き残しておく。
(躓いたおかげでチュートリアルに1時間半かかったw)

参考:orihasam’s log
ttp://d.hatena.ne.jp/orihasam/20060809
22nobodyさん:2006/11/27(月) 20:56:02 ID:???
こうやって持ちつ持たれつで世の中成り立っているんだなあ。
>>21 おつかれちゃんです。
23nobodyさん:2006/11/29(水) 22:41:18 ID:???
来月はクリスマスケーキ食べるから12月にはいったらもりあげてやるかそうがねえな。
24nobodyさん:2006/11/30(木) 13:49:29 ID:???
DBをMysql以外で利用したく、PEARでの利用方法をどなたか教えてください。
database.phpにてdriverは、pear-drivernameとあったので
pear-ibaseとしてみたのですが、ファイルが見つからないとなります。
pearとすると、venderにDB.phpがないと怒られます。
PEARへのパスはinclude_pathにあり、他のスクリプトではPEARを利用できます。
(これがクリアできても、connectの書き方が不明なのですが・・・)
どなたかよろしくお願いします。
2521:2006/11/30(木) 14:42:13 ID:???
/vender/Pear/ にPEARを入れて、driver に pear-ibase でいけそうな気もする。connectは・・書かなくてよかったりするのかな?

/trunk/cake/libs/dbo_factory.php
76  // special case for PEAR:DB -- driver name in the form of 'pear-drivername'
77  elseif (preg_match('#^pear[\-_](.*)$#i', $config['driver'], $res))
78  {
79   uses('dbo/dbo_pear');
80   $config['driver'] = $res[1];
81
82   $instance = array(new DBO_Pear($config));
83  }

/trunk/cake/libs/model/dbo_pear.php
62  function connect ($config)
63  {
64   $this->config = $config;
65
66   $dsn = $config['driver'].'://'.$config['login'].':'.$config['password'].'@'.$config['host'].'/'.$config['database'];
67   $options = array(
68    'debug' => DEBUG-1,
69    'portability' => DB_PORTABILITY_ALL,
70   );
71
72   $this->_pear =& DB::connect($dsn, $options);
73
74    return !(PEAR::isError($this->_pear));
75   }

うん、最近始めたばっかりでよく分かってないんだ。(趣味PGのFW初挑戦で手探り状態だし)
26nobodyさん:2006/11/30(木) 16:05:16 ID:???
>>25

左の行番号は手動で書き加えたんですか?
なんかツールとか使って、行番号を表示できるんですか?
便利なツールがあれば教えてください。
よろしく!
2721:2006/11/30(木) 16:16:08 ID:???
Cake公式のAPIリファレンス(http://api.cakephp.org/)から見れますよ。
Classes で見たいクラスを選択すればメソッドとか継承関係が見れるし、そこから行番号付きのソースコードも見れて便利。
28nobodyさん:2006/11/30(木) 16:48:52 ID:???
>>26
XAMPPでApacheとMySQL動かして、開発環境はPHP IDE使ってます。

>便利なツール
phpspotのPHPエディタのスタンドアロン版とかいいかも(PHPファイルを修正する時とかに愛用)
導入は簡単だし、行番号表示とかPHPの入力支援も付いてたりして、なかなか使いやすいですよ。

↓開発環境とかエディタに関しては以下のスレが参考になるかと
【ZendStudio】PHP統合開発環境 Part2【Eclipse】
http://pc8.2ch.net/test/read.cgi/php/1154082822/
PHPエディタって、どうよ?
http://pc8.2ch.net/test/read.cgi/php/1079460638/

>>23
明日から12月・・期待しておきますね。
29nobodyさん:2006/11/30(木) 16:54:17 ID:???
cakephp って php4 では動かないんでしょうか。
最初 Windows XP + php-5.1.4 で http://p4life.jp/cake/ のアプリケーションを試したところ問題なく動きました。
次に環境を変えて Windows XP + php-4.4.4 としたところ
Notice: Undefined index: Item in C:\cake\cake\libs\view\templates\scaffolds\list.thtml on line 106
というエラーが発生して動かなくなりました。
http://manual.cakephp.org/chapter/intro には Compatibility with PHP4 and PHP5 とかいてあるのですが。。。
30nobodyさん:2006/11/30(木) 17:07:03 ID:???
>>21
すげー役に立った!
dクス
31nobodyさん:2006/11/30(木) 17:37:35 ID:???
>>29
CakePHPはphp4でもphp5でも動きますよ。

原因はよく分からないけど、存在しない添え字で配列を読もうとしてエラー吐いてるみたいだから・・
Controllersでのsetを書き間違えてたりとかありそうだけど、そのまま打ってるのなら問題なく動作するような・・んー?
32nobodyさん:2006/12/01(金) 01:23:47 ID:???
>>27-28
サンキュー!ありがとね〜☆^^
3324:2006/12/01(金) 18:04:24 ID:???
>>25
アドバイスありがとうございます。結論からいうと接続できていません。
PEARディレクトリを、vendersにコピーしました。
■driverにpearを指定すると
Your database configuration file is present.
Fatal error: Cannot instantiate non-existent class: dbopear in 'path to'\cake\libs\model\connection_manager.php on line 106
■driverにpear-ibaseを指定すると
Your database configuration file is present.
Fatal error: Unable to load DataSource file dbo\dbo_pear-ibase.php in 'path to'\cake\libs\model\connection_manager.php on line 153
です。該当行をみてみましたが、パッと見でわかるようなものじゃないので・・・。

connectについては、それ以前のようです。
どうしたものか・・・。
34nobodyさん:2006/12/01(金) 18:20:27 ID:???
"ibase"でいけないか?
3524=33:2006/12/01(金) 23:38:28 ID:???
>>34
ibaseでいけません。
dbo以下にあるファイルを探しに行くので、使えそうなのは
adodb,mssql,mysql,mysqli,odbc,postgres,sqliteとpearっぽいです。
dbo_ibase.phpも書けそうに思えますが、
後々のことを考えpearで使いたいのです。
36nobodyさん:2006/12/02(土) 04:38:50 ID:???
ケーキって何ができるの?そこ教えてくれ。あとは自分で勉強するから。
37nobodyさん:2006/12/02(土) 07:30:12 ID:???
>>36
今のお前に理解できる範囲のことができる(マジレス)
38nobodyさん:2006/12/02(土) 13:58:45 ID:???
PHPでラーメン作れますか?
http://pc8.2ch.net/test/read.cgi/php/1133510693/
PHPで焼きそば作れますか? (28)
http://pc8.2ch.net/test/read.cgi/php/1164731497/
無理!!!

PHPでケーキ作れますか?
無理!!!
39nobodyさん:2006/12/02(土) 14:09:23 ID:???
4024=33:2006/12/02(土) 21:44:41 ID:???
>>39
3.A supported database engine (currently MySQL, PostgreSQL or using a wrapper around ADODB).
pearは実装できていないんですね。他のフレームワークをあたります。
41nobodyさん:2006/12/02(土) 22:28:03 ID:1bAtVRRj
DB接続は cakePHP と pear と何が違うの?
42nobodyさん:2006/12/03(日) 03:44:22 ID:???
>>40
一応DataSourcesの中にはDBO_Pearってあるけど
まあちゃんと動くかわからんが
4324=33=40:2006/12/03(日) 19:42:04 ID:???
>>42
はい、あることは分かったのですが、使い方が不明なんです。
44nobodyさん:2006/12/04(月) 11:00:42 ID:???
ADODBの使い方調べればええんとちゃうの?
45nobodyさん:2006/12/04(月) 12:45:21 ID:???
>>44
何を根拠に?
46nobodyさん:2006/12/04(月) 18:02:51 ID:???
44ではないが、24はinterbase使いたいならADODBでいいのでは
ということでは
4724:2006/12/05(火) 15:58:17 ID:???
残念なご報告です。
■pearでの接続は実装されていないことを再確認しました。(cake_1.1.10.3825.zip)
cake/libs/model/dbo/dbo_pear.phpは、クラス名すら違っています。
(DBO_Pear、正しくは、DboPear)つまり、一度もテストすらされていないようです。
なぜそんなものをリリースに入れているのか不明です。文化の違いでしょうか。
クラス名を変更してもdsnが生成されません。disconnect()も「先にこっちを・・・」
といったメッセージの出力のみです。
■ADODB試してみました。Interbase,Firebirdではおそらくテーブル名、フィールド名
の規約で使えません。Interbase,Firebirdは、テーブル名とフィールド名は
大文字となります。
create table posts ...とするとPOSTSというテーブルが作成されます。
create table "posts" ...でpostsが作成されますが、
select * from posts だとテーブルPOSTSが対象となり、postsを対象に
するにはselect * from "posts"と"でくくらないといけません。
フィールド名も同じです。
そのため、チュートリアルは動作しないようです。
回避する方法もなさそうなので断念します。
48nobodyさん:2006/12/05(火) 20:41:54 ID:???
>>47
cake_1.1.11.4064では、少なくともclass名はDboPearに直っている。
4929:2006/12/07(木) 15:33:20 ID:???
亀レス失礼します。
http://p4life.jp/cake/
のアプリケーションはphp4でうごきませんでしたが、
ブログ作成チュートリアル
http://www.cakephp.jp/doc/blog_tutorial.html
はphp4で動きました!
Controllerの書き方を考える必要があったようですね。
50nobodyさん:2006/12/12(火) 09:03:56 ID:???
ちょっと教えてもらいたいんですが、
modelのJoinで同一テーブルに対してhasAndBelongsToManyの関連を
複数設定した時に、scaffoldで生成した更新画面の関連表示が一つしか
出てくれない状態になってしまいます。

配列のキーはそれぞれのJoinTable名をつけてるので、キーを上書きしてる事は
ないと思うんですが、同様の現象を経験した方いらっしゃるでしょうか?

classNameが一緒だと駄目なのかなぁ・・・
51nobodyさん:2006/12/14(木) 08:15:45 ID:???
>>44
1.1.9の段階ではDBO_Adodbはバグだらけだったよ。
使うならデータベースはMySQLかPostgreSQLにしておいたほうが無難。
52nobodyさん:2006/12/14(木) 21:06:37 ID:???
>>50
自己レスです。

classNameを分けることで無事うまくいきました。
具体的な対応としては、対象テーブルを基底クラスとしてJoin毎に継承クラスを
ベタに作成してバインディングしたところ、期待した挙動になってくれました。

ん〜、いいフレームワークだ。
53nobodyさん:2006/12/19(火) 17:04:45 ID:???
http://localhost/admin/
でアクセスしたときに静的なHTMLを表示させたいんですが、view などはどこに置けばいいのでしょう?
/app/config/core.php の
define('CAKE_ADMIN', 'admin');
はコメントをはずしてあります。
/app/views/pages/admin_home.thtml なるものを作成しましたが、以下のエラーが表示されました。

Missing controller
You are seeing this error because controller Controller could not be found.
Notice: If you want to customize this error message, create app\views/errors/missing_controller.thtml.
Fatal: Create the class below in file : app\controllers\controller.php
<?php
class Controller extends AppController {
var $name = '';
}
?>
54nobodyさん:2006/12/19(火) 19:47:16 ID:???
>>53
/app/webroot/admin/index.html
55nobodyさん:2006/12/19(火) 20:45:57 ID:???
53じゃないが
>>54
なるほど!Cake admin使うときの静的ページはそっちに書くのか
5653:2006/12/19(火) 23:57:58 ID:???
>>54
おお、できた!
dクス!
57nobodyさん:2007/01/11(木) 10:42:20 ID:???
すいません!質問です。

レコードの追加・削除・編集を繰り返していると、
なぜか時々、追加したレコードの前に、「空のレコード」が
いくつか挿入されてることがあります。
これまで何度かあったのですが、うまく再現できないので、
MySQLの問題なのかCakeの方なのかの切り分けもできません・・・。
MySQLではフィールド 'id' をauto incrimentに設定してます。
(フィールド追加するときはauto incrimentにまかせてます)

どこからあたりをつけていけば良いのかのヒントでも
頂ければ助かります。

環境は
XAMPP
cake1.1.12.4205
です。

どうか、ご教示よろしくお願いします。
5857:2007/01/11(木) 10:43:37 ID:???
○auto increment
×auto incriment
でしたすんません・・・
5957:2007/01/15(月) 15:43:05 ID:???
漏れみたいな症状の人間はいないのか・・・
デリートをPHPMyAdminでやってるから?関係ないか
60nobodyさん:2007/01/26(金) 23:45:23 ID:???
CakePHP1.2でバリバリ開発してるって人いらっしゃいますか?

もし、いたら伺いたいのですが結構バギーでしょうか?
CakePHP1.1で開発始めたのですが、メール機能等で欲しい機能が
充実しているので1.2をやっておいたほうがいいのか、と考えております。

よろしければ、現状での感想と1.2使ううえのアドバイスをお願い致します。
m( __ __ )m
61nobodyさん:2007/01/27(土) 02:59:23 ID:???
>>60
自分も同様の理由で1.2に手を出しかけましたが
メールの日本語対応とか考えると厄介なので
ひっこめました。
62nobodyさん:2007/01/27(土) 21:40:37 ID:???
>61
貴重なアドバイス感謝です。
ドキュメントとか考えるとやはり1.1のいい感じですね。

ありがとうございましたw

他にも何かありましたら、ご教授お願い致します。
63nobodyさん:2007/02/01(木) 09:23:03 ID:???
疑問点:
・cakePHPのキャッシングってどこからどこまでの動作を飛ばすのか
・view/elementsがviewとキャッシュの生存時間が違う場合キャッシュできない?
 自前でしろってことかしらん
・view/layoutsでヘッダ部を動的に変えたい場合どうするんだろう。
 css変えたいとかjsのライブラリをロードしたりしなかったりしたい

誰か知ってたら教えてプリーズ
64nobodyさん:2007/02/01(木) 10:56:18 ID:???
>>63
>・cakePHPのキャッシングってどこからどこまでの動作を飛ばすのか
コントローラから吹っ飛ぶので、キャッシュファイルにはコントローラ生成のPHPが書いてある。

他はどっかにコードが落ちてそうな気がする。
65nobodyさん:2007/02/01(木) 15:01:58 ID:???
>・view/layoutsでヘッダ部を動的に変えたい場合どうするんだろう。
適当に変数setしてそれ見ればいいんじゃないの?
66nobodyさん:2007/02/06(火) 10:10:41 ID:???
>>64-65
サンクスです。

$title_for_layout、$content_for_layout
しか使えないのかと思ってた。
67nobodyさん:2007/02/07(水) 06:36:38 ID:???
とりあえずこれは「ケーキPHP」と読むので合ってる?
最初「ケークPHP」と読んでしまった。
68nobodyさん:2007/02/07(水) 08:55:55 ID:???
>>67
え?俺も ケイクピーエイチピー だけど?
69nobodyさん:2007/02/07(水) 14:02:03 ID:???
>>68
だよね。俺まえも「エイジャックス」のこと「アジャックス」って読んでた前科モチだから・・・
「ペア」も「ピアー」って読んでたし・・・
70nobodyさん:2007/02/08(木) 16:29:26 ID:???
perlをぺるると呼んでいた俺よりマシだ
71nobodyさん:2007/02/08(木) 17:12:43 ID:???
>>70
なんかカワイイぞ
72nobodyさん:2007/02/08(木) 17:35:17 ID:???
まじかるぺるるーとくん
73nobodyさん:2007/02/08(木) 21:05:03 ID:???
くだ質なんだけど、cakePHPに限定して起こるんでこっちでいいかな?
いちおう下げて質問書いときます。
問題は、cakePHPでファイルアップロードが出来ない・・・

<input type="file" name="image" />
こんな感じでフツーにファイルを送信して、
$_FILESで参照してるんだけど、
cakePHPで実装すると$_FILESの値が空になります。

pr($this->rapams['form']);
では、
['image'] => hogehoge.jpg
とファイル名のみ参照できる模様で、ますます混乱するばかり。
なんか解決のヒントないですか
74nobodyさん:2007/02/09(金) 09:21:40 ID:???
formタグに enctype="multipart/form-data"がないとか

なわけないか
75nobodyさん:2007/02/11(日) 08:17:38 ID:???
自分にも関係あることだからやってみたけど普通にできた。

>>74 の言うとおり enctype="multipart/form-data" がないに一票。
76nobodyさん:2007/02/26(月) 17:58:23 ID:???
遅レスだが>>73

1.テンプレートの方でファイル送信フォームのとこ
<?php echo $html->file('data[Hoge][image]', array('id' => 'hoge_image', 'size' => '40', 'value' => $hoges['Hoge']['image'], )) ?>
とする

2. $this->params['data']['Hoge']['image']['name']に名前が入ってるのと
$this->params['data']['Hoge']['image']['size']にサイズが入ってるのを確認する

3.
move_uploaded_file($this->params['data']['Hoge']['image']['tmp_name'], WWW_ROOT . "images/uploaded/". $this->params['data']['Hoge']['image']['name'])

ってな感じでどうよ
77nobodyさん:2007/02/26(月) 22:12:58 ID:???
hoge_controllerを作って、index()追加しただけじゃ、hogeのviewは見れないんでしょうか?
modelにhogeを追加しろってエラー出るんですが、、、Railsじゃできるんだけどなぁ
78nobodyさん:2007/02/26(月) 22:49:28 ID:???
>>77
controller内に
var $uses=array();
とかやってみたらいけるんでないかい。ためしてないけど。
だめなら$useTable=array();なHogeモデルを作ったらいけるんでないかい。
ためしてないけど。
79nobodyさん:2007/02/27(火) 00:36:01 ID:???
var $uses=array();
でうまくいきました!
ありがとうございます。
でも、なぜかうまくいったのかわからないので、具体的に教えてくれたらすごく嬉しいです。
80nobodyさん:2007/02/27(火) 01:34:37 ID:???
>>79
78ではないが、
Hoge_ControllerはデフォルトでHogeというモデルを読み込もうとするから。

いわゆるひとつのconvention over configuration
81nobodyさん:2007/02/27(火) 11:39:45 ID:???
$usesという変数に設定されるから、
ダミーとして、配列を無理矢理渡してあげるって幹事?
82nobodyさん:2007/02/27(火) 12:08:47 ID:???
hoges_controllerは、
$users = array('Hoge');
がデフォで設定されるんで、モデルを使わないことを明示してあげるって漢字
83nobodyさん:2007/02/27(火) 12:20:08 ID:???
>>82
なるほどね!
hogeコントローラで、hoge2モデルを使いたかったら、
$uses = array('hoge2');
ですね。
hoge2もhoge3も使いたい場合はどうしたらいいんでしょう?

ってかここ人少ないですね。cakeって人気ないのかな?
84nobodyさん:2007/02/27(火) 14:22:29 ID:???
>>83
$uses=array('hoge','hoge2','hoge3');
何のための配列なのかと小一時間

たしかにもりあがってねえなーCake。
85nobodyさん:2007/02/27(火) 19:30:45 ID:???
ドキュメント充実してるしな

>77みたいなのが例外
86nobodyさん:2007/02/27(火) 21:34:43 ID:???
みんなデザイナーとの摺り合わせはどうしてるの?
Smarty間に挟んでるのかな。
87nobodyさん:2007/02/27(火) 21:47:05 ID:???
このフレームワークってRailsやったことある人はすごいさくさく理解できるけど、
逆にやったことない人は挫折しやすい気がする。
Railsみたいに本出てないからなぁ。
88nobodyさん:2007/02/27(火) 23:32:59 ID:???
全てのコントローラ、ビューで使えるような、
グローバル変数はどこで定義する?
89nobodyさん:2007/02/27(火) 23:43:04 ID:???
自己解決しました
core.phpに設定しときました。
90nobodyさん:2007/02/28(水) 01:48:06 ID:???
>>89
いや・・・そういうのはbootstrapに書くんだと思うよ・・・
グローバル変数使うことの是非はともかく
91nobodyさん:2007/02/28(水) 12:06:30 ID:???
>>90
/app/config/bootstrap.php
これですか?それともcakeフォルダの中の?
そういうノウハウはどこで学ぶんでしょうか?
92nobodyさん:2007/02/28(水) 14:03:51 ID:???
うーんそこまで来るとマニュアル読んでくれとしか答えようが無いな
93nobodyさん:2007/02/28(水) 14:46:51 ID:???
日本語
マニュアル http://www.cakephp.jp/doc/
フォーラム http://cakephp.jp/modules/newbb/
Wiki http://cakephp.jp/wiki/

あとBakeryというのがいろいろコンポーネントやらチュートリアルやらをまとめてくれていて便利
http://bakery.cakephp.org/
94nobodyさん:2007/03/05(月) 18:53:07 ID:5xyR9GqB
      ∩___∩
      | ノ  _,  ,_ ヽ         
     /  ●   ● |         
     |    ( _●_)  ミ _ (⌒)   
    彡、   |∪|  ノ        
⊂⌒ヽ /    ヽノ  ヽ /⌒つ     
  \ ヽ  /        ヽ /   
   \_,,ノ      |、_ノ   
95nobodyさん:2007/03/06(火) 22:58:14 ID:???
かけぺっぷ
96nobodyさん:2007/03/07(水) 16:24:28 ID:VDwNq8qV
もりあがってますね^^
97nobodyさん:2007/03/07(水) 16:32:50 ID:???
生ものだけに痛むのも早かったか
98nobodyさん:2007/03/07(水) 17:30:19 ID:???
不二家PHP
99nobodyさん:2007/03/07(水) 17:45:06 ID:???
もうすぐsymfonyにTOBされます
100nobodyさん:2007/03/09(金) 12:47:31 ID:GFS6POXv
なんでPHPのフレームワークって乱立してんの?
101nobodyさん:2007/03/09(金) 13:28:39 ID:???
>>100
PHPしか言語を知らないんだね^^
102nobodyさん:2007/03/09(金) 13:31:48 ID:GFS6POXv
>>101
Javaのこと言ってんの?
PHP対抗はRubyか.netでしょ
RubyにRailsと同等のシェアを持つフレームワークあるの?
103nobodyさん:2007/03/09(金) 13:50:50 ID:???
ruby以外の言語は乱立してるだろ。今はJavaも含めてもね
104nobodyさん:2007/03/09(金) 13:52:37 ID:???
>>102
>RubyにRailsと同等のシェアを持つフレームワークあるの?
rubyは他に何もないマイナー言語だから一極集中してるだけ。
それくらい普通に考えればわかるだろうに、>>100はかわいそうな子だなぁ
105nobodyさん:2007/03/09(金) 14:37:43 ID:GFS6POXv
>>104
PHPでは訴求力のあるフレームワークが無いんだねっていう話
Javaは乱立してても有用なフレームワーク多いよ
皮肉とかわからないゆとり世代はかわいそうだね^^
106nobodyさん:2007/03/09(金) 14:45:13 ID:???
Ruby on Rails単体の盛り上がり>>>越えられない壁>>>PHPフレームワーク全部の話題
107nobodyさん:2007/03/09(金) 18:06:17 ID:???
乱立している理由なんてPHPが普及してるからじゃねーの としか言いようがない
108nobodyさん:2007/03/09(金) 18:12:06 ID:???
Rails真似るなら完璧に真似ろよ。
所々それと違うところが多くてうざい。
っていうかRails使える無料サーバがあればいいや。
109nobodyさん:2007/03/10(土) 07:11:37 ID:???
おいおいRailsヨイショしたいならこんな過疎スレじゃなくて本スレでやれよ(w
110nobodyさん:2007/03/10(土) 09:42:26 ID:oMuhw0IR
>>108
Railsを超えることが目標なら
完璧に真似るのはデメリット。
111nobodyさん:2007/03/10(土) 10:26:35 ID:???
Ruby on Railsの作者が、PHP on Railsを作ってくれるのが一番良い。
PHP on Rails > Symfony > Zend Framework
という構図になると思う
112nobodyさん:2007/03/10(土) 10:27:45 ID:???
railsの作者って最初PHPで開発してて、こりゃダメだって思って、Rubyに切り替えたんじゃん。
113nobodyさん:2007/03/10(土) 14:52:15 ID:???
>>112
それは知ってる。
だけど、PHP on Rails作ったら、使う人いるから創って欲しいということ。
PHP6くらいになって、PHPもまぁ使ってやってもいいかな?とDHHが思ってくれたらラッキー☆
114nobodyさん:2007/03/10(土) 16:31:35 ID:???
しかしRubyという選択はすごいよな。
あんなジャップが作った過疎言語で挑戦するのは。
115nobodyさん:2007/03/11(日) 02:55:55 ID:???
2chの人って、自分でジャップとかいうのが、かっこいいとか思ってんのかな。
116nobodyさん:2007/03/11(日) 05:54:09 ID:???
かっこいいとは思ってねーだろw
117nobodyさん:2007/03/11(日) 10:07:04 ID:???
少年ジャップでも読んで落ち着け
118nobodyさん:2007/03/11(日) 17:38:38 ID:???
ダウンロードしようと思ったら404だった、、、
119nobodyさん:2007/03/12(月) 09:35:31 ID:o+qmRSfV
チョッパリならかっこいいか?
120nobodyさん:2007/03/12(月) 15:51:45 ID:P8Amefsi
selectTagではまっています。
usersテーブルにprefecture_idフィールドを設けてprefecturesテーブルのidとひもづけたいです。
<?php echo $html->selectTag('User/prefecture', $prefectures, null, null, null, false); ?>
user.phpでは
var $belongsTo = array('Prefecture' =>
array('className' => 'Prefecture',
'conditions' => '',
'order' => 'Prefecture.id ASC',
'foreignKey' => 'prefecture_id'
)
);
prefecture.phpでは
var $hasOne = array('User' =>
array('className' => 'User',
'conditions' => '',
'order' => '',
'dependent' => true,
'foreignKey' => 'prefecture_id'
)
);
とすると
Call to a member function on a non-object in users_controller.php on line 23
となります。
該当行は
$this->Prefectures->generateList(null, 'id ASC', null, '{n}.Prefecture.id', '{n}.Prefecture.name');
です。
どこが原因かどなたかおわかりになりますでしょうか?
よろしくお願いします。
121nobodyさん:2007/03/12(月) 17:04:11 ID:???
$this->Prefectures
rails記法ならPrefectureでないかい?
モデルもPrefecture.phpの様だし
122nobodyさん:2007/03/12(月) 17:41:39 ID:P8Amefsi
>>121
レスどうもありがとうございます。
おっしゃるとおり、
$this->Prefecture->generateList();
とすることで、該当行のエラーはでなくなりましたが、
Undefined variable: prefectures in add.thtml on line 44
と別のエラーがでてしまいました。
44行目は>>120にあるように
<?php echo $html->selectTag('Participation/prefecture', $prefectures, null, null, null, false); ?>
です。
$prefecturesを$prefectureとすると
Undefined variable: prefecture in add.thtml on line 44
となります。
なお、users_controlle.phpに
var $uses = array('Prefecture');
を定義しました。
これを入れないと
Call to a member function on a non-object in users_controller.php on line 23
となります。
そもそも$usesを使わないとエラーなのはおかしいのでしょうか?
123nobodyさん:2007/03/12(月) 18:33:57 ID:???
controllerからviewにどんな変数をセットしてるか分からんと答えられん
124120:2007/03/14(水) 22:40:27 ID:QrdB0vAL
以下のコードで解決しました。
$this->set('prefectures', $this->User->Prefecture->generateList());
User を間にはさんで set すればよいようですね。
でもこのやり方でよいかどうか疑問です。。。
http://groups.google.ch/group/cake-php/ で探しました。
どうもありがとうございました。
125nobodyさん:2007/03/18(日) 16:45:53 ID:???
http://cakephp.seesaa.net/

この人なんでこんなgoogle trends気にしまくってるの?
ZFやsymfonyに比べてcakeのドキュメントは読みにくいから、
単に検索頻度が多いだけって気づかないんだろうか
126nobodyさん:2007/03/19(月) 15:56:58 ID:???
>>125
あー。そういう考え方もあるね(苦笑)
127nobodyさん:2007/03/21(水) 18:05:49 ID:???
これってrender without layoutみたいな機能は無い?
View中でrequestActionではなくrenderWithoutLayoutしたいんだが…
views/elementsに入れるかapp_controller弄って
elements検索パス拡張→renderElementするしかないのかな。

あと関係ないけど一つのアクションで複数insertするとき
$this->Model->save(array(...))の前に$this->Model->id=null;入れなくちゃならないんだね。
数分嵌ったわ。createとかあればいいのにな。
っと思って調べたらid=false, data=array()するcreate()てのがあるのか。
Railsとの微妙な違いにとまどう。
128nobodyさん:2007/04/02(月) 13:08:29 ID:???
>>127
あーそれ俺もハマった。
まぁ理屈としてはわからなくもないんだけどなぁ
ドキュメントには書いてあったけど、同じケースの情報無かったよね?
頻出しそうな処理だと思うんだけどねえ。
それともみんな他のやり方で複数insertしてんのかなあ
129nobodyさん:2007/04/02(月) 16:46:26 ID:???
mysqlのauto incrementみたいな感覚でpostgresも考えてましたが、
postgresでのシーケンスがなぜかうまく動作しないようなので
$this['data']['Hoge']['id'] = $this=>Hoge->getMaxId +1
してますがそれが何か
130nobodyさん:2007/04/02(月) 21:44:58 ID:???
ちょっと質問。model中からアソシエーションの無い別のモデルを使いたいとき、どうしてる?
$hasAndBelongsToMany = array('そのクラス');
すれば出来なくはないが、(実際にはhabtmテーブルがないため)軽くSQLエラーが出てる。
model中で$usesは使えないみたいだし…
131nobodyさん:2007/04/12(木) 18:08:47 ID:???
あっちのスレではCodeIgniterで盛り上がってるのにおまいらときたら
132nobodyさん:2007/04/12(木) 19:07:15 ID:???
>>131
日本語情報が増えてきたからっていきなり出てくんな
133nobodyさん:2007/04/15(日) 04:00:43 ID:???
フレームワークを勉強しようと思ってcakeのチュートリアルをやってるんだが
なかなか理解できん。。。
逆引きの解説とかないのだろうか?
134nobodyさん:2007/04/15(日) 12:41:51 ID:???
>>133
そのためのGoogle
135nobodyさん:2007/04/15(日) 12:50:33 ID:???
  \(^o^)/             \(^o^)/ Cakeオワタ
    )  )               ノ ノ
((((  > ̄ > )))) \(^o^)/ ((( < ̄< ))))
              )  )
         (((  > ̄ > ))))    code igniterハジマタ
136nobodyさん:2007/04/15(日) 13:09:30 ID:???
  \(^o^)/             \(^o^)/ code igniterハジマタ
    )  )               ノ ノ
((((  > ̄ > )))) \(^o^)/ ((( < ̄< ))))
              )  )
         (((  > ̄ > ))))    code igniterオワタ
137nobodyさん:2007/04/15(日) 13:37:36 ID:???
いやいや
あっちのスレでは確かにCI盛り上がってるけど、
CakeはCakeで用途に応じて使い分ける事になると思うぜ

5人前後のチームで開発するとかなら
Cake選択した方がいいよ、情報多いし。
CIの日本語情報待ってても埒が明かん。やってくれてるありがたい人はいるけど。
138nobodyさん:2007/04/18(水) 09:35:56 ID:???
>>137

>>135-136 あたりには全く期待できないしな。



139nobodyさん:2007/04/25(水) 02:48:53 ID:???
>>138
始まって、そしてすぐ終わったという分かりやすい日本語情報以上に必要なものなんてあるか?
140nobodyさん:2007/04/25(水) 15:09:41 ID:???
とりあえずAPIドキュメントをアルファベット順にしろと言いたい
141nobodyさん:2007/04/26(木) 18:41:50 ID:tC5hNJVI
CakePHP解説書 CakePHP Recipes 発売!
日本語版まだ?

http://www.amazon.co.jp/Cakephp-Recipes-Fabio-Cevasco/dp/0321497732/ref=pd_bbs_sr_1/503-3174338-7104719?ie=UTF8&s=english-books&qid=1177580396&sr=8-1
Amazonで予約可。近日発売! 2009/1/21予定!



( ゚д゚)ポカーン 
142nobodyさん:2007/05/04(金) 10:37:35 ID:???
143nobodyさん:2007/05/05(土) 01:46:41 ID:???
cakephpってscaffoldでpagerつくってくれんの?
それくらいやってくれんとほんと使いもんにならんのだが…
144nobodyさん:2007/05/05(土) 03:08:52 ID:???
scaffold自体使いもんにならんだろ。
あれはあくまで初期実装テスト用。
decorateやMasterbakeでも入れなさい
145nobodyさん:2007/05/05(土) 10:08:09 ID:???
つうかcakeの肝はbakeやろ
146nobodyさん:2007/05/06(日) 00:26:48 ID:???
>>144
TurboGearsやDjango、symfonyには素晴らしいscaffoldがあるよ。
凄い細かいところまで機能拡張できる。
少量の手間で実用十分なバックエンドツールが作れる。

>>145
bakeって1度吐き出したら終わりなんじゃないの?
テーブル変更したら反映してくれる?

いろいろ調べてみたら、どうやらdevバージョンではページャやソートを
付けてくれるみたいだな。

とりあえず今はpaginationコンポーネントを_beforeScaffoldに無理やり突っ込んで
Pagination実現したけど、やっぱイマイチだなぁ…
こりゃ4しか選択肢がないプロジェクトでしかメリットねーな
147nobodyさん:2007/05/06(日) 00:31:22 ID:???
>>146
いや、>>144は「CakePHPのscaffoldが使い物にならん」って話だろ
常識的に考えて
148nobodyさん:2007/05/06(日) 00:54:52 ID:???
>>147
だからdecorateやMasterbakeは吐き出して終わりで、
テーブル変更に対応できないんじゃないのかって聞いてるんだけど、
それくらいわかるだろ?常識的に考えて。
149nobodyさん:2007/05/06(日) 01:04:29 ID:???
そんなこと誰も聞いてないだろ
150nobodyさん:2007/05/06(日) 01:07:03 ID:???
>>149
>bakeって1度吐き出したら終わりなんじゃないの?
>テーブル変更したら反映してくれる?

まぁいいや、んで反映してくれんの?
151nobodyさん:2007/05/06(日) 01:54:52 ID:???
2ちゃんねるで討論に勝つ方法。

1.都合が悪いときは黙秘。
2.都合が悪いときは「ぐぐれ」。
152nobodyさん:2007/05/06(日) 02:06:20 ID:???
テーブルの何を変更したときに
何をどこに反映して欲しいのか分からん
153nobodyさん:2007/05/06(日) 02:07:09 ID:???
この人は何故誰も聞いてないのにテーブル変更の反映にしがみついているの?
bakeもdecorateもMasterbakeも出来ない(と思う)けど、
だったら変更を反映する物を作ってくれるとでもいうわけ?


是非お願いします。それがないからCakeは使いたくない。
154nobodyさん:2007/05/06(日) 02:07:18 ID:???
>>150
できんよ。masterbakeはただのジェネレータ。
現状rails派生の中ではCIに続いて2番目に貧弱なんじゃね?
155nobodyさん:2007/05/06(日) 02:14:00 ID:???
>>152
は?普通に>>146であげられてるFWのラインナップ見ればそれくらいわかるだろ?
カラム付け足したらその分のカラムが出てくるとか、結合キー足したらそのリンク先の
テーブルの内容が出てくるとか。

ソースの上書き無しに他のFWならそれが可能なわけですが。
156nobodyさん:2007/05/06(日) 02:23:44 ID:???
あと素晴らしいbakeを作ってくれるなら、
是非カラムのコメントをhumane field nameにする機能を。
157nobodyさん:2007/05/06(日) 03:20:02 ID:???
ぶっちゃけCakeなんか使ってられない。

よほど短納期で品質が低くてもOKならいいかもしれんが、
それにしたってCakeより優れたフレームワークが他にあるし。
158nobodyさん:2007/05/06(日) 03:28:26 ID:h5MYHYt1
トランザクション機能さえ正式実装されてないんだからお話にならないよな
159nobodyさん:2007/05/06(日) 03:56:20 ID:???
paginationが標準じゃないってのが全てを物語っている
160nobodyさん:2007/05/06(日) 04:53:05 ID:???
ここで出てきた、欲しいという機能はすべてあるし。
使った事無い奴が、無いとかいってんじゃねーよ。
161nobodyさん:2007/05/06(日) 05:21:18 ID:???
標準で用意されてないって話なのが分からん奴がいるとは・・
162nobodyさん:2007/05/06(日) 06:29:20 ID:???
cakeなだけにつくりも甘いぜ
163nobodyさん:2007/05/06(日) 06:44:15 ID:???
>>160
>ここで出てきた、欲しいという機能はすべてあるし。
ほんとにあるならこんなに盛り上がってないしw
使った事無い奴が、あるとかいってんじゃねーよ。
164nobodyさん:2007/05/06(日) 09:34:25 ID:???
頑張って出来なきゃクソ以前。
頑張らないと出来ないからクソ。
165nobodyさん:2007/05/07(月) 06:26:31 ID:??? BE:350280083-2BP(0)
CakePHPで、だれかxreaでHP,会員認証、会員向けコンテンツ、ブログやってる人いませんか?
166nobodyさん:2007/05/07(月) 07:04:41 ID:???
公開してないけど稼働しているよ。なんか不具合でも?
167nobodyさん:2007/05/07(月) 12:22:45 ID:??? BE:919485779-2BP(0)
見せていただけますか。
168nobodyさん:2007/05/07(月) 12:26:32 ID:???
嫌です。
169nobodyさん:2007/05/07(月) 12:45:42 ID:??? BE:612990476-2BP(0)
括弧悪いのかな?
170nobodyさん:2007/05/07(月) 12:48:00 ID:???
意味分からん。
なんで無料で見せてやらないといけないんだ?
金払うなら金額によっては見せてやる。
価値のあるコンテンツに金払うのは常識。
嫌なら自分で探せ。
171nobodyさん:2007/05/07(月) 13:01:18 ID:??? BE:408660274-2BP(0)
別にいいよ。君には見せてもらおうとは思わん。朝鮮人みたいな奴だな。
172166:2007/05/07(月) 16:35:56 ID:???
見たいだけか。設置の質問くらいなら答えられると思ったんだが。
残念ながら開発中なので見せられない。
173nobodyさん:2007/05/07(月) 22:45:53 ID:??? BE:58380522-2BP(0)
いまさら二郎
174nobodyさん:2007/05/07(月) 22:48:01 ID:???
ここは匿名掲示板
しかも、悪い噂も多い2ちゃんねる。

自分が作っているのを教えると、
このサイトの開発者は
2ちゃんねらだとばれる。

常識的に考えて教えるわけが無い。
175nobodyさん:2007/05/07(月) 23:26:24 ID:???
まーそうだね
176nobodyさん:2007/05/08(火) 00:10:31 ID:???
タダで見せてもらおうなんて朝鮮人みたいな奴だな
177nobodyさん:2007/05/08(火) 02:14:27 ID:???
>>176
おまえそういう偏見の強いとことか朝鮮人みたいだな
178nobodyさん:2007/05/08(火) 02:22:35 ID:???
>>177
おまえのそういう朝鮮人みたいなところが好きだぜ
179nobodyさん:2007/05/08(火) 03:24:46 ID:???
朝鮮人のチンポしゃぶりたい
180nobodyさん:2007/05/08(火) 03:25:29 ID:???
キムチの味がするがいいニダ?
181nobodyさん:2007/05/09(水) 00:45:48 ID:???
ああ、最高だ
182nobodyさん:2007/05/11(金) 09:49:27 ID:???
書籍買ってね♥

Web2.0 ビギナーズバイブル
http://www.cbook24.com/bm_detail.asp?sku=9784839923228
Chapter 9 CakePHPとPHPによるWeb 2.0高速開発
9-1 WebアプリケーションフレームワークCakePHP
9-1-1 CakePHPとは
9-2 習うより慣れる
9-2-1 ウェブログを作ろう!
9-2-2 開発環境について
9-2-3 CakePHPのダウンロード
9-2-4 新規プロジェクトの作成
9-2-5 データベースの準備
9-3 アプリケーションを作る
9-3-1 新規アプリケーションの作成
9-3-2 モデルの作成
9-3-3 コントローラの作成
9-3-4 ビューの作成
9-3-5 アプリケーションを動かしてみる
9-3-6 なぜ動くのか?
9-4 ブログ機能を追加する
9-4-1 カテゴリとコメント機能を付ける
9-4-2 カテゴリとコメント機能の仕組みを理解する
9-4-3 認証機能を付ける
9-4-4 RSS配信機能を付ける
9-5 もっとブログ
9-5-1 indexページを変えてみる
9-5-2 カテゴリ別indexページを作ってみる
9-5-3 カテゴリ一覧を作ってみる
9-5-4 詳細表示画面でコメントを入力できるようにする
9-6 スタイルの変更
9-6-1 スタイルシートを使う
183nobodyさん:2007/05/11(金) 17:49:19 ID:???
それかったよかったよ
184nobodyさん:2007/05/11(金) 19:38:19 ID:???
> それ かったよ かったよ


なんで二回も言うんだよ?!
185nobodyさん:2007/05/11(金) 21:05:47 ID:???
2冊買ったらもう一冊ついてくるんだもん
186nobodyさん:2007/05/12(土) 15:25:45 ID:???
書籍買ってね?

PHPによるJavaScriptを書かないAjax
http://www.9-ten.co.jp/bookdata/1753.php

Part 4  AjaxをサポートするPHPフレームワーク

4-1 CakePHP
 4-1-1 CakePHPのインストール
 4-1-2 アプリケーションの作成
 4-1-3 CakePHPのヘルパー
 4-1-4 データベースへのアクセス
 4-1-5 CakePHPのAjaxサポート
 4-1-6 高度なAjax機能
187nobodyさん:2007/05/12(土) 15:27:41 ID:???
188nobodyさん:2007/05/17(木) 18:27:26 ID:???
オマイラcake話はないのか。

という俺もないが。
189nobodyさん:2007/05/21(月) 13:07:42 ID:???
サニタイズ、ヴァリデートの例を探しているんだけど、どこを見れば良い?
190nobodyさん:2007/05/21(月) 13:29:44 ID:???
191nobodyさん:2007/05/24(木) 14:12:50 ID:GefDq5o4
レイアウトビューでセッションの値を使いたいんですが、一番スマートな方法はどんな方法がありますか?
レイアウトなのでコントローラからも直接渡せないのです。
よろしくお願いいたします。
192nobodyさん:2007/05/24(木) 15:09:11 ID:???
コントローラでsetして使えばいいんじゃないの。
一番スマートかどうかは知らんが
193nobodyさん:2007/05/24(木) 15:09:46 ID:GefDq5o4
レイアウトはすべてのビューで使われてるので、どのコントローラで渡せばいいのかわからないんです。
194nobodyさん:2007/05/24(木) 15:13:26 ID:???
横レスだけど、これじゃ不十分なの?
ttp://www.cakephp.jp/doc/ch07s02.html#id4806116
195nobodyさん:2007/05/24(木) 15:15:41 ID:GefDq5o4
たとえば、レイアウトにログインリンクとログアウトリンクのどちらかを表示させたくて、
それをセッションで判断してるんですけど、
すべてのコントローラとすべてのアクションからセッションの値(ログインしているか)をsetするのは非現実的なので、
何かいい方法はないかなぁという質問です。
196nobodyさん:2007/05/24(木) 15:22:08 ID:???
ああそういうことか。勘違いしてたな、こりゃすまんかった

で、現実的にはAppControllerの__construct()をオーバーライドして
そこでsetするのがいいんじゃないかな。

cakeのライブラリを直接いじるのが気になるなら、
AppControllerを継承したMyAppControllerクラスを作って
__construct()のオーバーライドはそこですることにして、
他の自作のたくさんのコントローラはMyApppControllerを継承する。
197nobodyさん:2007/05/24(木) 15:35:35 ID:IzNiejk0
[email protected]
ここだけは気をつけろ
198nobodyさん:2007/05/24(木) 16:28:48 ID:GefDq5o4
>>196
ちょっとめんどくさそうなんで、別の方法模索します。どうもです。
199nobodyさん:2007/05/25(金) 03:17:17 ID:???
ただでアドバイスしてもらってその言い草。
どうせ、業務でつかうんだろうに。
200nobodyさん:2007/05/25(金) 03:53:03 ID:???
しかも意味分かってないねこいつ。
コンストラクタのオーバーライドが面倒って・・・w
201nobodyさん:2007/05/25(金) 11:54:10 ID:???
>>196
MyAppController.phpを作らなくても、
appディレクトリ直下にapp_controller.phpをおけば、アプリからは自動的にこれが使われるようになるよ。
AppModelも同様。
202nobodyさん:2007/05/25(金) 14:13:21 ID:???
すごい速さで開発が進んでいる・・・
203nobodyさん:2007/05/25(金) 14:34:37 ID:heBQtPKb
findAllByName(false)
って感じでfalse渡すと全部拾ってくるのはどういう理屈?
204nobodyさん:2007/05/25(金) 19:05:16 ID:???
falseを渡したときの動作なんて保証されてないだろう。
string か array を渡せと書いてあるはず。
205nobodyさん:2007/05/26(土) 00:04:23 ID:???
そろそろcake使ってみようかな。
206nobodyさん:2007/05/28(月) 14:07:41 ID:???
超クールなヘルパーつくったんだけど、どこで発表すればいいの?
207nobodyさん:2007/05/28(月) 14:18:38 ID:???
そんなことも自分で調べられないなら、
恥ずかしいので発表しないでください。
208nobodyさん:2007/05/28(月) 14:41:32 ID:???
>>207
で、どこ?
209nobodyさん:2007/05/28(月) 16:21:28 ID:???
1ch.tvとかじゃね?
210nobodyさん:2007/05/28(月) 17:13:28 ID:???
>>209
書き込んできました^^v
211nobodyさん:2007/05/28(月) 17:19:52 ID:???
デフォルトのセッションが一定時間たったら切れちゃうんですが、
ブラウザを閉じるまで持続させる、とかはどうやって設定するんでしょうか。
212nobodyさん:2007/05/31(木) 15:17:02 ID:9EiCBHk0
ビューの中でHTMLの<head></head>の中にタグ追加することってできないかな?
たとえば、あるページにだけ使いたいjsを読み込んだり。

レイアウトに指定すると、全てのページで読み込まれるからあまりよろしくないですよね。
よろしくおねがいします。
213nobodyさん:2007/05/31(木) 15:23:36 ID:???
別のレイアウトを追加して使えばいい
214nobodyさん:2007/05/31(木) 15:23:57 ID:???
単にレイアウトを切替えれば良い話じゃないの。
自動的に制御したければそういうヘルパーを書いてもいい。
215nobodyさん:2007/05/31(木) 15:50:36 ID:9EiCBHk0
>>213,214
なるほど。盲点でした。
ありがとうございます。

でも、1行のためにファイル1つ増やすのもなんかスマートじゃない気がするんですが、
みなさんが同じ場合でもそうしますでしょうか??アドバイスおねがいいたします。
216nobodyさん:2007/05/31(木) 15:56:27 ID:???
目的と状況による。

どれぐらいの量のタグを追加するのか、
将来的にも他のページで使う可能性はないのか、など。
217nobodyさん:2007/05/31(木) 16:33:59 ID:???
エレメント使えばー?
218nobodyさん:2007/05/31(木) 18:08:22 ID:9EiCBHk0
>>217
具体的にどういうことですか?
219nobodyさん:2007/05/31(木) 20:23:12 ID:???
>>218
いやー、具体的にと言われても…
つーか、レイアウトにエレメント埋めて、そこで条件判別すればー?って話なんだけどさー。
220nobodyさん:2007/05/31(木) 20:45:45 ID:???
エレメント内にロジックを埋め込むということ?
221nobodyさん:2007/05/31(木) 22:10:36 ID:???
>>220
そう。
222nobodyさん:2007/06/02(土) 08:24:46 ID:???
こうしてる。
layout側の記述
<head>
<?php  
    if(isset($javascripts) && is_array($javascripts)){
        foreach($javascripts as $js){
            echo JavascriptHelper::link($js) . "\n";
        }
    }
?>
</head>

で、controller側から

$this->set('javascripts', array('prototype', 'tekitou');

って記述するとprototype.jsとtekitou.jsが読み込まれる。
223nobodyさん:2007/06/02(土) 11:18:32 ID:???
なんか突然QuestHistory Felstoneが動かなくなってねぇか・・・
224nobodyさん:2007/06/02(土) 11:18:50 ID:???
誤爆スマソ
225かけphp:2007/06/06(水) 11:42:57 ID:i598mYRR
ども。
Cake使ってる人たちにお聞きしたいのですが、実際に使っている方にとってCakePHPって
どこまで満足して使えていると思いますか? CakePHPがあれば大抵のアプリは
簡単に構築できるようになるのかな。
226nobodyさん:2007/06/06(水) 11:46:51 ID:???
HABTM以上の少し複雑な関係を扱うととたんに汚くせざるを得ない。
Paginationや認証もわざわざ自分で書く(持ってくる)必要があるから簡単とはいえない気がする。
bakeに類するものを使っても、対話式は非効率だし。
227nobodyさん:2007/06/12(火) 11:52:23 ID:9MpyswiS
アソシエーションの使い方がわからん・・・
228227:2007/06/12(火) 14:20:15 ID:9MpyswiS
事故解決。

ところで、改行コードを改行タグに変換してくれるヘルパーってないですかね?
標準で実装しててもいい機能だと思うけどなあ
229nobodyさん:2007/06/12(火) 15:57:53 ID:???
・・・nl2br知らないとかいうオチじゃないよなまさか
230nobodyさん:2007/06/12(火) 17:30:42 ID:???
cakeのviewを使った場合の話だろう。
231nobodyさん:2007/06/12(火) 18:00:52 ID:???
たしかHTMLヘルパー使って出力すれば勝手に変換されたと思うが
232nobodyさん:2007/06/14(木) 15:56:59 ID:ZlJLpzAT
自分のつくったコントローラーを継承したいんですけど、どうやるんですか?
class ChildController extends ParentController
としても、Cannot inherit from undefined class parentcontrollerと、エラーが出てしまいます。
233nobodyさん:2007/06/14(木) 20:35:37 ID:???
インクルードしてないだけでしょ
234nobodyさん:2007/06/15(金) 10:39:14 ID:???
>>232
うわ、すげぇ、こんなド素人がフレームワークを使おうとしている。

cakePHPはそういうポジションなのか・・・。
235nobodyさん:2007/06/15(金) 13:08:03 ID:???
最近CakePHPをいじりはじめたのですが
データベースのフィールド増やすたびに
/app/tmp/cache/models
の下のキャッシュを削除しないといかんのでしょうか?
そうしないとcakePHPは新しいフィールドを一切認識してくれません
236nobodyさん:2007/06/15(金) 14:14:52 ID:???
>>235
当たり前
237nobodyさん:2007/06/15(金) 16:15:48 ID:WBx+PEHj
>>235
開発中ならDEBUGを1以上にしてればいいんじゃない?
238nobodyさん:2007/06/15(金) 16:20:32 ID:???
ありがとう
これのせいで2時間悩んだ
239nobodyさん:2007/06/18(月) 13:41:31 ID:As+yaC2S
MySQLのDATETIME型って結局ただの文字列なの?
"2007-06-18 12:00:00"って文字列渡しても認識してくれるけど
240nobodyさん:2007/06/18(月) 14:18:11 ID:???
スレ違い(下手したら板違い)じゃないか?
MySQL内で型の変換してるんだとおもうけどな。
時間順にソートできるんだから。
241nobodyさん:2007/06/18(月) 14:25:40 ID:???
>>239
MySQL側でどう保存してるかと
PHP側でどう扱っているかは別の話。
242nobodyさん:2007/06/18(月) 17:44:42 ID:???
CakePHPって複数行削除できないのか_| ̄|○
$this->model->del(array(1,2,3,4));
複数削除するのはSQL直接叩かないとだめなのか?
243242:2007/06/18(月) 17:46:37 ID:???
foreach (array(1,2,3,4) as $i)
  $this->model->del($i);

アホっぽいか('A`)
244nobodyさん:2007/06/18(月) 18:30:53 ID:???
>>242
DboSource::delete(&$model, $conditions) を呼び出せば一応出来る。

$db =& ConnectionManager::getDataSource($model->useDbConfig);
$db->delete($model, 'id = 1 or id = 2');

ただこの方法だとbeforeDelete()とかはされないので
必要なら明示的にやらないといけないが。
245nobodyさん:2007/06/18(月) 18:47:07 ID:???
edit.thtmlにパラメータでid渡して、渡されたidの値をフォームのvalueにセットして、
送信ボタン押したら、確認画面にいくようにしてるんですけど、
この間でバリデーションを行って、エラーが出れば、
edit.thtmlに戻るようにしてるんですが、パラメータのidの値をvalueに入れちゃってるんで、
フォームで編集(変更)した値が消えて、初期値に戻ってしまうんですが、
何かスマートな方法ありますでしょうか?

私の考えでは、
editアクションで、データが送信されなかった場合のみ、valueに設定する初期値を、
コントローラからビューにsetさせ、ビュー側でsetされたかifで調べて、valueに入れる。
データが送信されたら、何も渡さない(inputのfieldNameに基づき送信データがvalueに入る)ようにしているんですが、
inputの数だけifで調べて、コントローラ側でもinputの数だけsetしなければいけないので、かなり面倒なことになってます。

もっとスマートな方法があれば助言お願いいたします。
246nobodyさん:2007/06/18(月) 18:59:27 ID:???
>>245
何もしてないのに勝手に初期値に戻るわけないだろ。
findとかでDBから値を読み込んでるところがあるはず。
そこを確認画面以降は行わないようにすればいいだけなんじゃないのか?
これで分かんなかったらコントローラのソース晒せ。
247242:2007/06/18(月) 19:01:11 ID:???
>>244
thx
結構、奥の方まで食い込まないとなのね

>>245
的を射てるか分からないけど
コントローラ側で$this->dataに代入するしないを分岐するだけでいいんじゃないかな
248nobodyさん:2007/06/18(月) 23:44:54 ID:???
おまいら日本語のバリデーションってどうしてる?
デフォのvalidatorってpreg系なので、UTFなら日本語自体は通るが、
「ひらがなのみOK」とかってできなくね?
ということで結局mb_ereg系のバリデータ書いちゃったよ。これでええのんか・・・?
249nobodyさん:2007/06/19(火) 00:13:11 ID:???
>>248
UTF-8なら、u修飾子つかえばOK
var_dump(preg_match('/^[ぁ-ん]+$/u', 'あいうえお'));
var_dump(preg_match('/^[ぁ-ん]+$/u', '漢字かな交じり'));
250nobodyさん:2007/06/19(火) 10:11:25 ID:???
>>249
なるほどサンクス!
251245:2007/06/19(火) 11:37:07 ID:OkFSOfnZ
//タグ属性設定
$hoge1_attribute['size'] = 20;
$hoge1_attribute['value'] = null;
if(!empty($Hoge['Hoge']['hoge1'])){
  $hoge1_attribute['value'] = $hoge['Hoge']['hoge1'];
}
echo $html->input('Hoge/hoge1', $hoge1_attribute);

こんな感じでinputの数だけ直前に記述しているんですが、こんな感じでやるしかないんでしょうかね?
かなりビューがみにくくなっちゃいますが・・・
みなさんならどうしますでしょうか、助言おねがいします。
252nobodyさん:2007/06/19(火) 12:44:17 ID:???
長々書いてるけど、単に連想配列をループで書き換えるってだけだろ。
Set::merge使えばおわりじゃん。
253nobodyさん:2007/06/19(火) 14:07:17 ID:???
>>251
お前バカだからもう来るなよ。
せっかくレスしてくれた>>246-247も読んでないじゃん
254nobodyさん:2007/06/19(火) 15:23:37 ID:???
>>>253
お前より賢いよw
255nobodyさん:2007/06/19(火) 15:29:42 ID:???
釣り堀
256nobodyさん:2007/06/19(火) 16:10:22 ID:???
こういうのどう思いますか?

まず、ショッピングカートがあります。
そのショッピングカートはいろんなタイプの商品があります。
その商品タイプごとに入力できるデータ項目が違います。
(飲料商品タイプは内容量ミリリットル入力フィールドがあるけど、
雑誌商品タイプではISBNフィールドがあるなど。)

この場合に商品タイプごとに専用のテーブルをつくるのは
変な設計ではないと思いますが、この商品タイプを
CakePHPで作ったアプリの管理画面から増やそうと思ったら
create table文を発行することになると思います。
またこの商品タイプの管理画面を担当するphpファイルを
コピーして増やすことになると思います。

一般的にはbake等でプログラマが手動で追加していくコード・DB構造が
エンドユーザーが管理画面から操作することにより、
自動的にプログラムコードが拡張されていくようなイメージになります。

こういうのって気持ち悪いシステムなんでしょうか?
他にこのような自動的にプログラムが拡張されるような
仕組みを持ったものありますか?

このまま進めると大きな問題になりそうで不安です。
257nobodyさん:2007/06/19(火) 16:20:37 ID:???
そもそも「商品タイプ」というものに必要な属性の抽出が出来てない感じをうけるな。

「飲料食品タイプ」の内容量ミリリットルって
「雑誌商品タイプ」でいうところの書籍重量ってのと、どう違うの?
逆にISBNコードってのは業界の商品流通コードなんですよ。各業界にも
あれこれあるでしょ?使うかどうかは別にして。
258nobodyさん:2007/06/20(水) 00:23:26 ID:???
>>257
> そもそも「商品タイプ」というものに必要な属性の抽出が出来てない感じをうけるな。
世の中のすべての商品タイプをあらかじめ抽出なんて不可能でしょう?

> 「飲料食品タイプ」の内容量ミリリットルって
> 「雑誌商品タイプ」でいうところの書籍重量ってのと、どう違うの?
> 逆にISBNコードってのは業界の商品流通コードなんですよ。各業界にも
> あれこれあるでしょ?使うかどうかは別にして。
だからなんなんでしょうか?

例なんだから、細かいところにこだわりすぎ。
共通で汎用の商品タイプ作れとかそういう話ですか?
価格ドットコムで検索したことありますか?
不可能でしょ。そんなこと。
259nobodyさん:2007/06/20(水) 00:33:05 ID:???
なんで顔真っ赤にして怒ってるんだ?w
260nobodyさん:2007/06/20(水) 00:41:44 ID:???
>>259
荒らす気か? 話に参加する気がないのなら死ねよ。
261nobodyさん:2007/06/20(水) 02:21:55 ID:???
横レスだがcake外の問題つうか、tableの設計と正規化についての問題と思われ
>>257 の「使うかどうかは別にして」というのはそういうことだと思うよ。
ただ「書籍重量」という例はちょっと悪いな

もしそういうものを作るんなら、たとえば
・商品カテゴリテーブル(id,商品名)
・商品詳細項目名テーブル(id,商品カテゴリid,項目名,項目タイプ)
・int項目タイプ詳細テーブル(id,商品カテゴリid,商品詳細項目id,値)
・varchar項目タイプ詳細テーブル(id,商品カテゴリid,商品詳細項目id,値)
・text項目タイプ詳細テーブル(id,商品カテゴリid,商品詳細項目id,値)

この4つですむじゃん。たとえばだけど

とにかく>>256は正規化でしらべやがれ、
DB板(ドラゴンボール板)に行け、そして戻ってくるな
つうか、初心者増えたのか?cake界は
262nobodyさん:2007/06/20(水) 02:26:57 ID:???
>>261
それってデータベースレベルでのチェックができなくね?
つか、そういう使い方ってアリなのか…
263nobodyさん:2007/06/20(水) 02:34:35 ID:???
そこらじゅうでcakeの話題が出てるからそんなかには素人もいるわな。
264nobodyさん:2007/06/20(水) 06:53:32 ID:???
>232
>239
>242
>245
>256
厨発生中だな。

245と256は同一?
265nobodyさん:2007/06/20(水) 10:48:12 ID:zjQXSfAj
ここより、PHP自体の話題と思ったので、【PHP】下らねぇ質問はここに書き込みやがれ 47 の>>626に書き込んだんですけど、
やっぱり、CakePHPが絡んでくるので、どうしてもCakePHPの説明が入ってしまいます。
ここの方がよかったかもしれません。
どなたかご回答お願いします。。
266nobodyさん:2007/06/20(水) 12:04:49 ID:???
読みに行ったが、627で速攻答えが出てて禿げワロタ
なにがしたいのかわからん。タイプ数減らしたいだけか?
267nobodyさん:2007/06/20(水) 13:57:48 ID:zjQXSfAj
<?php
class Bbs1Controller extends AppController
{
  var $m = ここに$this->Itemと同等のが入れたい

  function index()
  {
    $this->m->findAll()
  }
}

こんな感じのを想像していて、
$m(コントローラで使いたいモデル)をあとで変更できるようにしたいのです。
$this->Item->findAll()みたいな、モデルを使うところがたくさんあるので、
継承したあとに、var $mだけ書き換えれば、違うテーブルを使えるようになったらいいかなぁと思ったんですが。。。
get_object_varsではできませんでした。
268nobodyさん:2007/06/20(水) 16:31:30 ID:???
>>267
PHPやめてRubyにしなよ。
みんなもっと親切だぜ?
269nobodyさん:2007/06/20(水) 16:59:59 ID:zjQXSfAj
開発してるときはRailsのほうがいいんだけどな。
本番環境に移行するとなると、いろいろとめんどくさいんだよな。
270nobodyさん:2007/06/20(水) 17:58:58 ID:???
>>267
class anyclass extends base
{
$model = 'default';
function index()
{
$this->{$this->model}->findAll();

}
function setter($model)
{
$this->model = $model;
}
}

$class = new anyclass();
$class->findAll();
$class->setter('other');
$class->findAll();
271nobodyさん:2007/06/20(水) 18:07:04 ID:???
>>261
>DB板(ドラゴンボール板)に行け、そして戻ってくるな
>つうか、初心者増えたのか?cake界は

君のテーブル見る限り、君自身が完全に初心者なんだが…
272nobodyさん:2007/06/20(水) 18:15:21 ID:???
>>269
ID:zjQXSfAj 君、急に口調変わるねぇ。
273nobodyさん:2007/06/20(水) 18:23:54 ID:???
飲料のミリリットルは商品の大切な要素だけど
書籍重量って書籍が決まればそれに付随して一意に決まるだろ…
喩え出す奴が馬鹿すぎるとダメだなw
しかもそれに面白レスしてる261が別人ってのはにわかに信じがたい
さすがcakeかっけーぜ
274nobodyさん:2007/06/20(水) 18:57:14 ID:???
意味不明
275nobodyさん:2007/06/20(水) 19:22:59 ID:???
そもそもDB設計の質問する奴がスレ違い以前に板違い
276nobodyさん:2007/06/20(水) 19:29:34 ID:???
>>273
自分を批判する奴がひとりだと思いたい中2病乙
277nobodyさん:2007/06/21(木) 09:42:13 ID:???
>>261みたいな面倒なことしなくても
商品テーブル
・商品ID
・カテゴリID
・品名
・価格
・詳細説明
・更新日
・登録日
・特徴1
・特徴2
・特徴3
・特徴4
商品カテゴリテーブル
・カテゴリID
・カテゴリ名
・特徴1の項目名
・特徴2の項目名
・特徴3の項目名
・特徴4の項目名
でいいんじゃね?
特徴1〜4はカテゴリによって使用しなくてもOK。

書籍は「重量」を入れなくてもいいが、「作者名」・「ISBN」が必要。
飲料は「商品コード」は入れなくてもいいが、「容量」が必要。
278nobodyさん:2007/06/21(木) 10:12:17 ID:???
>>277
特徴が5個になったらどうすんだ?
279nobodyさん:2007/06/21(木) 10:21:46 ID:???
そんな第一正規形にもなってないテーブル作らないで下さい。
280nobodyさん:2007/06/21(木) 11:25:20 ID:???
全然cakeの話じゃないやん
281nobodyさん:2007/06/21(木) 12:21:36 ID:???
>>278
クライアントに「特徴が5つ以上必要なカテゴリが出てきたら
別途見積もりになりますのでご連絡下さい」と言えばOK

>>279
クライアントが満足して使えりゃそれでいいんだよ
282nobodyさん:2007/06/21(木) 12:25:37 ID:???
それで満足するクライアントという特殊な条件下でなら提案しなくてOK
283nobodyさん:2007/06/21(木) 13:01:06 ID:???
こんなレベルで仕事できるんだな。
284nobodyさん:2007/06/22(金) 07:56:43 ID:???
でもcakeみたいにDB構造かえやすいフレームワークなら必要に応じて増やしていくのもありかとおもう今日この頃
285nobodyさん:2007/06/22(金) 10:50:28 ID:???
それは足場段階でやることであって、運用段階でやることではない
286nobodyさん:2007/06/23(土) 02:10:21 ID:???
>>281みたいなあほな仕事してた奴が、こないだ失踪した。
287nobodyさん:2007/06/23(土) 02:46:18 ID:???
おまいらそろそろ馬鹿はほっといてcake話しようぜ。まあ大体いい情報はフォーラムかGoogleグループにでてるがな。
cake本はやくでないもんか。
288nobodyさん:2007/06/23(土) 02:52:45 ID:???
1.2が正式になってからでいいよ
289nobodyさん:2007/06/24(日) 20:00:51 ID:???
開発環境(Windows)から、本番環境(Linux)に移行するとき、何か気をつけたほうがいいことってあります?
本番環境はPHP+mod_rewriteが使えるApache+MySQLは使えるんですが、すぐ移行ってできるもんなんでしょうか?
そういうのを説明してくれているサイトって無いですよね。。
290nobodyさん:2007/06/24(日) 21:19:34 ID:???
>>289
ディレクトリセパレータにcakeが用意してる定数DSを使うとか・・
特に気にせずとも動いちゃってるので気にしたことがないっす
291nobodyさん:2007/06/24(日) 21:29:19 ID:???
>>290
え、cakephpのフォルダをそのまま本番ディレクトリへコピーするだけなんでしょうか?
webrootだけをdocumentroot下に置いて、それ以外は上に置くとかなんかありませんでした?
292nobodyさん:2007/06/24(日) 21:30:54 ID:???
そんなもん使い方や設定によるだろ
一概にどうすればいいとは言えない
293nobodyさん:2007/06/24(日) 21:47:03 ID:???
>>292
使い方や設定っていうと?
もうスタンダードな使い方でいいんですけど、そのままコピっておkですかね?
294nobodyさん:2007/06/24(日) 21:52:03 ID:???
テスト環境つくってやってみるのが吉とおもわれ
295nobodyさん:2007/06/24(日) 22:12:50 ID:???
>>294
ありがとうございます。
もちろんテスト環境つくってやるつもりなんですが、
やっぱり試行錯誤する感じでいくしかないですかね。
296nobodyさん:2007/06/25(月) 00:55:35 ID:???
webrootだけをrootにおいて(つまりはhttpでアクセスを許可させて)後はアクセスできないようにしとくくらいじゃないか?
テスト環境で動くなら。
297nobodyさん:2007/06/25(月) 18:13:58 ID:???
HTMLヘルパーに<input type="button">がないよな。。
298nobodyさん:2007/06/25(月) 19:46:41 ID:???
$html->input('Unkos/unko' , array('type'=>'button'))
299nobodyさん:2007/06/26(火) 14:03:38 ID:???
>>298
あざっす!
300nobodyさん:2007/06/27(水) 12:00:32 ID:5woCK0g1
Cakeのディレクトリ構成がうまく理解できないです。
コントローラで、
webroot/temp/test.txt
を削除したかったら、unlink()にどう指定してあげればいいんですか?
unlink('/temp/test.txt');
初めこうしたのですが、$this->webrootという変数があったので、
unlink($this->webroot . '/temp/test.txt');
こうしたのですが、
これでもだめでした。
No such file or directoryとエラーが出てしまいます。
301nobodyさん:2007/06/27(水) 12:28:55 ID:???
>300
適当なビューでecho $this->webroot;して試してみたらどお?
302nobodyさん:2007/06/27(水) 12:45:14 ID:5woCK0g1
>>301
どういうことですか?コントローラからunlinkしたいんですが、、、
ためしにやってみましたが、
http://localhost/ 以下(コントローラ名含まず)が出力されました。
303nobodyさん:2007/06/27(水) 12:58:04 ID:xI/8M0tS
win鯖で作ったプログラムをリナクスにそのまま貼り付けて使えるでしょうか?
鯖のOS変わるとプログラムの書き方も変わるんでしょうか?
304nobodyさん:2007/06/27(水) 13:05:02 ID:???
>>300
unlinkの引数はURLじゃなくてパス。
システム内での実体のある絶対パスか相対パスを与える。

>>303
場合による
305nobodyさん:2007/06/27(水) 13:42:59 ID:5woCK0g1
>>304
うーん、何度やっても同じエラーがでます。
具体的にどう書けばいいんでしょうか。。
306nobodyさん:2007/06/27(水) 14:01:16 ID:???
>>305
$this->webrootに入ってるのは「http://localhost/以下」なんでしょ?
unlinkの引数はURLじゃなくてパスなんだから、$this->webrootをunlinkに
突っ込んでも無駄。
×unlink('http://localhost/hoge/temp/test.txt');
○unlink('/home/hoge/cake/app/webroot/temp/test.txt');
307nobodyさん:2007/06/27(水) 15:13:03 ID:5woCK0g1
>>306
ご丁寧にありがとうございます。
ローカルとサーバでOSが違うので、相対パス(../../webroot/.......みたいな)にしました。
308nobodyさん:2007/06/27(水) 16:06:07 ID:???
webrootのフルパスなら定数 WWW_ROOT で定義されてない?
309nobodyさん:2007/06/27(水) 18:10:43 ID:???
レベル低っ・・・・フレームワーク使う前に、ほかにやることありそう
310nobodyさん:2007/06/27(水) 20:12:38 ID:???
本質的な質問が最近全くでてこない件
311nobodyさん:2007/06/27(水) 22:00:42 ID:???
フレームワーク使うメリットがまったく享受できないレベルのやつがいるな。
すべてのレベルのプログラマという名目だが、さすがにPHPの基礎くらいは出来てないとな。
312sage:2007/06/28(木) 09:22:28 ID:???
これってまだ trunk でも実装されてないですよね?
ttp://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=550&forum=6
313nobodyさん:2007/06/28(木) 16:45:47 ID:b86P8EwS
delにcondition付けろ
314nobodyさん:2007/06/29(金) 01:42:18 ID:???
Cakeが焼けるようになっても作りたいお菓子がありません。
315nobodyさん:2007/06/29(金) 11:03:28 ID:???
たとえば投稿記事に関連してコメントがつけられている場合、
投稿記事を削除するときに、コメントも削除したいんですが、どう書くんでしょうか。
アソシエーションは機能しているので、関連して呼び出すことはできています。
316nobodyさん:2007/06/29(金) 14:09:47 ID:???
マニュアルのModelsのAssosiationsのdependentの辺りを100回読む
317nobodyさん:2007/06/29(金) 15:27:07 ID:XE3VOI38
/app/tmp/の中にある画像をビューで表示させたいんだけど、どうもうまくいかないです。
相対指定じゃないといけないんでしょうか?よろしければコード例をお願いしたいです。。
318nobodyさん:2007/06/29(金) 16:01:14 ID:???
webroot以下に置けよ
319nobodyさん:2007/06/29(金) 16:16:09 ID:XE3VOI38
>>318
やっぱビューからじゃアクセスできないみたいですね・・・。
せっかくtmpがあるのに、webroot以下にまたtmpディレクトリ作るのはちょっとやな感じですが、そうします。
320nobodyさん:2007/06/29(金) 21:34:10 ID:???
再掲

>レベル低っ・・・・フレームワーク使う前に、ほかにやることありそう
321nobodyさん:2007/06/30(土) 00:36:03 ID:???
322nobodyさん:2007/06/30(土) 01:20:18 ID:???
>>317はウェブの仕組みを勉強した方がいいだろ
323nobodyさん:2007/06/30(土) 02:06:58 ID:???
>>317の人気に嫉妬
324nobodyさん:2007/07/02(月) 15:09:11 ID:???
>>320-322
ん?ビューからwebroot以外にはアクセスできないだろ
325nobodyさん:2007/07/02(月) 20:59:09 ID:???
レベル低いの上塗り乙
326nobodyさん:2007/07/02(月) 21:51:21 ID:???
cakeの使用感が知りたくて来ましたがこのスレは何の参考にもなりませんでした。
本当に有難うございました。
327nobodyさん:2007/07/03(火) 11:48:07 ID:???
なんで技術系のスレってキモいやつが多いんだろうね。
レベルが低かろうがほっとけばいいのに。
328nobodyさん:2007/07/03(火) 12:21:28 ID:???
と、一言書くやつのほうがきもいなw
329nobodyさん:2007/07/03(火) 13:41:23 ID:8i5o6UCU
セッションの値によって管理者用のメニューの表示・非表示を切り替えるような処理って、>196みたいに手動でセッションをセットするもんですか?
330nobodyさん:2007/07/03(火) 14:06:51 ID:???
場合によるだろ。それだけでは分からん。

レイアウトを切り替えれば事が済むなら
自分で用意したAppControllerでコンストラクタをオーバーライドして
セッションの値によってlayout変数を切り替えればいいだろうし。
331nobodyさん:2007/07/03(火) 15:31:24 ID:???
むしろ
>手動でセッションをセットする
という意味がわからない。
332nobodyさん:2007/07/03(火) 18:18:52 ID:F4VpoSCG
テーブルを継承したいです。
でもcakePHPでは無理です。
Ruby on Railsをつかいましょう。
333nobodyさん:2007/07/04(水) 02:48:45 ID:gN4ff124
>329

<?php if(isset($session->User)){ ?>

って普通にビューからコンポーネントにアクセスできるんですね。
自己解決しました。

>330
有難うございます
334nobodyさん:2007/07/04(水) 05:14:32 ID:gN4ff124
アクションの中で
var_dump($_COOKIE);
としても全部のクッキーが表示されないのはCakePHP1.1のせい?なんかやってる?
335nobodyさん:2007/07/04(水) 10:10:25 ID:???
クッキーをセットする時のパスが間違ってるとかじゃないのか。
Cake通さなければ普通に表示される?
336nobodyさん:2007/07/04(水) 21:48:23 ID:???
Rhino on Railsってどうよ
337nobodyさん:2007/07/04(水) 22:10:12 ID:???
ttp://www.aoky.net/articles/steve_yegge/rhino-on-rails.htm
これか?読んでないんだが、一言で言うと何?
338nobodyさん:2007/07/05(木) 00:53:35 ID:???
そもそもJavaScriptのクロージャに悩まされる俺にはムリ
339nobodyさん:2007/07/05(木) 01:17:46 ID:K+ZRu43A
>>334>>335でした
さんきゅー
340nobodyさん:2007/07/05(木) 04:42:53 ID:???
CakeのRSSヘルパーってないの??
341nobodyさん:2007/07/05(木) 09:02:47 ID:???
探してから言え
342nobodyさん:2007/07/05(木) 17:37:10 ID:???
一応ヘルパーみていったんだがあるのか
343nobodyさん:2007/07/05(木) 19:23:19 ID:???
だから公式で探してから言えよ
344nobodyさん:2007/07/05(木) 21:33:11 ID:???
つか、layoutとviewだけでRSSなら吐けるんじゃ・・
layoutの方で頭にRSS用のヘッダ吐くようにして。
345344:2007/07/05(木) 21:33:49 ID:???
その辺は昔CheeseCake PhotoBlogを参考にしていろいろやってた
346nobodyさん:2007/07/06(金) 04:07:26 ID:???
いやな、rssは出力したんよ。ただrssのurlをheadにかくじゃん?あれをhtmlヘルパーみたいなのでかきたかったのよ。ヘルパーのヘルプみてもみあたらなかったからさ
347nobodyさん:2007/07/06(金) 10:06:30 ID:???
>>346
わかりにくっ。link要素のことか。
1.1観た限りでは無さげ
348nobodyさん:2007/07/06(金) 10:41:52 ID:???
rss出力自体をさすがにヘルパーで出せないだろと思ってたからヘルパー使う=リンクみたいな前提があっちゃったのよ。一個前のレスで確かにわかりづらいなとオモタよ!
349nobodyさん:2007/07/06(金) 14:15:24 ID:???
みなさんDATE型、というかTIMESTAMP型の扱いってどうしてますか?

例えばDB(他は試してないけどpostgreSQL7.x 8.x)に
birthday DATE
って列があって、

cakePHP側ではビューに
$html->dateTimeOptionTag('Profile/birthday', 'YMD' , 'NONE', $html->tagValue('Profile/birthday'), array())
こんな感じでコントローラーに受け渡してしまえば、
コントローラーでは
$this->Profile->save($this->data)

これでサックリ、
と普通だったらそうなんですが、
何も選択してないままだとSQLに
birthday=''
を吐き出してしまって、DBからいつも
「DATE型やっちゅうのに何おまえ(空)文字入れようとしとんねん!」
と怒られるんです。

かといって誕生日なんて(システム的にどーでもいい)情報、NOT_EMPTYにできないし
仕方がないのでコントローラーでわざわざSQL書いたり、
空白だったら1970-1-1にしといて、ビュー側で1970-1-1だったらNULLと同じ扱いにする、
などなど、日時情報にイチイチぶさいくな事してるんだけど、
どこにも話題が無いって事は自分がぶさいくなだけで絶対
何かcakePHP的に合理的な方法があるはず!と思ってますが
ヒントだけでも誰か教えてください。
350nobodyさん:2007/07/06(金) 14:24:20 ID:???
MySQLなので空文字放り込んでも0000-00-00になるからあんまり気にしてなかったなあ
351nobodyさん:2007/07/06(金) 15:05:44 ID:???
自己解決しました。
cake/controller/controller.phpにある
cleanUpFields
をコピペして
app_controller.phpに突っ込んで、
$this->params['data'][$modelName][$field['name'] . '_year']
$this->params['data'][$modelName][$field['name'] . '_month']
$this->params['data'][$modelName][$field['name'] . '_day']
などなど、
dateTimeOptionTagで生成されるパラメータのいずれかがemptyなら
$this->data[$modelName][$field['name']] = $newDate;
を発行しない、という処理を加えていくだけ。


独自でconfirm作ってる場合は、cleanUpFieldsかける前に
いずれかが空白(未選択)なら確認画面に戻す処理を書き加えても良いだけだし。


こんな小一時間考えればわかるような事に俺は…
お騒がせしました。
352nobodyさん:2007/07/07(土) 01:33:20 ID:r27wk2rh
みなさん確認画面とかって一個ずつhiddenとかエラーメッセージ用のヘルパーかいてます?すごく面倒くさいんですが・・・
353nobodyさん:2007/07/07(土) 10:59:23 ID:???
確認画面以前に、投稿画面も含めて遷移が必要なものについては
yamlで共通configファイルを作ってるけど。そこで変数やformの属性を全部定義してる。
354nobodyさん:2007/07/07(土) 11:25:14 ID:???
>>352
hiddenに関してはループ処理でまとめられそうな気がするよ。
俺はserializeしてbase64してハッシュつけて1個のhiddenにつっこんだりしてる。改変も防げて便利便利〜。

まあそもそも入力項目が多いということはアプリケーションがそれだけ複雑ってことだ
355nobodyさん:2007/07/07(土) 11:32:48 ID:???
どっかに確認画面のサンプルあったぞ。
そんな面倒なことしてなかったキガス
そんなことしてたらCake(FW)の意味ない品
356353:2007/07/07(土) 11:36:33 ID:???
>>354
あ、自分もそうしてる。で、そのループ処理でhiddenする項目をconfigで設定してる。
357nobodyさん:2007/07/07(土) 15:46:25 ID:???
confirm挟む時は入力値は全部セッションに入れてるな。confirmのformで送るのはtokenだけ。
358nobodyさん:2007/07/07(土) 16:53:17 ID:r27wk2rh
>>353
yamlで共通configファイルを

>>354
俺はserializeしてbase64してハッシュつけて1個のhiddenに

おもしろいですね、ぜひ詳しく聞かせて欲しい
359nobodyさん:2007/07/07(土) 18:39:04 ID:???
> 俺はserializeしてbase64してハッシュつけて1個のhiddenに
詳しくって、このまんまだと思うぞ。

360nobodyさん:2007/07/07(土) 18:54:40 ID:???
modelのyaml定義とかと連携させるというのを捨象してviewだけで書けば、
name:←変数名
 inputview:←入力form用view
  form:input
  size:30
....以下略
 confirm:←確認form用view
  form:hidden
  table:
   width:なんたら
とかやっておくだけ。

yamlで配列に取り込んでinput用viewの時には$array['name']['inputview']の定義を使って、formを描く。
confirmの場合は$array['name']['confirm']のを使う。

confirmの時のserialize云々は、>>359氏が言ってるようにそのまんまだとおもうけど
foreach($array as $key => $attrs) {
  if( $attrs['confirm']['form'] =='hidden'){
   $hiddenarray[$key] = post値;
  }
}
とかしておいて、$hidden = base_64encode(serialize($hiddenarray));
あとは一つの hidden formに一括入れちゃえばいい。
ハッシュ付けたい時は $hidden .=ハッシュ値(お好みで設定)、とすればいいでしょ。
あとはwriteの時にハッシュをreplaceして、decode->unserialize。このときにも上のyamlの配列キーが使える。

 
361nobodyさん:2007/07/08(日) 21:18:20 ID:???
ttp://cakephp.xrea.jp/?p=21
ここ参考にして、ブログにコメント機能を実装してみたのですが。
一覧表示で、記事ごとにコメント数を表示させていて、
この方は記事についているコメントをcount関数を使っているみたいなんですが、
この方も言われているようにスマートではないと思うんです。
おそらくfindCountを使うんだと思いますが、どう書いたらいいか考えても思いつきません。
どなたかアドバイスいただけませんか。
362nobodyさん:2007/07/09(月) 03:25:38 ID:+2G34Por
コントローラーでの$this->flash('message','action',0)って使ってる?
数秒メッセージを表示してリダイレクトって気持ち悪いので普通に$this->redirectでリダイレクトしてます。
なんか便利な使い方があるんでしょうか?
363nobodyさん:2007/07/09(月) 04:31:27 ID:???
ニーズによる
364nobodyさん:2007/07/09(月) 08:16:45 ID:???
>>362
リロード対策だっけ
あと開発中は実行SQLをそのページでさっと確認できるし
365nobodyさん:2007/07/09(月) 08:44:28 ID:ldZF+CQo
質問っす!
http://localhost/cake/tests/indexにアクセスするとページが見つからないって怒られます

<?
class TestsController extends AppController {
  function index() {
  }
}
?>
と書いたcake/app/controllers/tests_controller.php
とcake/app/views/tests/index.thtmlを配置しています
何が不足しているのでしょうか?
366nobodyさん:2007/07/09(月) 09:03:09 ID:???
var $name = 'Tests';
が必要かも。
367365:2007/07/09(月) 10:39:41 ID:???
それを加えても変わらずです
368nobodyさん:2007/07/09(月) 12:59:15 ID:???
もちろんモデル作ってるんだろうな
369nobodyさん:2007/07/09(月) 14:11:10 ID:???
>>366
$name がいるのはモデルだろう。
370nobodyさん:2007/07/09(月) 14:22:07 ID:???
質問する奴も回答する奴も酷いな
371nobodyさん:2007/07/09(月) 14:35:38 ID:???
このスレには批判しかできないやつが住み込んでるみたいだなw
372nobodyさん:2007/07/09(月) 14:39:41 ID:???
>このスレには批判しかできないやつが住み込んでるみたいだなw

プログラマは悲しいことにそういうやつ多いよ。
373nobodyさん:2007/07/09(月) 14:40:42 ID:???
>>370-372
お前ら全員そうじゃん
374nobodyさん:2007/07/09(月) 14:43:08 ID:???
>>373
俺らが何?批判しかしないやつ?プログラマ?

俺は最低限プログラマじゃないわ。批判もしてないけどな。
375nobodyさん:2007/07/09(月) 14:44:22 ID:???
まぁまぁケーキでも食って落ち着けって
376nobodyさん:2007/07/09(月) 15:10:44 ID:???
それ以上太るつもりかデブ共
377nobodyさん:2007/07/09(月) 16:49:24 ID:???
ほかのFW系スレより(本質的な議論とは別のところで)元気があってよろしい
378365:2007/07/09(月) 17:09:44 ID:???
他所で質問をし直します
379nobodyさん:2007/07/09(月) 17:37:23 ID:???
うんうんそれがいいよ
380nobodyさん:2007/07/09(月) 17:39:36 ID:???
ページが見つからない、ってまさか404 NotFoundじゃあないだろうな
エラーメッセージを回答者に想像させといて適格な答えが得られる訳がない
(俺はエラーメッセージ書かれても答えられないけどな)
381nobodyさん:2007/07/09(月) 18:01:13 ID:???
なんでさっきからプログラマ職とは関係なさそうなやつがいるんだ
382365:2007/07/09(月) 19:51:34 ID:???
>ページが見つからない、ってまさか404 NotFoundじゃあないだろうな
>エラーメッセージを回答者に想像させといて適格な答えが得られる訳がない

(ファイルとして存在しない)URIからコントローラのアクションを要求しているんだから
CakePHPが処理しない限りはHTTP404 NotFoundエラーになる…はず
383nobodyさん:2007/07/09(月) 20:16:13 ID:???
インストールからつまづいてるね。
http://www.cakephp.jp/doc/installing.html
ここを全ページ5万回読み直してインストールから試してごらん。
正しく出来てるなら
http://localhost/cake/tests/index
だろうと
http://localhost/cake/hogehoge/unko
だろうと次に何すればいいか表示されるから
384nobodyさん:2007/07/09(月) 20:44:27 ID:???
365貴様!!マルチポストだ!!
http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=614&forum=8
どこに書いても答えは同じだ!!
385nobodyさん:2007/07/09(月) 20:48:16 ID:???
まぁいいんじゃない
386nobodyさん:2007/07/09(月) 20:50:24 ID:???
そもそもDocumentRootの設定をしてない、に3000点
387nobodyさん:2007/07/09(月) 21:23:33 ID:???
よくねーよ
388nobodyさん:2007/07/09(月) 21:56:46 ID:???
俺はrewriteEngine on とかrewriteまわりを設定してない、に全部
389nobodyさん:2007/07/10(火) 05:24:47 ID:???
Apacheを立ち上げていない、に5000点
390nobodyさん:2007/07/10(火) 09:04:44 ID:???
存在しないコントローラやアクションを指定してアクセスした場合
画面上にエラーが多数表示されるんですが
そういった場合に特定の処理を実行させるにはどのようにすればいいですか?
391nobodyさん:2007/07/10(火) 12:54:59 ID:???
>>390
app/error.php というファイルを作って、ErrorHandler を extends した
AppError クラスを定義する。
ErrorHandler は cake/libs/error.php にある。

適当に missingController($params) やらをオーバーライドするなり
__construct からごっそりすげ替えるなりご自由に。
392nobodyさん:2007/07/10(火) 14:45:32 ID:???
>>391
なんだ、まともな人もいるじゃん。
393nobodyさん:2007/07/10(火) 18:11:20 ID:???
ばか、まともな人だらけだっつの
394nobodyさん:2007/07/10(火) 21:36:20 ID:???
その中で俺がトップ。
395390:2007/07/10(火) 22:22:01 ID:???
>>391
アリガトウ(T_T)
396nobodyさん:2007/07/10(火) 22:50:28 ID:???
CakePHPでWikiのページ履歴みたいなのを作るには
どういう設計にすればいいかなぁ?
397nobodyさん:2007/07/10(火) 22:55:24 ID:???
wikiのラッパだけ作る
398nobodyさん:2007/07/10(火) 22:56:15 ID:???
ネタはよそでお願い。
399nobodyさん:2007/07/11(水) 00:45:38 ID:???
質問からネタっぽいのだが
テーブルの構造だったらスレ違い&板違いだよね

diffをとったものをガンガンレコードに追加すれば?
400nobodyさん:2007/07/11(水) 01:10:33 ID:???
>>399
つまり、MediaWikiとは違った設計ということですね?
401nobodyさん:2007/07/12(木) 11:23:56 ID:???
カラムのデータを svn にぶちこむDBクラスをでっちあげるとか?
衝突が起きたときのマージのインターフェイスをちゃんとつくれば
分散wikiとか夢はひろがりますな.
402nobodyさん:2007/07/12(木) 14:42:58 ID:iLx7lYjZ
何か質問ある?
403nobodyさん:2007/07/12(木) 14:48:39 ID:???
ない
404nobodyさん:2007/07/12(木) 14:51:49 ID:???
ある。

MediaWikiのように、現在のページ(pageテーブル。ページ内容含まず)を
更新するたびにそのページのリビジョンテーブル(revisionテーブル)に
新しいリビジョンを追加し、そのリビジョンテーブルに関連した
テキストテーブルにデータを追加。
(そして表示するときは、その最新リビジョンを表示)

というのはscaffoldやbakeでさくっとできないの?

データベースレイアウト
http://www.mediawiki.org/wiki/Database
405nobodyさん:2007/07/12(木) 15:03:54 ID:???
できるんちゃいますやろか
406nobodyさん:2007/07/12(木) 15:10:09 ID:???
どうやって?

なんかCakePHPってモデル(テーブル)に直接書き込むのは
簡単だけど、モデルへの書き込み(Update)を追加(Insert)に
変更するのは面倒そうなんだよな。

具体的にいうと、Wikiのページを更新すると、
pageテーブルに上書き、
revisionテーブルに追加、
そのrevisionテーブルに追加した行に関連したtextテーブルに追加、
と三つのアクションになる。

そしてページを表示するときは、revisionの一番新しいのだけ表示。

これってスマートに実装できるんだろうか?
まあ、レールを脱線してがんばれば
どんなことだってできるだろうけど。
407nobodyさん:2007/07/12(木) 15:46:25 ID:???
Cakeの$model->save()はUpdateとInsertの明確な区分がなさげなので、
レコード追加時はidを空、レコード変更時は、あらかじめ変更するレコードの
idカラムを取得してセットしておく必要があるが、それ以上難しいことってある?
ごめ、俺、理解してないかも。
408nobodyさん:2007/07/12(木) 15:49:03 ID:???
?revisionテーブルは新しく作るんだろ?別に既存モデルの変更じゃないやん。
あとページ表示は単にpageテーブルからのデータで問題ないでしょ?revisionテーブル必要ない。
409nobodyさん:2007/07/12(木) 16:00:45 ID:???
参照先見てないが、履歴を残すためにrevisionテーブル使ってるんじゃない?
revisionとtextが1:1だったらtextテーブルの意味のほうが良く分からん
まあぶっちゃけpageテーブルだけでもいけるとは思うが
410nobodyさん:2007/07/12(木) 21:15:19 ID:???
そう。revisionは履歴を残すため。たぶん。
(MedhiaWikiは履歴の実装を見るために参考にしただけだから詳しくない)

revisionとtextがなんて分かれているかは知らないが、
MediaWikiでは分かれている。
411nobodyさん:2007/07/12(木) 21:21:59 ID:???
ちょっと個人的に整理してみると、

まず、pageテーブルを編集する。
そこに履歴の仕組みを作りたい。

その方法として、pageテーブルから
バージョンごとで違う情報をrevisionテーブルに移動し、
そちらに格納する方法。(MediaWiki)

もう一つの方法として、pageテーブルはそのままで、
pageテーブルが更新されたら、履歴情報をhistoryテーブル
(フィールドはpageテーブルのフィールド+リビジョンID)に
追加しておく方法。

個人的には後者の方がCakePHPで素直に実装できそうな気がするが、
MediaWiki方式のほうに大きなメリットがあるだろうか?
412nobodyさん:2007/07/12(木) 21:31:24 ID:???
前者のメリットとして、テーブルの構造に変更があったとき
revisionテーブルだけの修正ですむ。
(後者だと、pageテーブルとhistoryテーブルの二箇所を変更しないといけない)

後者のメリットとして、pageテーブルにはよく見るであろう最新データのみが
入っているため、履歴も含めてすべて同じテーブルに入っている前者よりも負荷が少なそう。
413nobodyさん:2007/07/12(木) 23:37:35 ID:???
おれなら後者
414nobodyさん:2007/07/13(金) 10:06:11 ID:???
これが正解ではないが、IBMにチュートリアルがある。
"Create an interactive production wiki using PHP"
http://www-128.ibm.com/developerworks/views/opensource/libraryview.jsp?search_by=production+Wiki+PHP

Wiki作成しながらCakePHP語るのもいいかもね。
415nobodyさん:2007/07/13(金) 17:50:45 ID:j8+9kyhU
1.1.16.5421リリース今更発見あげ
416nobodyさん:2007/07/17(火) 11:51:36 ID:c9LkXXMo
まったくの初心者で、そもそもデバックをどうしたらよいかわからないのです。モデルとコントローラーとビューを作ったけれど何が悪くて画面が真っ白なのか?エラーも表示されていない、どこが悪いかどうやって調べたらよいか教えてくれる方おりませんか?すみません。
417nobodyさん:2007/07/17(火) 12:09:35 ID:???
>>416
そのレベルの人は身近に教えてくれる人を見つけることが先決。

それが無理なら「cakePHP 真っ白」とかでひたすらググろう。
418nobodyさん:2007/07/17(火) 12:10:12 ID:HxVHyr/E
お前らの開発環境教えれ
419nobodyさん:2007/07/17(火) 12:33:26 ID:???
開発環境の何を教えて欲しいのか分からん
420nobodyさん:2007/07/17(火) 14:55:40 ID:???
秘書の数とか、そういうの
421nobodyさん:2007/07/17(火) 15:58:57 ID:???
>10分で作るCakePHPアプリ アプリケーション編
この中で使ってるPHPエディタのフォントを教えてください
422nobodyさん:2007/07/17(火) 16:27:03 ID:???
>>421
ダサ字
423nobodyさん:2007/07/17(火) 16:35:22 ID:HxVHyr/E
>>419
OSとエディタだよ
424nobodyさん:2007/07/17(火) 17:04:38 ID:???
まず自分の環境を晒してから聞け
425nobodyさん:2007/07/17(火) 17:34:38 ID:???
俺んとこは24インチデュアルだな。
426nobodyさん:2007/07/17(火) 17:53:03 ID:???
うちはとりあえずRAID5で組んである。あと個人ごとにUPS付き
427nobodyさん:2007/07/17(火) 18:58:20 ID:???
資料請求、管理プログラムをcakephpに移植しようと考えてるんだけど、
あるディレクトリ以下をcakephpに処理を任せることは可能?
428nobodyさん:2007/07/17(火) 19:26:57 ID:???
>>427
可能。
429427:2007/07/17(火) 19:39:07 ID:???
>>428
サンクス
430nobodyさん:2007/07/17(火) 20:34:39 ID:???
俺んとこは新築マンションだな。
最寄り駅まで徒歩2分
431nobodyさん:2007/07/17(火) 22:16:46 ID:???
うちは、とりあえず土日出勤の場合は代休時間が1.2倍で加算される。
あと昼飯については、レシートだけで領収書代わりにしてくれる。
432nobodyさん:2007/07/17(火) 23:44:04 ID:???
IBMのwikiチュートリアルためしたんだが、セッション関連のバグが出る。
誰かうまくいったやついる?
433nobodyさん:2007/07/18(水) 00:07:30 ID:???
>>432
環境を書け
434432:2007/07/18(水) 10:34:40 ID:XEakOCt8
>>433
マウスとキーボードはhpのやつです。
435nobodyさん:2007/07/18(水) 10:54:14 ID:???
俺はキーボードはオウルテックでマウスはMS。
436nobodyさん:2007/07/18(水) 12:18:59 ID:???
メモリは1GBで我慢してるよ
437nobodyさん:2007/07/18(水) 12:19:13 ID:???
この流れの全ての原因は>>425にある。謝れ
438nobodyさん:2007/07/18(水) 12:30:40 ID:???
ちんぽ舐めたらな
439nobodyさん:2007/07/18(水) 15:44:55 ID:???
ここは環境を書くスレです
440nobodyさん:2007/07/18(水) 16:24:22 ID:???
>>396からちょこちょこwikiの話振ってきた人まだいるかな?

http://techno.hippy.jp/rorwiki/?Wiki%A4%F2%BA%EE%A4%C3%A4%C6%A4%DF%A4%EB
ここに履歴保存とか、それをつかった衝突検知とか差分検出とかについてかいてあって参考になる。
railsだけど
441nobodyさん:2007/07/18(水) 17:50:44 ID:???
たまにこの板にもまともな人いるのな。
442nobodyさん:2007/07/18(水) 23:22:49 ID:???
>>416


画面が真っ白になるのは、基本的にインクルードファイルの文法ミスが原因
ローカル環境にPHPをインストールして、文法チェックに対応したエディタを使うといいよ。
443nobodyさん:2007/07/19(木) 22:47:07 ID:???
>>440
いますよー。定期的に見てます。
リンク先よく読んで見ます。

でも、実は衝突検知とか差分検出とかは
あまり重要じゃなかったり。
というのも、作ろうとしているのは一人WIKIだから。
(しかもWIKI記法じゃないのでWIKIですらない?)
444nobodyさん:2007/07/19(木) 23:00:14 ID:???
一人wikiなんてのはwikiじゃないんだが
445nobodyさん:2007/07/19(木) 23:16:00 ID:???
>>444
ローカルウィキでぐぐってね
446nobodyさん:2007/07/20(金) 01:47:56 ID:???
俺は一人trac、一人Microsoft Projectを嗜む男ですが
それが何か
まあ共有知じゃねーじゃんって意味では>>444のいいたいことも
わかるけどね
447nobodyさん:2007/07/20(金) 09:40:35 ID:???
ローカルウィキなんてwiki風cmsです程度のはなしだろ。
448nobodyさん:2007/07/20(金) 10:05:33 ID:???
差分処理とか関係ないなら、なにも悩むところないじゃん。
あとは個人用なら、独自タグにどんなのやつを採用するかぐらいだろうな。
ttp://www.michelf.com/projects/php-markdown/こういうのを乗っけるのはどうか
449nobodyさん:2007/07/20(金) 13:49:37 ID:???
ローカルで閉じた中でやるなら、「htmlエンティティをエスケープしない」でもよくね
450444:2007/07/20(金) 22:25:08 ID:???
>>445
ぐぐったけど、こんなもんwikiじゃねーだろ
>>446
だったら、共有知実装なしのwikiなんかwikiって言うのがおかしいのはわかるよね。
451nobodyさん:2007/07/20(金) 22:52:24 ID:???
wikiは目的を指す用語ではない。
452nobodyさん:2007/07/21(土) 11:28:29 ID:???
日本語でおk
453nobodyさん:2007/07/21(土) 15:45:12 ID:???
>>452
文盲乙
454nobodyさん:2007/07/21(土) 18:36:57 ID:???
俺もワカランな。どういう意味か教えてくれよ超能力者の453
455nobodyさん:2007/07/21(土) 18:41:40 ID:???
目的によってwikiと呼ぶor呼ばないが決まるんじゃなくて、
一定の仕組みを指す言葉ってことでしょ
456nobodyさん:2007/07/21(土) 18:46:10 ID:???
で、ウィキの定義がCakePHPに何か関係あるのか?
457nobodyさん:2007/07/21(土) 18:48:55 ID:???
cakeをFWにしてwiki作りたいって言う奴がいたからじゃね.
実はそれはwikiではなかったという顛末
458nobodyさん:2007/07/21(土) 19:02:46 ID:???
wikiを作りたいじゃなくて
wikiみたいなのを作りたいだったような
どっちでもいいか
459nobodyさん:2007/07/21(土) 19:56:44 ID:???
>>457
「wikiみたいなのを作りたい」でしょ。
勘違いしている人がいるね。
460nobodyさん:2007/07/21(土) 20:04:16 ID:???
wikiかどうかの話は>>444に対するレスでしょ。
勘違いしてる人がいるね。
461nobodyさん:2007/07/21(土) 20:57:53 ID:???
個人的には結構どうでも良い話題ではあるが、
wikiシステムが想定している利用ケースである、
「多人数による共有知の生成」
を満たすための仕様がwikiシステムの仕様であり、
そういう意味では衝突検知も差分検出もログイン認証も必要
なのではあるが、
じゃあMediaWikiをダウンロードしてきてローカルの開発用鯖に
インスコして一人で使ってたら、それはwikiとは言わないのか?
という話だからなあ。
しかも「wikiっぽいもの」って質問者が書いてるわけだし。
突っかかってる人は、どうしても「wiki」という語句の用法が気に入らないらしいけど。
つかこのスレは脱線しっぱなしだね・・おれもだねスマソ
462nobodyさん:2007/07/21(土) 21:44:13 ID:???
>>461
突っかかってんのあんたでしょw
463nobodyさん:2007/07/22(日) 00:18:32 ID:???
ちがうよ。俺じゃないよ。どうでもいいけど
464nobodyさん:2007/07/22(日) 01:04:30 ID:ktiR8O29
すいません。pukiwikiを一人で使うと、
名前が変わっちゃうんですか?w
一人で使っていても、使っているシステムはwikiだと思っていましたwww
465nobodyさん:2007/07/22(日) 14:45:17 ID:???
wikiはウィキペディアってサイトやMediaWikiってスクリプトより
昔からある概念だから
本当はBlogやBBSと同じ言葉の仲間なんだよな。

一人でローカルマシンで掲示板やってますって言ったら変だけど
wikiはなんかMediawikiやPukiwiki=wikiって風潮になってるから
あまり違和感は感じない。

みんなで書けて文をまとめられるなら、
今の大多数のwikiみたいに、wikipediaお手本にしたような
使いにくい糞仕様にしなくてもwikiはwikiなんだけどね。

でさ、そういった物も上手くユーザーインターフェース考えるだけで
Cakeならきっと簡単に作れるさ…って話を元に戻してみる。
466nobodyさん:2007/07/23(月) 09:33:23 ID:???
他所でやれ雑魚ども
467nobodyさん:2007/07/23(月) 10:09:24 ID:FD1gjjFA
cakephpを既存のサイトに導入したいのですが、複数のエントリポイントをつくるような事例ってないでしょうか?
例えば今までのニュース表示用のnews.php、商品一覧を表示するitems.phpをそれぞれcakeに置き換えるような・・・
URLのrewriteが邪魔してうまくできない・・・

もしくは、infopathも使わないでcakeを使えると嬉しいんですが・・・
(index.php?url=controllerとかでいい)
468nobodyさん:2007/07/23(月) 11:04:43 ID:???
>>467
rewrite 切れば良いだけだろ。ただ、そんな事、する必要も無いと思うが…。
469nobodyさん:2007/07/24(火) 09:27:12 ID:???
逆にそういうときこそmod_rewriteを駆使する状況なんじゃないの
470nobodyさん:2007/07/24(火) 11:13:57 ID:???
>>469
同意
471nobodyさん:2007/07/24(火) 14:56:56 ID:PrhqUAyS
mod_rewriteを理解できるデザイナなんていないから大変
472nobodyさん:2007/07/24(火) 15:06:01 ID:???
デザイナに理解させる必要など無い
まともなプロジェクトならファイル一覧ぐらい作るんだから
それを提出すればいいだけ
473nobodyさん:2007/07/24(火) 22:34:16 ID:???
news.phpは、今後
/news/
ってことになりました、って言えば終わりじゃん
474nobodyさん:2007/07/24(火) 23:02:23 ID:???
旧URLから新URLにリダイレクトさせればなおよし
475nobodyさん:2007/07/25(水) 00:01:30 ID:???
リダイレクトなんて高度な技ができたら苦労はしない
476nobodyさん:2007/07/25(水) 00:05:16 ID:Jxxvgntg
readが未だに何をしたいのかよくわかりません
マニュアル見ると引数が二つあるのにチュートリアルでは何も渡してない・・・だめp
477nobodyさん:2007/07/25(水) 00:29:39 ID:???
>>476
modelの話なのかsessionの話なのかはっきりさせようぜ
478nobodyさん:2007/07/25(水) 00:33:28 ID:???
modelにすでにID渡してたりしたら、readでそれだけ読んでくれる。
479nobodyさん:2007/07/25(水) 15:08:09 ID:Jxxvgntg
>>477
modelの話です。

>>478
thx。超サンクス。
480nobodyさん:2007/07/26(木) 11:12:31 ID:???
wikiを自作してみたいです。

Pawfalikiのソースコードを見て、自分でもwikiが作れるような気がしてきました。
↑PukiWikiよりシンプル?

http://opentechpress.jp/developer/07/04/20/0138252.shtml
Pawfaliki――1ファイル形式で運用可能な簡易wikiツール
481nobodyさん:2007/07/26(木) 11:39:06 ID:???
で、なぜあなたはこのスレに書き込むのでしょうか?
ファイルベースのシンプルなwikiを再発明したいのですか?
だとすればなぜ「フレームワーク CakePHP」のスレッドに書き込むのでしょうか?
ファイルベースのシンプルなwikiを作るなら、cake使うのも使わないのも
手間も保守性もたいしてかわりませんよ
482nobodyさん:2007/07/26(木) 19:32:06 ID:???
wikiは文法が特殊だから嫌い。
TinyMCEとかでWYSIWYG編集させろ
483nobodyさん:2007/07/27(金) 17:25:54 ID:sllST2Yd
webrootの中身をダイレクトにurlで指定する方法ってあるのでしょうか。
hoge/app/webroot/ みたいな構成でブラウザからhttp://localhost/hoge/img/cake.power.png とかやってもNot Foundになりますよね。
CakePHPで認証かけたサイトでスタティックなHTMLファイルを表示したいのですが……。
484nobodyさん:2007/07/27(金) 17:29:23 ID:???
基本の基本だなあ・・・・スレ違い
くだすれPHP(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1164617202/
あたりで質問しなさい
485nobodyさん:2007/07/27(金) 17:37:03 ID:sllST2Yd
>>484

僕ですよね?
基本なのか……。
誘導ありがとうございます。
そちらで聞いてみます。
486nobodyさん:2007/07/29(日) 00:30:11 ID:???
基礎もわからずフレームワーク使うのは危ないな。
487名無しさん@そうだ選挙に行こう:2007/07/29(日) 18:14:49 ID:???
はじめまして。
当方、今まで単機能な自作フレームワーク+Smartyを
使ってきましたが、CakePHPに興味を持ちましてCakePHP
のリファレンスガイドを一読しました。
そこで質問があります。

Q1.Smartyに対するCakePHPのアドバンテージはなんで
 しょうか?
 (リファレンスガイドを読んだだけなのでよくわかりません
 でした)

Q2.リファレンスガイドには、DBの条件として、テーブル名
 は英単語の複数形(customers, users)であること、主キー
 のフィールド名は「id」という名であることなどなどの規約が
 書いてあります。
 CakePHPは、これに準拠したDBでないとNGなのでしょうか?

以上、教えてください。
よろしくお願い致します。
488名無しさん@そうだ選挙に行こう:2007/07/29(日) 18:18:55 ID:???
> Q1.Smartyに対するCakePHPのアドバンテージはなんで
>  しょうか?
>  (リファレンスガイドを読んだだけなのでよくわかりません
>  でした)

Smartyを使わないですむ

> Q2.リファレンスガイドには、DBの条件として、テーブル名
>  は英単語の複数形(customers, users)であること、主キー
>  のフィールド名は「id」という名であることなどなどの規約が
>  書いてあります。
>  CakePHPは、これに準拠したDBでないとNGなのでしょうか?

NGというわけではないが、別途modelでtable名やらprimary keyやら設定しないと
いけない。でもってその状態でbakeしようとするとえらい面倒なことになってかえって苦労
すると思われ。
489名無しさん@そうだ選挙に行こう:2007/07/29(日) 18:49:36 ID:???
>>488
さっそくのレスありがとう。

Q1のレスについては・・・?・・・ですが、
Q2については、ちょっとガックリです。
既存のDBをWebで公開する開発なので、スキーマの定義を
変更するわけにはいかないのです。

参考になりました。ありがとう。
490名無しさん@そうだ選挙に行こう:2007/07/29(日) 19:00:21 ID:???
>>489
まだいるかどうかわかりませんが、
そういうニーズであればSymfonyの方に分があると思われ
以前、他人が設計したテーブル定義書に従って組もうとして
エラい目にあいました
bakeがモデル内のuseTableやPrimaryも適宜読み込みながら
CとVのスケルトンを作ってくれるとスゲー嬉しいんだけど・・・
491名無しさん@そうだ選挙に行こう:2007/07/29(日) 19:03:31 ID:???
Q1については、すでにSmartyを習得してるなら、特段のアドバンテージはないよ、ということです
生PHPを用いながらView Templeteの分離が出来る、という位の話
492nobodyさん:2007/07/29(日) 23:11:27 ID:???0
あとは、アソシエーションだな。
ちなみに、cakeのDB規約に従わなくても、指定すればいいだけだわ。
cakeが何か分からないレベルならsmarty使っておけって話。
493nobodyさん:2007/07/30(月) 07:05:58 ID:???
>>490,491
レスありがとう。

Smartyと比較して大きなメリットはないということで、
了解しました。


>>492
>>cakeが何か分からないレベルならsmarty使っておけって話。
貴方はCakePHPの開発者ですか?
494nobodyさん:2007/07/30(月) 07:08:06 ID:???
>>cakeが何か分からないレベルならsmarty使っておけって話。

貴方はCakePHP自体の開発者ですか?
それとも私と同じCakePHPの利用者ですか?
495nobodyさん:2007/07/30(月) 07:16:07 ID:???
FWと単なるビュー用のパーサ・レンダラーを比べてどうするのかと
496nobodyさん:2007/07/30(月) 08:23:34 ID:???
うーん俺はSmartyと比べて(プレゼンテーション層の)アドバンテージはあるか?という
質問と受け取ったが。まいいや
497nobodyさん:2007/07/30(月) 16:57:41 ID:6iA0AE5f
こんにちわ。csvファイル管理について教えていただきたいのですが、
webroot/files/ フォルダ内に hoge.csv ファイルを置きます。

そして、どのコントローラーからもこのhoge.csvを参照したいのですが、階層が変わると、パス
も変わってきてしまうので、どのようにすればよいのかわかりません。

絶対パス以外で何か良い方法はございませんでしょうか。
498nobodyさん:2007/07/30(月) 17:35:24 ID:6iA0AE5f
>497
echo file_get_contents(WWW_ROOT.'files/default.csv');
すいません、自己解決しました。
ありがとうございました。
499nobodyさん:2007/07/30(月) 18:28:42 ID:CIKT+2nj
>cakeが何か分からないレベルならsmarty使っておけって話。
一票
500nobodyさん:2007/07/30(月) 19:55:16 ID:???
なんかきもいウジムシが沸いてるな。
501nobodyさん:2007/07/30(月) 20:35:01 ID:???
自虐しなくていいのに・・・・
502nobodyさん:2007/07/30(月) 21:01:07 ID:PrtzY/tU
>貴方はCakePHPの開発者ですか?
なんでそうなるのかな?
Cakeの一番の特徴そして何を考えて目指して作れたかも
わかってないやつに何をいっても無駄だけど

>それとも私と同じCakePHPの利用者ですか?
他人と自分のレベルは同じぐらいとか思ってんのかな?
503nobodyさん:2007/07/30(月) 21:38:23 ID:???
Cakeの一番の特徴っていわれてもな
ActiveRecordもどきってことか?
504nobodyさん:2007/07/31(火) 01:49:57 ID:/l30lqBP
>>ActiveRecordもどきってことか?
オブジェクトじゃなくて配列(ハッシュ)で扱うことにしちゃったあたりが良くも悪くもいかにもPHPって感じで最高
505nobodyさん:2007/07/31(火) 14:24:36 ID:???
Cakeの一番の特徴はRailsに似てるってところだお
506nobodyさん:2007/07/31(火) 17:56:15 ID:???
railsやったことあったらcake習得しやすいの?
507nobodyさん:2007/07/31(火) 18:40:29 ID:???
rails 使える環境ならcake 使う理由はないんじゃないの
508nobodyさん:2007/08/01(水) 10:57:06 ID:???
>>506
しやすいよ。とても。
509nobodyさん:2007/08/01(水) 11:55:09 ID:k9tgerD3
>>506
すごくしやすい
>>507
そうだね。rake最高
でもレンサバしかつかえない貧乏クライアントも少なくない
510nobodyさん:2007/08/03(金) 01:55:22 ID:???
cakeが便利過ぎて普通のPHPアプリの書き方忘れた…
511nobodyさん:2007/08/03(金) 18:06:49 ID:RjyFibPY
>>510
あるあr・・・ねー・・・・・あるあるwww
512nobodyさん:2007/08/03(金) 20:41:54 ID:???
あるあるあるあるある・・・・・・・・・・ぶー
513nobodyさん:2007/08/07(火) 17:46:44 ID:???
俺PGやめるわ。
514nobodyさん:2007/08/07(火) 21:46:06 ID:???
Cakeのvalidateってフォームで送られてくるデータ前提になってるように思うけど(違ってたらスマソ)
フォームでないGETパラメータの検証を行うにはどうやるのがいいかな?

例えばアドレスの後に必ず ?query=abc がついておかなければならず、
ついていない場合はエラーページへ飛ばすといった時はどうするのがベストかな?
515nobodyさん:2007/08/07(火) 22:33:06 ID:???
?query=abc だったら普通にgetパラメータ検証
/abc みたいな感じでコントローラメソッド以下のパラメータとして渡すのならcake的な処理で
516nobodyさん:2007/08/08(水) 00:17:14 ID:???
>>515
そのやり方やとPATH_INFO形式のURLにならんかな?

http://hogehoge/コントローラ名/アクション名/パラメータ名

みたいな感じ。

普通は上記のような感じでいいんやけど(漏れの個人サイトなら↑のようにしてる)
絶対にクエリをつけて作成するようにと言われとります。

例えばmodelの中に
var $validate = array(
  'query' => VALID_NOT_EMPTY,
);
とか書いて
http://hogehoge/コントローラ名/アクション名/?query=abc
でアクセスした場合はOK的なページが出て
http://hogehoge/コントローラ名/アクション名/
のように何もつけなかった場合はエラーページが出る
みたいなことが出来ればいいかなと思ってるんですがどうでしょう?
517ディアルガvsパルキアvsダークライ!:2007/08/08(水) 10:48:22 ID:uOpKgT+t
>516
僕、get の場合は強引にpostデータに置き換えてやってます。

-- コントローラーでの指定 --

$this->data['モデル名']['query'] = $_GET['query'];
$this->モデル名->set($this->data);
if($this->モデル名->validates()){
echo 'OK';
} else {
echo 'まいっちんぐー';
}

以上です。編集長。
518nobodyさん:2007/08/08(水) 23:31:23 ID:???
>>517
特定ページにのみバリデーションする場合はそれでいけますた。 アリガト!!

で、もう一段階ランクアップなんやけどサイト全体にGETパラメータをつけた状態でアクセスさせ、
GETパラメータがついていなかったり値がおかしかった場合はエラーページ表示、といった具合にしたい。

とりあえずapp_model.php内に

var $validate = array(
  'query' => '/^[\w]{1,20}$/',
);

function __construct()
{
  parent::__construct(); ← Modelクラス内のコンストラクタを見ると
                   3つの引数があったけどここへはどのように入れればいいかな?
                   第一引数は$this->id,第二引数は$this->tableでいい気もするけど(違うかもw)
                   第三引数がワカンネ!
  $this->data["query"] = $_GET["query"];
  if($this->validates($this->data)){
    echo "OK";
  }else{
    echo "まいっちんぐ〜";
  }
}

一応、こんなふうに書けば動く事は動いたんですが
たぶん間違っていると思うのでサイト全体(そのプロジェクト全体)に対してバリデーションしたい場合は
どう書くのがベストなんかな?

ググってみたらCakePHPのおいしい食べ方とかCakePHP1.1系で1.2系のバリデーションを使う、とかに
引っ掛かったけどそれらしき事は掲載されてなかったなぁ。
519nobodyさん:2007/08/09(木) 00:25:35 ID:???
「すべて」だったらapp_controller の beforeFilter か beforeRender あたりをあたると嬉しいことがあるかもと横レス
だめだ記憶が曖昧だ
520ディアルガvsパルキアvsダークライ!:2007/08/09(木) 11:19:54 ID:Us13hVpD
>>518
519さんの意見に賛成。

  $this->data["query"] = $_GET["query"];
  if($this->validates($this->data)){
    echo "OK";
  }else{
    echo "まいっちんぐ〜";
  }

の部分を cake/app_controller.php のbeforeFilter に書き込めばいいと思いますよ。

cakephp1.2のバリデーションはちょっと難しい正規表現ができるだけと解釈してます。
1.1に組み込んでますけど。
521nobodyさん:2007/08/09(木) 21:56:58 ID:???
>>520
app_controller.phpで$this->validates($this->data)って出来るもんなんかな?

http://api.cakephp.org/class_controller.htmlを見てもvalidatesは掲載されていませんし
自分でapp_controller.phpのbeforeFilterにget_class_methods($this)って書いてもvalidatesは出てきません。
当然、$this->validates($this->data)って書けばvalidatesメソッドなんてねーヨ
っていうエラーが返ってきますがどうでしょう?

代わりにvalidateを書いてみましたがqueryに変な値を入れても0のままですた。
何か他にいい方法、もしくは打開策があればよろしくです。
522nobodyさん:2007/08/09(木) 22:59:14 ID:???
Getqueryモデル作って
$this->Getquery->validates(ry
523nobodyさん:2007/08/10(金) 09:12:34 ID:???
Cakeでモデルからビューへ直接、データを送るとかってのは無理かな?


例えばモデルで取得した結果をコントローラを経由せずにビューへ送るとか
524nobodyさん:2007/08/10(金) 09:45:50 ID:???
>>523
そういうことやるならMVCなフレームワークは使わない方がいい。

ちなみにModel内にcontrollerの参照があったような気がするから
それを経由して->setすればいいんじゃないか。

無かったらスマン。
525nobodyさん:2007/08/10(金) 15:19:43 ID:aNBvC55h
Cake使いすぎたら普通にWebアプリを0から作るのがめんどうになるな。
526nobodyさん:2007/08/10(金) 21:45:32 ID:???
>>525
むしろCakeを使って作り始める事を0から作り始める事のように思ってますが何か?w
527nobodyさん:2007/08/11(土) 08:57:01 ID:???
質問です。

app_controller.phpからapp_model.phpに書いてる関数を取得する方法はありませんか?
528nobodyさん:2007/08/11(土) 09:39:30 ID:???
意味不明
529nobodyさん:2007/08/11(土) 10:10:05 ID:???
>>528

例えばapp_model.phpに
function test(){
print "testだぉ";
}
と書いて、それを例えば$this->test()とかで呼んでapp_controller.phpで表示、取得する方法はないか?
ってところ。
530nobodyさん:2007/08/11(土) 16:05:23 ID:???
やりたいことと書いてることが意味不明。
PHPの言語仕様を学びなおせ
531nobodyさん:2007/08/11(土) 16:13:23 ID:???
とりあえず>>529がやろうとしてる事の意味はわかる。

>>530
>>529の何を指して意味不明って言ってるのかが意味不明。
532nobodyさん:2007/08/11(土) 17:57:51 ID:???
app_controllerで$this->test()と呼んだら、$thisはapp_controllerじゃん
533nobodyさん:2007/08/11(土) 20:44:21 ID:???
app_modelクラスにtestメソッドを作成

Unkoモデル作成
Unkoモデルはapp_modelを継承してるので
testメソッドが呼び出せる

以下、app_controllerにて

$uses = array('Unko');
でUnkoモデル使用を宣言

$this->Unko->test();
でいいんじゃね

もっといけてるやりかたあったら教えてください
534nobodyさん:2007/08/12(日) 00:54:40 ID:???
>>532
おまえ、アホだろ?
最初は>>529がアホかと思ったけどw
もっと違うところで意味不明って言ってるのかと思ってた


>>例えば$this->test()とかで呼んで

って書いてあるんやから例えに決まってるじゃんw
app_controllerに$this->test()って書いてapp_modelに書いたtestメソッドが呼べたら怖いわ

>>533
まぁ、普通はそう書くわな〜。
それ以上にいけてるやり方ってあんの?
535nobodyさん:2007/08/12(日) 03:18:11 ID:???
糞みたいなスレだなww
536nobodyさん:2007/08/12(日) 12:28:06 ID:???
非ネイティブ関西弁を使う奴は糞だと昔から決まっています
537533:2007/08/12(日) 15:00:07 ID:???
この度は私がUnkoモデルを作成したばっかり
に、クソクソ言われるクソスレになってしまって、
本当に申し訳ございません。
538nobodyさん:2007/08/12(日) 20:31:55 ID:???
初心者を馬鹿にするような発言はやめろ。
同じCakeの利用者なんだから。
539nobodyさん:2007/08/14(火) 00:50:00 ID:???
と、素人が自己擁護しております
540nobodyさん:2007/08/14(火) 10:28:20 ID:???
Akelosスレ建てて
http://www.akelos.org/
541nobodyさん:2007/08/14(火) 10:50:49 ID:???
>>540
【PHP】フレームワークについて語るスレ7【総合】
http://pc11.2ch.net/test/read.cgi/php/1181350116/
542nobodyさん:2007/08/14(火) 17:06:01 ID:???
DBからデータ引っ張ってきてforeachで回してるときに
1から始まる連番をスマートに表示したいんだけど、
何かcake側で用意されていたりする?
543nobodyさん:2007/08/14(火) 22:03:21 ID:???
普通にかくしかないべ。
544542:2007/08/14(火) 23:15:30 ID:???
>>543
そっか、ありがとう。
まだcake始めたばっかりだから、どこまで出来て、どこから出来ないのか
さっぱり見当がつかないよ。
ドキュメント読み込み中。
545nobodyさん:2007/08/14(火) 23:39:39 ID:???
読んでから質問しろ
546nobodyさん:2007/08/15(水) 01:57:43 ID:???
まあまあ、変数に1をセットしてそれをループ内で表示してインクリメントするだけなら
普通に書いてもたいした手間じゃないでしょww
547nobodyさん:2007/08/15(水) 20:08:24 ID:???
それは最近の一般的なWebアプリフレームワーク自体をよくわかってないんじゃ?
548nobodyさん:2007/08/15(水) 20:28:02 ID:???
↓以下547の一般的なwebアプリフレームワーク観が続きます
549nobodyさん:2007/08/16(木) 02:18:59 ID:???
そろそろcakephp1.2βが出そうなんだけど、みんなは1.1のままで続行?
550nobodyさん:2007/08/16(木) 15:04:16 ID:NGPKl3TM
まだ1.2でてないの?(笑)
551ディアルガvsパルキアvsダークライ!:2007/08/16(木) 15:59:02 ID:b8gDKmLD
>>550

1.2のベータってことでしょ。
1.2のアルファはもう出てるから。

アルファ版とベータ版の違いを調べてから笑った方がいいかもね。
552nobodyさん:2007/08/16(木) 16:01:00 ID:NGPKl3TM
で、正式版1.2はでたの? でてないよね?(笑)

アルファとかベータとか、それがなんかあったのか?(笑)
553nobodyさん:2007/08/16(木) 17:52:42 ID:???
ハイハイ
554nobodyさん:2007/08/17(金) 15:54:42 ID:???
CakePHPよりもよさそうかもしれないAkelosスレ

【PHP】フレームワーク Akelos
http://pc11.2ch.net/test/read.cgi/php/1187333485/l50
555nobodyさん:2007/08/17(金) 21:27:42 ID:kJTYbdA8
よくあるオンラインショップと同じように、
商品の検索などは非SSL、商品の購入時にはSSLと
非SSLとSSLをまたぐシステムがあります。

その場合の注意点として以下の記事を読みました。
http://kinshachi.ddo.jp/kurage/html/MT/comp/archives/000272.html
>
> 2つのcookieを使ってセッション追跡する
>
> ランダムに生成するセッションIDを、「secure 属性なし」のcookie(仮に名前を「session-id」)と「secure 属性付き」のcookie(仮に名前を「secure-session-id」)の2つ発行する。
> 2つのcookieはhttps://のアクセスでログインが成功したタイミングで発行し、どちらのセッションIDからでもユーザを特定できるようにしておく。
> SSLで保護すべき画面に http:// でアクセスできると、盗聴で盗み出した「secure 属性なし」のcookieを使って、重要情報にアクセスできてしまいます。
> そのため、SSLで保護すべき画面に対してhttp:// でアクセスできないようにする必要があります。

安全のためには上のようなことをしないといけないようなのですが、CakePHPではこれが
標準でサポート、もしくは簡単に実装できるような仕組みになっているのでしょうか?
556nobodyさん:2007/08/17(金) 21:39:14 ID:???
自分でドキュメント読んでから質問しろ
557nobodyさん:2007/08/17(金) 21:53:07 ID:???
読みましたが、どこにSSLについて書いてあるんですか?
558nobodyさん:2007/08/17(金) 22:10:36 ID:???
読んで分からないのかww
559nobodyさん:2007/08/17(金) 22:12:06 ID:???
要件によるだろ。
なんでもいいから簡単に実現したいなら
サイト全体をSSLでしかアクセスできないようにすればいい。
560nobodyさん:2007/08/17(金) 22:19:36 ID:???
>>559
サイト全体がSSLになっているオンラインショップは皆無。
そういう、ありえない解決策は、提案しても意味がない。
561nobodyさん:2007/08/17(金) 22:20:38 ID:???
>>558
書いていないので、わからなくても普通。

反論しますか? なら証拠を。
まあ結果は見えていますからレスしなくていいです。
562nobodyさん:2007/08/17(金) 22:29:03 ID:???
>>560
インターネットバンキングのサイトとかだと、
全体がSSLになってる。
無知を晒すのは恥ずかしいぞ。
563nobodyさん:2007/08/17(金) 22:30:13 ID:???
「インターネットバンクのサイトだと」と条件をつけているのはなぜですか?

あなたの言い方は、それ以外だと全体がSSLではいと認めているようなものです。
564nobodyさん:2007/08/17(金) 22:33:28 ID:???
>>563
探せばいくらでもあるよw

横浜そごう
https://www2.sogo-gogo.com/wsc-customer-app/page/511/dynamic/top/Top

565nobodyさん:2007/08/17(金) 22:34:10 ID:???
566nobodyさん:2007/08/17(金) 22:38:46 ID:???
NTT災害伝言板サービス
https://www.web171.jp/
567nobodyさん:2007/08/17(金) 22:46:31 ID:???
>>563
× インターネットバンクのサイトだと
○ インターネットバンクのサイトだと
皆無というから反例をあげてるだけでしょ。
568nobodyさん:2007/08/17(金) 22:47:04 ID:???
>>567
○ インターネットバンクのサイトとかだと
569nobodyさん:2007/08/17(金) 22:56:46 ID:???
>>564
えーと。それは笑えば良いのか?w
httpsといいながら、httpでもアクセスできる。
どこからか経由(たとえば検索エンジン)でhttpでアクセスして
その状態でメール・パスワード入れたら、盗聴される。

まあ、たしかにセキュリティが弱いサイトはあるだろうねwww
570nobodyさん:2007/08/17(金) 23:03:44 ID:???
なんで、httpsだけを使うサイトは少ないの?
その理由がわかる人は、サイト全体をSSLにしろとはいわないね。
571nobodyさん:2007/08/17(金) 23:06:11 ID:???
「なんでもいいから簡単に実現したいなら」って書いてあるじゃん
全体をSSLにしろなんてどこに書いてあるんだ?
572nobodyさん:2007/08/17(金) 23:07:34 ID:???
「皆無」ってのは嘘だから反例を挙げただけだよ
嘘は良くないだろ。
別に「SSLのみにしなさい」なんて一度も言ってない。
573nobodyさん:2007/08/17(金) 23:09:39 ID:???
じゃあ、SSLのみにしない方法を書けよ。
そっちが一般的だろ。
574nobodyさん:2007/08/17(金) 23:10:33 ID:???
>>555はSSLのみにしない方法を望んでるんだし。
575nobodyさん:2007/08/17(金) 23:11:09 ID:???
CakePHPでSSLと非SSLをまたぐ方法は
考慮されてないんじゃないのかな?
ドキュメントにも記述されてないし。
576nobodyさん:2007/08/17(金) 23:18:22 ID:???
まあ皆無ってことはないわな
実際そういうサイトがクライアントに納品されるのをこの目で見てるしw
577nobodyさん:2007/08/17(金) 23:23:54 ID:EqsPdypk
ログインしないと何も出来ないような仕様のサイトだと、
SSL限定でもいいんじゃね?って話になっちゃうんだよねえ。
それでいいならその方が実装楽だし。
578nobodyさん:2007/08/17(金) 23:26:18 ID:???
おまいら質問と関係ない話題で盛り上がるなよ
579nobodyさん:2007/08/18(土) 03:13:03 ID:???
ウェブアプリケーションセキュリティ
ttp://www.jumperz.net/was.jsp
の5章セッション管理「HTTPとHTTPSが共存する場合のセッション管理」
に対策らしきものはかいてある。
Cakeに限らずそのあたり対策を実装しているフレームワークってあるの?
580nobodyさん:2007/08/18(土) 03:29:47 ID:???
ヤフオク、楽天、Amazon、etc ほとんどのサイトは
httpとhttpsが共存しています。
有名どころでhttps限定なんてサイト見たことがありません。
581nobodyさん:2007/08/18(土) 08:20:23 ID:???
「有名どころがSSL限定だ」なんて誰か書いたのか?
582nobodyさん:2007/08/18(土) 09:34:37 ID:???
>>581
しつこすぎ
583nobodyさん:2007/08/18(土) 09:51:18 ID:???
584nobodyさん:2007/08/18(土) 10:09:37 ID:???
>>583
そのリンク先のリンク先を見ると、
SSLActionsで指定されたページをSSLページにするような
コードが掲載されているようだね。

つまり、CakePHPにはそういう機能が無いということになるのか。
単にhttpsのアドレスにリダイレクトしているだけみたいだけど、
ちゃんとセッションの引継ぎと>>555で示された
2つのcookieを使ったセキュアな移動をしているのか?
585nobodyさん:2007/08/19(日) 00:48:53 ID:SGQG+hwq
ケースバイケースで書くようなことだから、FWで実装って言ってもなあ。
たいした量のコードにならないから自分で書いてみればいいんじゃないの。
secureな方のcookieにhttpのsession id情報持たせておけば基本的に終わりじゃん

586nobodyさん:2007/08/19(日) 09:08:19 ID:???
CakePHPを使ってたらEthnaを使うのがアホらしくなってきたわ
587nobodyさん:2007/08/19(日) 12:03:31 ID:???
>>585
> secureな方のcookieにhttpのsession id情報持たせておけば基本的に終わりじゃん
違うぞ。セキュリティの勉強をしたほうがいい。

Amazonとかみればわかるように、商品をカートに入れるまではhttp
そのあと会計時はhttps。つまり一連の処理がhttpsだけで完結する処理ではない。

セキュアな方のクッキーにセッションIDを持たせた場合、
それをhttpで送ると盗聴されセッションハイジャックできてしまう。

だからhttp用ととhttps用と二つのセッションIDを使用することになる。
そしてサーバー内でその二つを紐付けしておかなければならない。
もちろんhttp用セッションIDは盗聴される可能性があるから
それを奪われても、その情報だけからhttps用セッションIDを取得できてはいけない

こういう複雑で汎用的な仕組みは、フレームワークレベルで実装されるべきものだ。
588nobodyさん:2007/08/19(日) 12:15:56 ID:???
>>587
よくぞいうた!えらい!
589nobodyさん:2007/08/19(日) 15:10:14 ID:TluxcOv3
>>587
はあ?セッションidが別なの前提で書いてるのだが?
全然難しくないだろ。お前が勉強しろ
590nobodyさん:2007/08/19(日) 19:46:17 ID:???
>>589
だから? 別だと>>587のように複雑になる。
591nobodyさん:2007/08/20(月) 00:21:09 ID:???
全然複雑じゃないだろw
592nobodyさん:2007/08/20(月) 00:27:51 ID:???
まさに売り言葉に買い言葉の連続
593nobodyさん:2007/08/20(月) 00:28:08 ID:???
それで、具体的にどうやってるんだ。
594nobodyさん:2007/08/20(月) 00:31:32 ID:???
複雑じゃないというのなら答えてみろよ。
595nobodyさん:2007/08/20(月) 00:41:36 ID:???
それよりも
>Amazonとかみればわかるように、
別にAmazonは cookie専用じゃないよ。
596nobodyさん:2007/08/20(月) 01:01:34 ID:???
すまん。
たったいま
http://cakephp.org/screencasts/view/3
を見たんだが、Editが追加になってるし、最後AllDoneって言ってる割にindex.thtmlの中に/blog/へのリンクが残ったままとか問題ありまくりなんだが、これ公式なのか?
597nobodyさん:2007/08/20(月) 03:57:31 ID:???
>>595
誰がクッキー専用って言ったんだよw
いい加減あきらめろ。見苦しいぞ。
598nobodyさん:2007/08/20(月) 04:19:47 ID:???
いつまでやってんだ
599nobodyさん:2007/08/21(火) 00:38:42 ID:jv21ywgR
で、結局どなったの?
600nobodyさん:2007/08/21(火) 22:50:35 ID:???
普通に簡単に出来るのをわからないで、粘着してるだけだと思う
601nobodyさん:2007/08/21(火) 23:28:41 ID:???
>>600
またわかりやすい煽りだなw 答えられないのなら来なくていいよ。
602nobodyさん:2007/08/22(水) 00:38:46 ID:???
フレームワークってものがよくわからない。
レン鯖の自分のスペースに置いて使えたり…する?
603nobodyさん:2007/08/22(水) 01:30:49 ID:???
初心者スレに戻りましょう
604nobodyさん:2007/08/22(水) 19:44:09 ID:???
初心者スレから帰ってきました
605nobodyさん:2007/08/22(水) 19:57:55 ID:HCjV3CA1
どうぞ初心者スレでの成果を発表して下さい
606nobodyさん:2007/08/22(水) 21:25:23 ID:???
>>605
初心者スレに行きましょう
607nobodyさん:2007/08/24(金) 11:52:50 ID:???
>>596
パッと見てみたが、
>Editが追加になってるし
addではなく、ちゃんとeditになっているようだけど。
>index.thtmlの中に/blog/
ルートが/blog/なので無問題。
608nobodyさん:2007/08/25(土) 20:52:05 ID:???
表紙を見るとどうやらCakePHPのことが書いてあるもよう。
内容は読んでないよう。
http://www.amazon.co.jp/dp/4896273567
609nobodyさん:2007/08/27(月) 01:15:59 ID:???
>>608
その本どうしようかなぁ?
マニュアルのコピペとか言われてるけど
漏れがちょうど習得したいフレームワークはその3つやし
購入しようかどうかカナーリ迷う。
特にsymfonyはわかりやすい日本語マニュアルが少なく
他のフレームワークに比べて出来る事も多いが異常なまでにランニングコストが高いから
コピペでもわかりやすく書いてれば非常に助かるんだがね。
610nobodyさん:2007/08/27(月) 03:02:22 ID:???
ランニングコストとかいうやつには丁度いいレベルの本だよ
611nobodyさん:2007/08/27(月) 09:23:46 ID:???
>>610
そうそうオマエみたいな馬鹿には丁度いい本と思われw(ワラ
612nobodyさん:2007/08/27(月) 10:38:23 ID:???
>>609
立ち読みしてみたら?

俺は立ち読みして買わないことに決めたけど。
613nobodyさん:2007/08/27(月) 11:02:16 ID:???
珍しくまともなアドバイスを見た気がする
614nobodyさん:2007/08/27(月) 11:03:59 ID:???
俺は立ち読みして買うことを決めた。
結構いい本だよ。日本語資料は少ないからね。
615nobodyさん:2007/08/27(月) 11:16:00 ID:???
>>613
珍しく、一発でわかる自作自演を見た気がするw
616nobodyさん:2007/08/27(月) 16:22:48 ID:ijRbnoqf
フレームワーク触ってても、OOPしてるなぁって気持ちにならないよね。
モジュールを作る作業のみ。
OOPしてぇなぁ。
でもこの快感(フレームワークでの開発)を覚えると、めんどうなんだよな。はぁ。
617nobodyさん:2007/08/27(月) 18:03:28 ID:???
よっぽど簡単なことしかしてないんだな
618nobodyさん:2007/08/27(月) 18:05:08 ID:???
よっぽど凄い物をお作りなんでしょうな。
619nobodyさん:2007/08/27(月) 18:09:56 ID:???
いえいえあなたこそ
620nobodyさん:2007/08/27(月) 18:11:34 ID:???
>>618
よっぽど簡単なことしかしてないんだな
621nobodyさん:2007/08/27(月) 18:13:52 ID:???
ぶっちゃけ使ったことないんです、えらそうにしてスイマセンでした。
622nobodyさん:2007/08/27(月) 18:14:42 ID:???
CakePHPにかぎらず、フレームワークを使った開発でOOPは使わない。

だってさ、ビジネスロジックなんて単純な作業の塊だぜ?
継承とか使わないとやれない作業なんて存在しないよ。

オブジェクト指向なJavaだってさ、継承ごてごてで
使いづらくなったEJBを改め、POJOといって
継承を使わない(必須ではない)ただのクラスを使い始めた。
それでいいんだよ。シンプルでわかりやすい。

というわけで、OOPはフレームワーク自体を作るものだと思っています。
623nobodyさん:2007/08/27(月) 18:45:34 ID:???


      結論:たいていの場合、OOPはフレームワーク自体を作るものである。

624nobodyさん:2007/08/27(月) 19:04:08 ID:???
むしろPHPerな俺としては、なぜJAVAであんなにも継承が必要だったのかが知りたい
625nobodyさん:2007/08/27(月) 19:32:33 ID:???
継承を使わないからPOJOってわけではないと思うが・・・
626nobodyさん:2007/08/27(月) 19:34:09 ID:???
>>624
それは突き詰めると型あり言語というものは
そういうものだからということになるんじゃないかな?

型あり言語の場合、コンパイル時に名前解決しちゃうから
名前間違いによるバグをコンパイル時に発見できる。
そして速いというメリットがある。そしてJavaは型あり言語。

その型あり言語の通常のやり方でやると、Controllerを作ろうとした場合
index,add,edit,viewなどの関数は基底クラスもしくはインターフェースを
オーバーライドすれば良いけど、そのほかの独自の名前の関数はフレームワークは
知らないから呼び出せない。それを呼び出すためにフレームワークに知らせる必要がある。
そのための処理や設定XMLファイルが・・・という感じなのだろう。

POJOはリフレクションという機能(関数群)を使ってオブジェクトにある関数を調べて
それを呼び出すことで継承なしに上手いことやっているわけだけど、
それは型あり言語のメリット(コンパイル時にバグ発見、速い)に反するものだった。

リフレクションはどちらかといったら開発・デバッグのための関数であり、
それを通常の処理に使用するという考えは長いこと禁断のテクニックだった気がする。
627nobodyさん:2007/08/27(月) 20:30:28 ID:???
突っ込みどころ満載だけど、突っ込んだら負けゲームなんだろな・・・
628nobodyさん:2007/08/27(月) 20:55:57 ID:???
突っ込んでら、これがコテンパンに突っ込み返すから、
当然お前の負けだろうなw
629nobodyさん:2007/08/27(月) 20:56:37 ID:???
突っ込んだら、おれが
630nobodyさん:2007/08/27(月) 21:22:08 ID:???
>>629
遠慮せずに入れてみろよ
631nobodyさん:2007/08/27(月) 21:27:01 ID:???
>>627
そのセリフを言った時点で、突っ込んでも、突っ込まなくても、負けだ。
632nobodyさん:2007/08/27(月) 22:13:05 ID:???
今日はこのスレ勢いあるな
もまえらオナニーでもしたのかい?
633nobodyさん:2007/08/28(火) 02:04:49 ID:???
このスレのレベルの低さでPHPやめて正解だったと再認識。
634nobodyさん:2007/08/28(火) 02:18:55 ID:???
>>633
いまなにやってんすか
635nobodyさん:2007/08/28(火) 02:37:25 ID:???
Rubyです
636nobodyさん:2007/08/28(火) 09:03:23 ID:???
2ちゃんねるをみて判断w
637nobodyさん:2007/08/28(火) 12:42:40 ID:???



        ぶっちゃけ、CakePHPは、難しいと思ってましたが、やっぱり難しいです。orz

638nobodyさん:2007/08/28(火) 12:49:12 ID:???
あるものを作るのに、フレームワーク使うと、そのフレームワーク自体について調べる事が多くて嫌になるよね。

一回慣れちゃえばいいんだろうけど、次の案件でまた使わない、で忘れる。
639nobodyさん:2007/08/29(水) 11:47:30 ID:???
俺のフレームワーク初体験はCakeに捧げたけど…
「難しいからできない」っていうのは、先入観とかでとっつきが悪いのが大半なんだろう
640nobodyさん:2007/08/29(水) 12:31:12 ID:???
Cakeは難しいが、がんばってる俺

function beforeFilter()
{
$this->checkSession();
}

あれ、今日は、動く。 なぜだろう? 
641nobodyさん:2007/08/29(水) 13:54:30 ID:???
>>636
再認識だといってるだろ。
642nobodyさん:2007/08/29(水) 14:16:01 ID:???
SQLで 「name LIKE $word1 AND name LIKE $word2」
のような場合、
findAllなどのconditionにはどのような配列を書けばいいのでしょうか?

array('name' => 'like '.$word1,'name' => 'like '.$word2)
だと当然のように配列は上書きされてしまいます。

宜しくお願いします
643nobodyさん:2007/08/29(水) 14:25:29 ID:???
>>642
http://api.cakephp.org/class_model.html#63ade7d3c6d03c83ab53a224e23ad9dd
Parameters:
mixed $conditions SQL conditions as a string or as an array
644nobodyさん:2007/08/29(水) 14:48:27 ID:???
>>643
findAll("name LIKE $word1 AND name LIKE $word2")
と書いて良いと言う事ですよね。

ありがとうございました。
645nobodyさん:2007/08/29(水) 16:08:03 ID:???
先ほど質問したものですが、

テーブルAに対してhasOneで定義したテーブルBと
テーブルBに対してbelongsToで定義したテーブルCがあるときに、

$this->テーブルA->findAll("テーブルA.name LIKE $word OR テーブルC.name LIKE $word")
のように一括では取得はできないのでしょうか?

これで作成されるSQLを確認すると、テーブルCがJOINされていないようです。
646nobodyさん:2007/08/29(水) 16:10:52 ID:???
聞く前に自分で調べろ
647nobodyさん:2007/08/29(水) 16:37:13 ID:???
PHPフレームワーク完全マスター―PHP5.2.3PHP4.4.7対応 (単行本)
http://www.amazon.co.jp/dp/4896273567

のレビュー。CakePHPのところしかよんでない。約120ページ
CakePHP 1.2.0.5146alphaが対象

なんでもそうな気がするが、すでにガシガシやっている人には必要ない。
内容はわかりやすく広く説明している感じかな。

同作者(佐久嶋ひろみ さん)による別の本、「JavaScriptを書かないAjax」でも
書いているAjaxヘルパーの説明が多め(約30ページ)

1.2対象なのでFormヘルパーについて説明してある。(1.1ではHtmlヘルパーでやってた)
ほんの8ページだが、Formヘルパーでこんなコードを書くと、こんなHTMLが生成され、
POSTするとこういうデータが送られるって説明が良かった。
あとはHtmlヘルパー3ページ
648nobodyさん:2007/08/29(水) 16:38:25 ID:???
つづき

postConditionsメソッドを知った。便利そう。
ってCakePHPの公式リファレンス(の日本語版)にものってるじゃん。見落としてたwww

scaffoldの説明は少ない。scaffoldマジックはネットで見てあきてるので
これはこれでいいかと。

アソシエートの説明が・・・ない!? いやまさかな・・・ゴクリ
しょっぱなから$useTable=falseで進めていくし、ひろみちゃんデータベース嫌いだろ?w
まあ、データベース使わないphpスクリプト作ってる人向けということで・・・

bake.phpのメッセージを解説している。英語が苦手ならどうぞ。

Validationの説明はあるのだが、1.2から強化された内容、
ユーザー定義のバリデーションの説明は(たぶん)無い。残念。

アクセス制限は独自DBを使った簡易なもの。ACLコンポーネントを使っていない。

サニタイズ・セッション・キャッシュ・コンポーネント・プラグイン・エレメントの
説明が数ページずつ。

最後に、間違っていたらごめんよ。
649nobodyさん:2007/08/29(水) 16:59:03 ID:???
>>646
失礼しました。

今回は
$this->テーブルB->findAll("テーブルC.name LIKE $word")
$this->テーブルA->findAll("テーブルA.name LIKE $word OR テーブルB.id IN $id")
と2回問い合わせることにします。
650nobodyさん:2007/08/29(水) 17:32:51 ID:???
>>649
recursiveで設定するんじゃないのか?
まだ使ったこと無いけど

それから、その書き方じゃSQLインジェクションの
脆弱性になるんじゃないのか?まだ検証して無いけど
651nobodyさん:2007/08/30(木) 00:25:48 ID:???
>>649
手前味噌で申し訳ないですが
http://hogepiyo.net/archives/25

何かツッコミあったらお願いします
652nobodyさん:2007/08/31(金) 18:22:39 ID:7m08yu49
indexアクションに、$this->render('index','test'); 追記して、
test.thtmlは blog/posts/index で呼ばれて出力してるのですが、
test.thtmlの中のindex.thtml部分が呼び出される部分にエラーがでます。

Notice: Undefined variable: posts in C:\xampp\htdocs\blog\app\views\posts\index.thtml on line 14

14 <?php foreach ($posts as $post): ?>

どうすれば出力されるでしょうか?
653652:2007/08/31(金) 18:26:08 ID:???
test.thtml は、 /app/views/layouts/ の中に置いてるファイルです。
index.thtml は、views/posts/ の中に置いてるファイルです。
654nobodyさん:2007/08/31(金) 18:51:11 ID:???
postsっていう変数が定義されてないか
そのスコープにないんだろ
それ以上はソースを見ないとそれだけの情報では分からん
655652:2007/08/31(金) 19:43:09 ID:???
>>654
■controllers/posts_controller.php

function index()
{
$this->render('index','test');
$this->pageTitle = 'Postsのindexの表示';
$this->set('posts', $this->Post->findAll());
}

■views/layout/test.thtml
<?php echo $content_for_layout ?>

こんな感じで、内容はチュートリアルのに追記して、実験をしています。
よろしくおねがいします。
656nobodyさん:2007/08/31(金) 20:18:39 ID:???
とりあえずrenderを最後に呼べ
657652:2007/08/31(金) 20:40:55 ID:???
>>656 ありがとうございます。 あっさりできますた
658nobodyさん:2007/09/04(火) 11:58:33 ID:???
こういうユーザー情報テーブルが合ったとしてさ、
id,name,pass,last_login_date

※last_login_dateは、このユーザーが最後にログインした日。


こういうユーザー情報設定画面Viewがあったとしてさ、
name:[   ]
pass:[   ]

last_login_dateはユーザーが最後にログインした日を
記録するわけだから、ユーザーがデータを入力するわけじゃなく
システムが入れるわけなんだけどさ、

コントローラでのセーブがこういう風になっていた場合さ、
$this->User->save($this->data)


ユーザーがHTMLを改ざんしてlast_login_dateを
送り込んできたら、やっぱりlast_login_dateは修正できちゃうよな・・・?

そういう場合どうすんの? $this->dataから
last_login_dateにあたる変数をunsetすればいい?

ユーザーがHTMLを改ざんして違うidを送り込んでくることもあるから
そこら辺のチェックも必要だよな・・・。
659nobodyさん:2007/09/04(火) 12:56:26 ID:???
作り方によるだろ。
その画面で必要な項目だけをdataにひとつずつ入れてsaveするように書けば
それ以外の項目は修正できないし。
660nobodyさん:2007/09/04(火) 12:59:46 ID:???
ヒント:save()の第3引数はホワイトリスト
661nobodyさん:2007/09/04(火) 13:41:52 ID:???
>>659
そりゃそうなんだけど、bakeでできるのがこういうコードだし。

>>660
なるほど、そんな引数があったのね。
662nobodyさん:2007/09/04(火) 14:43:45 ID:???
データベース上にどんなテーブルがあるか調べる方法、
またそのテーブルがどんなフィールドを持っているかを調べる方法、
SQLを直接発行する以外にありますか?

たとえばMySQLの場合DESCRIBEでわかるのですが、
これだとMySQLに依存してしまいますし、
CakePHPで共通に使えるやり方があるかもと思って質問しました。
663nobodyさん:2007/09/04(火) 15:22:54 ID:???
基本テーブル情報やカラム情報等の
メタデータ取得の仕方はDBによってまちまち

DESCRIBEのようなカラム情報取得の抽象化だけなら
わりとサポートしてるDBのライブラリは多いが
CRUDのSQL+カラム情報取得以外の
DBのschema操作まで抽象化したライブラリってのはあまりない

PEARのMDB2ならそういう操作を抽象化した
モジュールがあるのでその要件は満たせると思う
cakeは使ってないので知らん
664nobodyさん:2007/09/04(火) 15:35:07 ID:???
665nobodyさん:2007/09/04(火) 16:44:44 ID:???
>>663
> CRUDのSQL+カラム情報取得以外の
> DBのschema操作まで抽象化したライブラリってのはあまりない
でもbake.phpでは、データベースで定義されたテーブル情報から
どのテーブルのModelを作成しますか?って聞くわけで
方法あると思うんだけど。

>>664
それはモデルのAPIでしょ?

モデルで使っているテーブルの情報なら取れるかもしれないけど、
ほしいのはデータベースにどんなテーブルがあるかなんですよね。
666nobodyさん:2007/09/04(火) 16:58:16 ID:???
>テーブルがどんなフィールドを持っているかを調べる方法
を知りたいとお前が言ったから答えたまでだが。
自分で言ったことも忘れたのか?
667nobodyさん:2007/09/04(火) 17:12:20 ID:???
なんか頭がおかしいみたいだから放っておけw
668663:2007/09/04(火) 17:48:54 ID:???
>>665
今cakeのソース落としてきて少し眺めたけど
libs/model/dbo以下の各DB毎のdriverのlistSourcesメソッドで
それぞれのDBのやり方でテーブル一覧を取得してる
何か共通の方法でDBからテーブル一覧を取得してるわけじゃなく
各々DB毎の実装を行ってAPIだけ統一、抽象化している

てか方法があろうとなかろうと
少しソース見りゃわかるような質問しといて
答えてる人に自分の思い込みだけで
別の方法があるんじゃないかとかそれじゃないとか
一体おまえ何様だよ
669nobodyさん:2007/09/04(火) 18:41:53 ID:???
なにカリカリしてんの?w

CakePHPの機能でデータベースにあるテーブル名の一覧を
とってくる方法聞いただけじゃん。

> 各々DB毎の実装を行ってAPIだけ統一、抽象化している
そりゃそうだ。データベースごとに命令違うのわかってるって。
その統一APIがなにか聞いただけ。

結論言えば、ConnectionManagerつかって
データソース取得してlistSourcesでしょ?
かきこした後、すぐソース見たよ。

自分で調べるのと聞いて調べるののどちらが速いかわからないから、
とりあえず質問しといただけじゃん。

情報が共有されて一石二鳥w
670nobodyさん:2007/09/04(火) 19:17:47 ID:???
>>669
釣りか真性か、俺にだけこっそり教えてください
671nobodyさん:2007/09/05(水) 01:29:26 ID:???
調べる前に、とりあえず2ちゃんで聞く。
運がよければ、誰かが答えてくれる。
「自分で調べる」よりも「自分で調べる」+「誰かに聞く」の方が優れている。
使えるものは、使わなきゃねw
672nobodyさん:2007/09/05(水) 09:23:21 ID:???
コモンズの悲劇ってやつか。。。
673nobodyさん:2007/09/05(水) 16:05:13 ID:???
使えるものは、使わなきゃねw
674nobodyさん:2007/09/06(木) 00:52:29 ID:???
$form->inputってすごいね。
すごいというか動きが良くわからない。

なんで$form->input("data")って書くだけで、
データを持ってこれるんだ?

どのモデルを使うとかどこで指定してるんだ?
なんで書き方同じなのに勝手にチェックボックスとかリストボックスとかになるんだ?

$form->inputって一体全体どんな機能を持った関数なんだ?

わけわかんねぇ。使いこなせる自信がないorz
675nobodyさん:2007/09/06(木) 00:57:00 ID:???
マジレスすると君にはまだフレームワークは早い。ろくにオブジェクト指向も理解できてなさそうだ
676nobodyさん:2007/09/06(木) 01:07:41 ID:???
そうそう、聞きたいことがあったんだ。
$form->inputでドロップダウンリストがでてくるんだけど、
これをラジオボタンにすることってできるの?

当然、そのときの選択項目はドロップダウンリストと同じ内容で。
677nobodyさん:2007/09/06(木) 01:18:01 ID:???
>>675
ひどいなぁ。APIマニュアルみたけど使い方ちゃんと書いてないんだよ。
第一引数はいいとして、第二引数。 $options という配列を入れられるとは書いてあるが
具体的どんなキーのオプションが使えるのか書いてないじゃん・・・。

form.phpのソースコードみた? 単純に引数に対するタグを出力してるだけじゃなく、
データベース情報を参照していろいろやってるから把握するのに時間かかるし。
678nobodyさん:2007/09/06(木) 08:50:46 ID:???
誰でも電話は使えますよ!
679名無しさん@Vim%Chalice:2007/09/06(木) 11:45:44 ID:3VBce1ud
>>677
こ れ は ひ ど い。
本当にソース見たのか?

…と思ったけど、今気分いいから
$optionsの中身をメモっといてあげる。

$options['type'](string)…以下から選べ(後は自分で何とかしろ)
hidden checkbox radio text password file select time date datetime textarea

$options['label'](string)…フォームの前にラベルを付ける。
$options['before'](string)…ラベルの前に任意のHTML
$options['after'](string)…フォームの後に任意のHTML
$options['div'](boolean)…フォームをdivで括るか
$options['inbetween'](string)…radioの間に挿入するHTML
$options['selected'](string)…selectの初期値
$options['options'](string)…$html->radio()の第二引数
$options['empty'](boolean)…falseにするとselectboxで空白が選べるようになる

まだいくつかあったと思う。補完よろ
680nobodyさん:2007/09/06(木) 11:56:52 ID:???
調べる前に、とりあえず2ちゃんで聞く。
運がよければ、誰かが答えてくれる。
「自分で調べる」よりも「自分で調べる」+「誰かに聞く」の方が優れている。
使えるものは、使わなきゃねw
681名無しさん@Vim%Chalice:2007/09/06(木) 11:57:46 ID:???
sage忘れた。

$options['empty'](boolean)…trueにするとselectboxで空白が選べるようになる
だった、すまん

あと$options['value']とか
$options['between']とかがあったような。
682nobodyさん:2007/09/06(木) 12:02:53 ID:???
>>681
引数多いんだね。

単に<inputタグの属性に展開されるだけかと思ったが、
emptyとか関係ないものもあるし。
どっかで見ただけで試していないがlabelを消すときは''とかではなく、
falseにするらしい。

inputのドキュメントって無いのかな?
683nobodyさん:2007/09/06(木) 12:24:42 ID:???
じゃあ俺も、inputに第一引数だけ指定した場合の動作。
ソース読んで無いので間違っていたら修正よろしくw

使用するテーブルは直前の$form->createで指定したmodel。
つまり$form->createはタグを出力するだけでなく副作用がある
($formの状態を変化させる)

# ↑なんか気持ち悪い仕様だなぁ。こうすればいいのに。
# $form1 = $form->create('・・・');
# echo $form1->begin(); //formタグ開始
# echo $form1->input();
# echo $form1->end(); //formタグ終了


$form1->inputで出力されるタグの種類(textとかcheckboxとか)は
データベースの型やアソシエーションから自動選択(?)

具体的にデータベースの型が何のときに
どういうタグが出力させるかは、後の人よろしくw
684nobodyさん:2007/09/06(木) 14:05:16 ID:???
>>674
ワロタ。
オブ脳になるまではチンプンカンプンだよな。
685nobodyさん:2007/09/06(木) 14:29:19 ID:???
まぁまぁ、そんなことよりFormHelperの詳細な使い方を書こうぜ!
686nobodyさん:2007/09/06(木) 16:08:21 ID:???
<?= $html->formTag('') ?>
687名無しさん@Vim%Chalice:2007/09/06(木) 16:34:40 ID:???
そういえば第一引数で
$form->input('field')と
$form->input('Model/field')と
$form->input('Model.field')の
大体3種類の書き方があるよな?

そんで、CakePHPは今後ドット区切り(3番目の書き方)へ
移行するって記事をどっかで見たような気がしたんだけど
ソース持ってる人いる?
688名無しさん@Vim%Chalice:2007/09/06(木) 16:41:49 ID:???
689nobodyさん:2007/09/06(木) 17:08:13 ID:???
>>687
ソースに書いてあるよ。
/**
* Generates a form input element complete with label and wrapper div
*
* @param string $fieldName This should be "Modelname.fieldname", "Modelname/fieldname" is deprecated
* @param array $options
* @return string
*/


ところで、scaffold(およびbakeの出力結果)に
検索機能つかないのかな?

Paginationみたいに、そのままの出力で検索機能があったら良いなぁ

検索機能自体は簡単に作れるけど、検索結果に対してPaginationとか、
そこからaddやeditをしたら、単純なindexではなく、
検索結果に戻る(当然Paginationも考慮)とか考えると
ちょっと大変だな。

addページにきたときに、addページの前の検索結果+ページを
知る必要があるから、addページに飛ぶリンクを
工夫しないといけないし。
690nobodyさん:2007/09/07(金) 08:58:58 ID:???
>>689
なんと、thx

>scaffold(およびbakeの出力結果)に検索機能つかないのかな?
decorate.phpとかmasterbakeとかあったと思う。
691nobodyさん:2007/09/09(日) 00:48:06 ID:???
app/config/database.phpに複数のデータベース設定を入れているんだけど、
bakeって使用するデータベースを指定することってできない?
ソース見てるとどうも'default'きめうちっぽいんだけど。

サーバー('default')とローカル('local')で設定が多少違ってて、
開発時はlocalを見てbakeしてほしいんだけど。
692:2007/09/10(月) 05:48:34 ID:???
年を越してもいまだにフレームワークが使えない
693nobodyさん:2007/09/10(月) 09:15:18 ID:???
>>692
チュートリアルすらやってないでしょ!w
694nobodyさん:2007/09/11(火) 20:11:32 ID:???
paginateに検索語を足したい場合とか
どう書くのが作法なの?
695nobodyさん:2007/09/13(木) 00:29:34 ID:WTXj/Q9b
cakephp1.2 で index を indecies と書かないとエラーになってしまいます。

どうにかして indexs だけで sつけるだけで簡単に動く方法ないでしょうか。

英語の複数系がわからないんです。。。
696nobodyさん:2007/09/13(木) 01:25:39 ID:???
誰一人質問ばかりで答えないのにワラタ
697nobodyさん:2007/09/13(木) 03:13:20 ID:???
>>695
http://cakephp.jp/doc/ch04s05.html

この他に、モデルの$useTableを使う方法、inflector.phpを直接改造してしまう方法がある。
698nobodyさん:2007/09/13(木) 11:41:33 ID:f1fHu9mP
フレームワークという言葉の意味がはよくわからないまま、
とりあえず使ってみることにしました。
それでCakePHPを選んだのですが、
これはようするにDBを簡単に扱うための仕組みみたいなものなんでしょうか?
データを元にviewで好きなもの作りなさいっていうことなんでしょうか?
699nobodyさん:2007/09/13(木) 12:14:35 ID:r/Zw5qbN
>>697
ありがとうございます!
inflectior.php のどこをどのように修正すればよいのか・・・。
わからないので教えていただけると大変ありがたいのですが。

cakephp1.1 でアプリをつくったときは indexs で動いて
cakephp1.2 の場合は indexcies じゃないとダメ。

1.1 の inflectior.php と 1.2 の inflectior.phpを見比べてみても設定が
一緒なんですよね。
700nobodyさん:2007/09/13(木) 12:25:40 ID:???
ちょっとは自分で調べろ
701nobodyさん:2007/09/13(木) 21:20:19 ID:???
>>698
>これはようするにドラゴンボールを簡単に扱うための仕組みみたいなものなんでしょうか?

その通りです
702nobodyさん:2007/09/13(木) 21:44:26 ID:???
>699
あなたはいくらなんでも滅茶苦茶すぎw
せっかく教えてもらったファイル名さえスペルミスしてるじゃんw

https://trac.cakephp.org/browser/branches/1.2.x.x/cake/libs/inflector.php?rev=5223

ここをindexで検索したら、複数形作成のルールが書いてある。
これを削除してしまえば、indexsで通るようになるでしょう。でもこの際ちゃんとした複数形を覚えたら?
703nobodyさん:2007/09/13(木) 22:41:41 ID:???

ちょっとしつもん。
controller で以下のようなコードを書いたのですが、1件しか登録されません。

foreach ($values as $val) {
$data = array("name" => $val);
$this->Hoge->save($data);
}

一度にたくさんインサートしたい場合はどうすればいいのでしょうか。

704名無しさん@Vim%Chalice:2007/09/13(木) 23:03:44 ID:???
Hogeは密かにidを保持するから
save()する前に$this->Hoge->id = null;してみ
705nobodyさん:2007/09/13(木) 23:20:09 ID:???
そういうときは1回ごとにModel::create()を呼ぶのが流儀らしいよ。
内容はid=nullとあんま変わらないけど。

Model::create()
Initializes the model for writing a new record.
706703:2007/09/14(金) 02:53:28 ID:???
>>704-705
ありがとう! ためしてみるよ。
707nobodyさん:2007/09/14(金) 11:48:15 ID:/to9vVVu
>>697,702
ありがとうございます!この際英語を覚えることにします。
覚えておいて損はないですしね^^
708nobodyさん:2007/09/14(金) 13:01:34 ID:???
プログラムするのに英語は必須だろ
日本語訳が進んでないドキュメントとかいっぱいあるんだから
そんくらいは読めるようにしないと
709nobodyさん:2007/09/14(金) 14:23:53 ID:DU5zTfFS
またまたw
710nobodyさん:2007/09/14(金) 15:51:53 ID:???
プログラムを仕事にするなら英語は必須。

趣味なら別にどうでもいいが。
711nobodyさん:2007/09/14(金) 16:00:59 ID:DU5zTfFS
理想的にはそうだが、別に英語できない職業プログラマーなんてゴマンといる現実について。
712nobodyさん:2007/09/14(金) 17:02:29 ID:???
自社でノウハウがたっぷりあればいいけど
この界隈でどうやって英語抜き生活するんだ

つーか、技術英語なんて大体パターン決まってるし
サンプルコードもあるんだから割と簡単だよ

英語_とか抜かしてる奴はただ
ズラーっと並んだ横文字をパッと見て諦めてるだけだろ?
713nobodyさん:2007/09/14(金) 17:09:56 ID:???
Cakeに関係ない話はよそでやれ
714nobodyさん:2007/09/14(金) 17:17:51 ID:???
そうは言っても、実際いるもんはしょうがないだろうに・・・。終了。
715nobodyさん:2007/09/14(金) 17:30:12 ID:???
Cakeに関係ない話はよそでやれ
716nobodyさん:2007/09/14(金) 20:31:41 ID:???
703の話題も>>1の一番下のサイトに書いてあるよね。
717nobodyさん:2007/09/14(金) 21:43:55 ID:???
まったく、なんで/posts/view/?var1=3&var2=4 が呼ばれたとき、

$this->params['url'] => Array
(
 [url] => posts/view    ←余計なデータ
 [var1] => 3
 [var2] => 4
)

なんだよ。ぼけ。使いにくいじゃないか。
718nobodyさん:2007/09/14(金) 22:26:23 ID:???
CakePHP 1.2っていつでるの?
なんか残りチケット200ちょいからぜんぜん減ってないんだけど
719nobodyさん:2007/09/14(金) 22:52:00 ID:???
>>717
そういう場合は、Cake的には普通は
URLを /posts/view/3/4 として PostsController で

function view($var1, $var2) {
...
}

というふうに受け取るんだよ。
http://cakephp.jp/doc/controllers.html#id4805355 に書いてるべ。
720nobodyさん:2007/09/14(金) 23:05:16 ID:???
>>719
じゃあ聞くが、

検索語[   ]  [検索]

というフォームはどうするんだよ?

/posts/?search=aaa

とかで渡されてくるだろ?
721nobodyさん:2007/09/14(金) 23:36:29 ID:???
>720
それは、

$this->params['url'] => Array
(
 [url] => posts/view
 [search] => aaa
)

でいいんじゃないかな。
予約語みたいなものじゃない?urlは。

どういうとき困る?
722nobodyさん:2007/09/14(金) 23:37:36 ID:???
paginationと組み合わせるとき。
723nobodyさん:2007/09/14(金) 23:43:50 ID:???
ていうか、そんなに'url'があると困るなら$_GETを調べればよくね?
無理してCakePHPの変数を使おうとせんでも
724nobodyさん:2007/09/14(金) 23:55:33 ID:???
$_GETにしたところで、urlは入っているだろ。
試してから書いてくれ
725nobodyさん:2007/09/14(金) 23:57:30 ID:UPghMBCi
ん?何が困るんだ?

パラメータに何を使ってるかは
自分で分かってるんだからどうとでもなるべ
726nobodyさん:2007/09/15(土) 00:01:24 ID:???
> ん?何が困るんだ?
保守性が悪いから困る
727nobodyさん:2007/09/15(土) 00:13:43 ID:???
強引な方法でもいいならdispatcher.phpを改造すれば何とかなる
あとは知らん
728nobodyさん:2007/09/15(土) 00:18:09 ID:PGlxhB9T
CakePHPは、CakePHPの想定しているレールに従って組むと楽だけど、
そのレールに不満を感じ始めると途端に使いにくくなるよ
後者なら他のFWの方がおすすめ
729nobodyさん:2007/09/15(土) 00:42:08 ID:???
>>728
そういうレベルの話じゃなくて、
prams['url']にurlなんかいらないだろ?
他から取得できるのに、何のためにあるんだって言う話。
730nobodyさん:2007/09/15(土) 00:48:32 ID:PGlxhB9T
いや、だからそういう話だよ
これだけじゃなくて、CakePHPはそういう意味不明な予約語みたいのが多い
俺だって_GETに'url'を追加する必要なんかないと思う
だからそういう不満を感じるなら向いてないよ、っていう話
731nobodyさん:2007/09/15(土) 00:52:24 ID:PGlxhB9T
ま、今どうしても解決したいなら我慢するか727の方法でやるしかないんじゃない?
俺はもう自分からCakePHPを使うことはきっとないよ
わけが分からない制約が多すぎるからね
732nobodyさん:2007/09/15(土) 01:06:19 ID:???
>>731
頭固いな。
単にコントローラ継承して、
params['get']を作って終わりだよ。
733nobodyさん:2007/09/15(土) 01:23:03 ID:PGlxhB9T
やってることは727と変わらないじゃんw
まあ継承して解決するだけマシだけど手間は変わらない。
ていうか、CakePHPがPHP標準の仕様を勝手に変えてるせいでそういう対応をしないといけないわけで。
頭が固いとかいう問題じゃなくて、意味不明な制約が少ないFWの方がいいってだけ。
734nobodyさん:2007/09/15(土) 01:25:47 ID:???
>>733
頭が固いのは、お前のことだよ。
735nobodyさん:2007/09/15(土) 01:28:32 ID:PGlxhB9T
へぇ。頭が柔らかいねえ君は。すごいすごい。


これでいい?満足した?ww
736nobodyさん:2007/09/15(土) 01:31:05 ID:???
ID:PGlxhB9T 涙目wwww

とっても満足した。
737nobodyさん:2007/09/15(土) 01:32:36 ID:PGlxhB9T
それはよかったww
おめでとう。
738nobodyさん:2007/09/15(土) 01:33:30 ID:???
さらに涙目www
739nobodyさん:2007/09/15(土) 01:35:26 ID:PGlxhB9T
自己紹介乙w
740nobodyさん:2007/09/15(土) 07:07:45 ID:???
・javascriptでonsubmit時に/post/aaaに飛ぶようにする
・mod_rewriteで/posts/?search=aaaを/posts/aaaに書き換える
741nobodyさん:2007/09/15(土) 10:12:34 ID:???
>>740
rewriteいいね!
742nobodyさん:2007/09/15(土) 11:17:52 ID:???
そんなに文句があるならcakePHPを捨てればいいだろ。
SymfonyでもZendでもいいし、なんならRailsでも使えや。
743nobodyさん:2007/09/15(土) 11:39:11 ID:???
極論しかいえないアフォスwwww
744nobodyさん:2007/09/15(土) 12:14:57 ID:???
>>740
こうですか?わかりません><

$html->formTag('/post','get',array('onsubmit'=>'location.href=\'/post/\'+this.search.value;return false;'));
745nobodyさん:2007/09/15(土) 14:49:02 ID:???
まあいくらでもやりようはあるわな
746nobodyさん:2007/09/18(火) 16:54:37 ID:Al1Bs6O8
cakephp1.2 の Notice エラーについて教えていただけませんでしょうか。
Noticeエラーを表示させたくないのですが、

ドリームウィーバーで error_reporting の部分に ^ E_NOTICE をつけてもNoticeエラー
が表示されてしまいます。エラーレベルを変更するにはどこを修正すればよいのでしょうか。

cakephp1.1のときは上記方法でうまくいったのですが・・・よろしくお願いします。
747nobodyさん:2007/09/18(火) 18:46:58 ID:???
748nobodyさん:2007/09/19(水) 16:32:02 ID:???
php.iniや.htaccessをいじれないことを考慮して、
mbstring.encoding_translationをonにすることなく、
phpコードで文字コード判別・変換したいのだが、
どこに入れたらいいのだろうか?

cakephpが解釈して、変数に入れたりする前に
$_POST、$_GET、(他にもあるかな?)の内容に対して
文字コード変換するべきだと思うんだが、
どの時点でするべきだともう?

どこにコードを書けばいいんだろうか?
749nobodyさん:2007/09/20(木) 16:12:39 ID:???
日本語フォーラムみて思ったんだけど、開発時にNotice表示を消したい理由ってなんだろう。
750nobodyさん:2007/09/20(木) 17:41:56 ID:???
JSONとか、HTML以外を出力するときは消したい時あるな
751nobodyさん:2007/09/20(木) 17:55:04 ID:???
>>749
Noticeレベルも出ないように開発するのが当然でしょう?っていいたいの?
752nobodyさん:2007/09/20(木) 18:44:41 ID:???
当然だと思います。
753nobodyさん:2007/09/20(木) 19:25:42 ID:???
あそ。
754nobodyさん:2007/09/20(木) 21:36:38 ID:???
>> 750
そういう時は出力するコントローラのアクション内で、
Configure::write('debug', 0);
でスッキリ。
755nobodyさん:2007/09/21(金) 13:49:22 ID:7403Nihy
cake 1.2 まだバグ多いね。バリデーションもなんか動かないんだけど。
SQLもわけわからんとこでエラーでるし。

さすがは a 版。

やっぱり今はまだ 1.1 を使ったほうがよさそう。
756nobodyさん:2007/09/21(金) 18:01:26 ID:???
1.1系で一つの項目に対して、複数の入力チェックはどのように実現するのが一般的ですか?
757756:2007/09/21(金) 18:49:13 ID:sxzZ5KcO
http://blog.imototakeshi.com/archives/266.html
な感じが一般的ですか?
758nobodyさん:2007/09/21(金) 23:19:35 ID:???
> cake 1.2 まだバグ多いね。バリデーションもなんか動かないんだけど。

普通に動いているが?
759nobodyさん:2007/09/22(土) 00:48:28 ID:???
普通に安定してるわな。
760nobodyさん:2007/09/22(土) 03:59:23 ID:???
1.2使ってるけど、ドキュメントが少ないこと以外は特に問題ないな。
でもやっぱりalphaだと安定性が心配。
761nobodyさん:2007/09/22(土) 17:26:50 ID:???
普通に自分で手入れすればいいじゃん。フレームワークのソース読めないで使っているようじゃフレームワークにツカワレているのと同様。
762nobodyさん:2007/09/23(日) 14:48:44 ID:???
ソース読まないと使えないフレームワークとかイラネ
763nobodyさん:2007/09/23(日) 16:06:27 ID:???
読めないっつーか読まない。カスタマイズする時は読むけど。暇じゃないからな。
764nobodyさん:2007/09/23(日) 18:14:45 ID:???
>>762
禿同
765nobodyさん:2007/09/23(日) 19:49:58 ID:???
>>761
ワロスwwwww
なんのためにフレームワークがあるんだか
766nobodyさん:2007/09/23(日) 20:14:29 ID:???
>>761
こういうひとはきっとLinuxやらApacheやらPHPやらのCコードも全部読んでるんだろうね
767nobodyさん:2007/09/23(日) 21:18:16 ID:???
オープンソースのモノを使う資格ないやつばかりだな。不満があるなら自分で直せって意味だろ
768nobodyさん:2007/09/23(日) 21:43:25 ID:???
>>767

同意

ここも口だけのやつばかりだね
769nobodyさん:2007/09/23(日) 23:34:12 ID:???
ソースを読ませることを前提としているモノは
PHPフレームワークに限らず、全部ゴミ。

ドキュメント読んだりAPI見たりしてわからなければソース見ればいい。
しかしコアソースを変えさせるのは如何なものかと思ってみたりする。

以上、独り言ですた。
770nobodyさん:2007/09/24(月) 00:07:14 ID:???
>>769
普通cake/の中身にはちょっかい出さないよ
771nobodyさん:2007/09/24(月) 01:34:07 ID:???
>>769

オープンソースの意味わかってないやつ発見

貧乏なくせに遠吠えしてるやつってしょうもないよなあ
772nobodyさん:2007/09/24(月) 01:35:40 ID:???
訂正

貧乏な上に技術もなく さらには語学力もないのに
遠吠えしてるやつってしょうもないよなあ

だな

こんなとこでほえてないで フォーラムにポストするなりすりゃいいのに
773nobodyさん:2007/09/24(月) 02:18:10 ID:???
まあ、完璧なモノなんて存在しないから、手を入れざるを得ない場合もあるけど、
手を入れる必要があればあるほど、「効率よく開発できるフレームワーク」から
遠ざかっていくことは間違いないな。
あんまり手を入れる必要があるのなら、自分で書いても大して変わらなく
なってしまうわけだし。
774nobodyさん:2007/09/24(月) 12:18:00 ID:???
>>771-772
ガキの独り言に何をそんなにムキになって噛み付いてんだ?w
じゃ、まずはモマエからオープンソースの意味について言ってごらん
775nobodyさん:2007/09/25(火) 19:59:07 ID:???
デキるやつと、デキないやつの境目を見た気がする。

デキるやつは、多少バグがあろうと関係ない。
ソースを読んで内部を把握するから詳しくなる。

そしていざ使うとなったときに、
一方はすでに内部から把握している人、
一方は今から勉強する人にわかれる。
776nobodyさん:2007/09/25(火) 22:41:30 ID:???
フレームワークを使うのってさ、面倒なルーチンワークを任せたいからじゃないのかなぁ。
それに、ソースいじりだすとさ、バージョンアップの時も作業が増えるし、いじらなくて済む
ならいじらない方がいいと思うのはおかしいですか?

ごみは言いすぎかもしれないけど、「ソース読むのが前提」ってのは本末転倒かと。
俺は、>769の意見に賛成だよ。
777nobodyさん:2007/09/25(火) 22:58:10 ID:???
ソース読めば、
Cakeが空のクラスを継承してることに気が付くから、
フレームワークの根幹に手を入れるなんて大冒険しなくて良いことに
気が付くよ。

ていうかCakeでソース読まないってどんだけエスパー揃いなんだよ。
膨大なよくわからんHowtoググルより
Cakeぐらいなら、ソース読んだほうがぜんぜんわかりやすいだろう。
778nobodyさん:2007/09/25(火) 23:08:09 ID:???
ああでもソース見ると使いたくなくなるけどね。
779nobodyさん:2007/09/26(水) 01:35:02 ID:???
構造が同じテーブルが複数合って動的に変更したいのですが、コントローラで

$this->Hoge->setSource("hoges");

としたのですが、FindAllをするとSQLのエラーとなります。
トレースを見たところ、

SELECT FROM `hoges` AS `Hoge` WHERE 1 = 1

てな具合で、SELECTの後のフィールドリストが空になっています。
自前でモデルの中でフィールドを定義するのか、
それとも、setSourceしたあとに何らかのメソッドでモデルを更新するとか
勝手に想像しながら、APIドキュメントを眺めてはいるのですが、それらしいものが見つかりません・・・

アドバイスお願いできないでしょうか・・・

#ぐぐったら、
http://d.hatena.ne.jp/cvyan/20070925
#同じようにはまってる人がいました・・・
780779:2007/09/26(水) 03:03:06 ID:???
追記です。

自前でSQLを用意してfindBySqlメソッドを使えば、indexビューは表示できるようになりました。

$sql = "SELECT `Hoge`.`id`, `Hoge`.`name`, `Hoge`.`username` FROM `hoges` AS `Hoge`";
$result = $this->Account->findBySql($sql);
$this->set('hoges', $result);

ただ、InsertやDeleteメソッドも同様にSQLを用意しないと駄目な感じです。
せっかくのフレームワークなので、もう少しスマートな方法があればいいのですが・・・
781nobodyさん:2007/09/26(水) 09:27:28 ID:???
>>779
モデルの基底クラスでテーブルのメタ情報をキャッシュするようになってるので、そのせいだと思う。

reset()かnewでなんとかならないかな。
782nobodyさん:2007/09/26(水) 10:10:24 ID:???
ソース嫁厨ww
783nobodyさん:2007/09/26(水) 10:32:59 ID:???
>>776
それは、ドキュメント読む方が早いか、ソース読むのが早いかによるんじゃないかなぁ。
読む速度が同じであっても、ソースを読んだ方が理解や応用、拡張が素早く出来るので、結果的に作業は早くなると思う。

まぁべつにソースを全部読めっていうわけじゃないし、本末転倒ってほど悪くは無いと思う。
むしろ折角のスクリプト言語で読みやすくなってるのにそのメリットを生かさない方がもったいない。

もちろん、よいドキュメントはいつだって欲しいけどさ。
784nobodyさん:2007/09/26(水) 10:54:34 ID:???
結局、ドキュメントが不足していると言うだけの話であって、
CakePHPの出来が悪いと言うことにはならない。

本当のプログラマにとってはドキュメントもソースも同じようなものだけどね。
ソースも読めないような人間は、ドキュメントを読めないのと同じ。
785nobodyさん:2007/09/26(水) 11:31:59 ID:???
>>779
1.1使ってる?

そのうち使いそうだろうから、試してみたけど全然問題なかったよ。
1.2.0.5427alphaでテスト。

コントローラのbeforeFilterとindex、どちらの一行目で
setSourceしても問題なかった。


個人的には、ログのように1年単位でテーブルを分ける的な場合なら
モデル側で使用するテーブルを判断するべきじゃないのかと思うが。
786779:2007/09/26(水) 15:17:54 ID:???
newでコンストラクタの引数にテーブル名を指定する方法で、解決いたしました。
沢山のレスありがとうございました。

#Versionは1.1を利用しています
787nobodyさん:2007/09/26(水) 16:35:14 ID:???
1.2.0.5427alpha試してるんだけどDEBUGの値2と3で変わらなくない?
788787:2007/09/26(水) 17:04:51 ID:???
ソース読みました。
view.phpで$this->controllerがnullになってるみたいね。
789nobodyさん:2007/09/26(水) 18:31:30 ID:???
今ふと気づいたんだけどさ、app/models/datasources ってフォルダがある。
このフォルダ、なんに使うんだろうか?

このフォルダがあると言うことは、何かしらの
ユーザー定義のクラスか何かを置くのだと思う。

新しいデータベースサーバーへの対応?
だとしたら、それは app/models/datasources/dbo になるはず。
しかし、そんなフォルダはない。

まさかRDBMS以外、つまりODBMSやXML等に対応するためか?
790nobodyさん:2007/09/27(木) 17:13:09 ID:???
ドキュメントに記述が無いんだったら、
Tracでそのディレクトリのコミットログを見たら
どういう意図で追加されたかわかるかもよ
791nobodyさん:2007/09/28(金) 11:52:16 ID:???
みなさんhelperってどの程度使用してる?
かえって不便な気がしてきたんだけど。
792nobodyさん:2007/09/28(金) 14:13:03 ID:8QRsdJbb
>>791
自作に関しては作ってみたけどヤメタ。
独自に名前空間もった変数名つけてincludeしちゃったほうが
お手軽だったりするしさほど問題なかったりする。

form系のヘルパーは使うよ。inputとかtextareaとかselectTagとか。
html系のlinkとかimageとかは使いでは無いね。
793nobodyさん:2007/09/28(金) 15:42:01 ID:???
1.1系から1.2系に移行しようとするとhtmlヘルパーだったのがDeprecatedとかいって
formヘルパーにいっちゃってたりして結構めんどいね。
極力ヘルプレスなほうがわかり易いと思った。
794nobodyさん:2007/09/28(金) 19:12:35 ID:???
ドキュン
795nobodyさん:2007/09/28(金) 21:24:25 ID:???
>>792
> 自作に関しては作ってみたけどヤメタ。
> 独自に名前空間もった変数名つけてincludeしちゃったほうが
> お手軽だったりするしさほど問題なかったりする。

それって、単にHelperクラスを継承しないってことなだけじゃね?w
Helperクラスを継承しないでHelperを自作している。
だよね?
796nobodyさん:2007/09/28(金) 22:13:37 ID:???
792です。

>>795
あー、Helperじゃなくてプレーンなファイルなんだけど、
何か俺の言ってることもHelperと関係ない気がすごいしてきた。すまん。

ちょっとリセットして。

そもそもHelperを自作するような場面自体が少なそう。

なんていうか、デザイン要素を含むビューだとHelperの内部に
HTMLを書くことになってデザイナーがいじれないから、
アプリケーション独自のパーツ表示系とかにHelper使えない。

htmlヘルパーやjavascriptヘルパーのような汎用的かつ
ほとんどデザイン要素を含まない(含むとしてもフルカスタマイズ可能な程度)ような機能の
ヘルパーしか自作できない感じ。

そもそもヘルパーとはそういうものな気もするけどね。

>>791 はどんなヘルパーを作ったのか気になる。
797名無しさん@Vim%Chalice:2007/09/28(金) 22:26:39 ID:???
うそー逆にHelperが大量にできるんだけど

Controllerは入力のデータについて集中したいというか、
Viewの表示用にデータ整形とかする関数を全部Helperに丸投げするって感じ。
テンプレートにはなるだけコードを排除したいし。

#つーか本当はControllerでHelperの指定をするのも嫌なんだけど。
#いきなりViewでHelper使えるようにする方法はないかな?
798nobodyさん:2007/09/28(金) 22:32:36 ID:???
AppControllerに一箇所helperを書くだけもいやなのか?

なら、AppControllerのコンストラクタでHelperファイル検索して
全部突っ込んじゃえw
799792:2007/09/28(金) 23:06:22 ID:???
>>797
HelperがViewから自由に呼べないのはもどかしいよね。
細かいの一杯作ると読み込むの手間だし、
かといって1つでっかいの作ると富豪すぎる気がして。
テンプレートのコード排除は同意。

ちなみにそのHelperでデータ整形するコードって、

echo '<td>hoge</td>';

とかいうふうにコードの中にHTML入っちゃってたりする?
この書き方は個人的には絶対に避けるんだけど。
理由はHTMLエディタで認識できないし、エンジニア以外がメンテできなくなるから。

なので、そういう整形用途でrenderElementで十分だったりする。
関数作れないけどまあViewだしコピペでいいか〜とか。
頻繁に使われるならさらにrenderElementで小分けする。

あとclassが書かれたファイルをデザイナーさんがメンテするのもちょっと。
ってここは社内事情だし、まあエンジニアがテキストエディタで全部メンテするならいいけど。
800名無しさん@Vim%Chalice:2007/09/29(土) 01:46:37 ID:???
>>798
Controllerの中では使いもしないHelperの配列を
用意しなくちゃならないのがそもそも気持ち悪い。
なんていうのかな、その辺はView側で完結して欲しいって思う。

>>799
Helperの中にはタグは入れてないよ。
(Cake付属のHelperはモリモリ使っててムカつくよね!)
主にModelからブン投げてきたデータを食って
配列地獄を隠蔽したり、必要なデータだけ返すって感じ。
どうしてもテンプレートが必要ならHelperから
renderElementを呼んで引っ張ってくる。

あと、renderElementはテンプレートを細分化する他に、
PHPから動的にjavascriptを生成したい場合など
コードを隔離したい場合にも使える。
ほんまView側の要だと思う。
801nobodyさん:2007/09/29(土) 02:03:25 ID:???
> なんていうのかな、その辺はView側で完結して欲しいって思う。
つまり、Viewの中にphpコードを書いてHelperをロードしたいということかな?
Viewの中にコードねぇ。まあいいけど。
802nobodyさん:2007/09/29(土) 02:08:55 ID:???
Helperの中でタグを出力するのは悪くて、
renderElementの中でタグを出力するのは良いのか?w

Helper呼び出しのコードを書くのは悪くて、
renderElement命令実行というコードを使うのは問題ないのか?w
803nobodyさん:2007/09/29(土) 02:21:16 ID:???
>>799
> 理由はHTMLエディタで認識できないし、エンジニア以外がメンテできなくなるから。

という理由なら、renderElementを使う方法も使えないよな。

そもそもHTMLだけでループや条件分岐を表現できないのだからどうしようもない。
またフォーム系のタグにつける名前はコードの都合によってつけるものだから
当然エンジニアの仕事になる。
804792:2007/09/29(土) 10:14:12 ID:???
>> 800
>主にModelからブン投げてきたデータを食って
>配列地獄を隠蔽したり、必要なデータだけ返すって感じ。
>どうしてもテンプレートが必要ならHelperから
>renderElementを呼んで引っ張ってくる。

んーなるほど...ほんとにデータ整形だけなのか...
そこまでHelperでやっちゃうとほとんどコントローラ出番ないんじゃない?

Helperはデータを返すんじゃなくて表示できる形の文字列を返すものという
俺ルールで縛ってるから、
個人的にはそういうのならコントローラでやっちゃうか
コンポーネントにしちゃうか、
もしくはModelのafterFind使ったりだ。
805792:2007/09/29(土) 10:19:44 ID:???
>>802
>Helperの中でタグを出力するのは悪くて、
>renderElementの中でタグを出力するのは良いのか?w>
そういうことじゃないよ。タグを出力するよしあしじゃなくて、
コードの中にタグが混入してるのがアウト。

○ <h1><?php echo h($hoge) ?></h1>
× <?php echo '<h1>' . h($home) . '</h1>'; ?>

renderElementした先で○のようにタグが.thtmlでコード外に書かれてるのならおk。
どりーむうぇーばーとかでいじれる。

Helperでもこのルールで書かれてばいいっちゃいいけど、
どりーむうぇーばーとかで開いたときにめちゃめちゃにならないように縛りいれると
renderElementでやるのと大差なくなる。
806792:2007/09/29(土) 10:30:49 ID:???
>>803
>という理由なら、renderElementを使う方法も使えないよな。
ちゃうちゃう。デザイナーさんはrenderElementした先の.thtmlを開くの。
それくらいは教える。

ループ書いたりとか条件分岐はエンジニアが書くけど、
見栄え自体はあとからデザイナーさんが調整してほしいから。
807名無しさん@Vim%Chalice:2007/09/29(土) 11:14:53 ID:???
>>801
あー悪い、View側つーか、要はControllerとテンプレートの間にもう1クッション、
表示用の準備を「PHPで」書ける空間が欲しいなって事。

Modelはデータソースへの正しい入出力に全力を注ぐべきだし、
Controllerは見た目なんかに関知しないでビジネスロジックに集中したい。
テンプレートは出来るだけHTMLの純度を高めたい。
問題の範囲を切り分けたいって意味なんだけど、分かりにくいね、ごめんちゃい

#今回はもう後戻りできないからControllerに直接Helper指定してるけど:-p

>>804
業務用の社内システム作ってるから、
Controllerのやる事は割とあるんよね (社内事情
808792:2007/09/29(土) 11:29:02 ID:???
>>807
>Modelはデータソースへの正しい入出力に全力を注ぐべき
理想は俺もそうしたいが、使い勝手を考えると
Modelクラスにデータ整形のメソッドとか書くと使い易いんだなこれが...

何かデータ整形のための構造がもう1個あってもいい気もするね。
うまい名前が思いつかないけど。

>業務用の社内システム作ってるから、
>Controllerのやる事は割とあるんよね (社内事情
なるへそ。その状況想像したら分離したくなる気持ちはわかったよ。
809nobodyさん:2007/09/29(土) 11:44:45 ID:???
>>805
> ○ <h1><?php echo h($hoge) ?></h1>
> × <?php echo '<h1>' . h($home) . '</h1>'; ?>
上が○ならこれもOKってことだよな?

<h1><?php echo $helper->h($hoge) ?></h1>

>>806
> ちゃうちゃう。デザイナーさんはrenderElementした先の.thtmlを開くの。
いや、だからその先の.thtmlにコードが入っていたら結局同じことでしょ?

810nobodyさん:2007/09/29(土) 11:48:09 ID:???
>>807
> 表示用の準備を「PHPで」書ける空間が欲しいなって事。
つbeforeRender
811792:2007/09/29(土) 12:51:34 ID:???
>>809
>上が○ならこれもOKってことだよな?
><h1><?php echo $helper->h($hoge) ?></h1>
おk

>> ちゃうちゃう。デザイナーさんはrenderElementした先の.thtmlを開くの。
>いや、だからその先の.thtmlにコードが入っていたら結局同じことでしょ?
そのコードが○な感じで書かれてばおk

>>810
beforeRenderをコントローラー内じゃなくて
何か別のクラスに分離したいよね。
まあ自作してもいいけどね。
812nobodyさん:2007/10/03(水) 20:59:09 ID:???
CakePHP(1.2のAlphaの話)・・・便利だし悪口言いたくないけど、
ビュー周りが気持ち悪くて、使いにくいな。
bakeで作られるソースの話だが、viewとeditのctpで統一感がない。

viewの場合、<?php echo $author['Author']['id']?> という形で表示。
つまり、$authorに全データがはいってくるわけだが、

editの方は、なぜか、echo $form->input('id');
モデル名は<?php echo $form->create('Author');?>で指定しているわけだが、
肝心のデータはどこから???

ふーん。$form自体がデータをもっちゃってるのね。
タグ出力だけの機能じゃないんだ。

で、$formにデータをセットしているところは?
へぇ、コントローラにヘルパーとしてFormを入れたら
勝手にデータ読んじゃうんだ。なんだこの仕様w
813nobodyさん:2007/10/03(水) 21:39:13 ID:???
憶測だけどFormヘルパーが$this->controller->dataを参照してるんじゃまいか
814nobodyさん:2007/10/03(水) 21:57:16 ID:???
>>813
たぶん、そうなんだろうけど、直接読むところじゃないよな。
controller->dataはPOSTしたときのデータ専用に使っとくれ。

ということで、そこらあたりがっちり書き換えてしまった。
表形式でのデータ編集もしたかったし、
Formヘルパーは使わずに独自のヘルパー(?)作ったよ。
815nobodyさん:2007/10/04(木) 09:53:08 ID:???
>>814
まあオプションでいちいち
指定するとタグ直書きとあんまり代わらないからな。
ただ、独りよがりな仕様は否めない。
勝手にオプションを追加しておいて
それを削除するにはソースいじらにゃならん、とか
816nobodyさん:2007/10/09(火) 16:06:42 ID:???
>>384
ちんこの美しさは半端ない
あれはまさに神の授けた人類の至宝だね
りっぱなやつを見ているだけで俺なんか
イきそうになるよ
だからお前も一緒にホラ や ら な い か?
ありくい
817nobodyさん:2007/10/13(土) 00:42:51 ID:???
特定のmodelで使うバリデーションはmodel自体の中に書けばいいのはわかったんだけど、
複数のmodelで使うバリデーションってどこに書けばいいの?

本も買ってみたんだけど、>>648でもふれられているように、自前の
バリデーションの説明は載ってなかった…
818nobodyさん:2007/10/13(土) 03:00:25 ID:???
そりゃ、AppModelだろう。
中間に別のModelをはさんでそこで書いてもいいが。
819nobodyさん:2007/10/13(土) 06:46:38 ID:???
>>818
AppModelでいいのか。
なんかcake/ディレクトリに手を加えるのに抵抗あったからapp/の中のどこかかと思った。
さんきゅー。
820nobodyさん:2007/10/13(土) 09:05:42 ID:???
いや、appのAppModelだよw
821nobodyさん:2007/10/13(土) 18:51:56 ID:???
>>820
ありがとうございます。
cake/app_model.phpを見たら
>Create the same file in app/app_model.php
って書いてありますね…
見落としてました。
822nobodyさん:2007/10/15(月) 01:21:45 ID:???
全体を通してみて、Cakeユーザのレベルが低い気がする。
いや俺を含めてね。
823nobodyさん:2007/10/15(月) 16:42:00 ID:???
いや、お前だけだ
824nobodyさん:2007/10/15(月) 16:56:02 ID:???
そうだそうだ
825nobodyさん:2007/10/15(月) 18:58:29 ID:???
いや俺も
826nobodyさん:2007/10/15(月) 21:37:52 ID:???
俺だって
827nobodyさん:2007/10/15(月) 21:50:58 ID:???
どうぞ、どうぞ。

[フライング]
828nobodyさん:2007/10/16(火) 10:46:59 ID:???
ケーキとかしばらく食ってねーな。スイーツ食いたいよスイーツ。
829nobodyさん:2007/10/16(火) 17:34:23 ID:wp+6b1Uc
Use of undefined constant VALID_NOT_EMPTY - assumed 'VALID_NOT_EMPTY' in /var/www/html/pic/cake/dispatcher.php on line 157
チュートリアル通り進めてると
思うんだけど原因がわかりませぬ。

だれか教えてください。
830nobodyさん:2007/10/16(火) 19:47:20 ID:???
まだフレームワーク使うに早いので勉強してください
831nobodyさん:2007/10/16(火) 22:09:04 ID:???
>>830
お前は日本語をちゃんと勉強したら?
832nobodyさん:2007/10/16(火) 22:24:04 ID:???
お前が言い回しを勉強しろ。
「使うに」の”に”がおかしいっていいたいんだろ?教養ない奴。

理解できなかったら、副助詞の「は」を補って
まだフレームワーク使うには、早いので、勉強してください と読め。
833nobodyさん:2007/10/16(火) 23:07:35 ID:???
つうか横レスだが
どこにVALID_NOT_EMPTY定数入れておこられたん?
エスパーきぼんぬと言われてもしょうがない
834nobodyさん:2007/10/16(火) 23:08:02 ID:???
ksks
835nobodyさん:2007/10/16(火) 23:31:16 ID:???
「使うに早い」って正しい日本語だろ
836nobodyさん:2007/10/17(水) 00:55:10 ID:???
どこが?
837nobodyさん:2007/10/17(水) 00:57:48 ID:???
「使うに早い」 Google 検索結果・・・1件
「使うには早い」 Google 検索結果・・・17,900件

1件のブログの人?
838nobodyさん:2007/10/17(水) 01:15:36 ID:???
そうだが?
839nobodyさん:2007/10/17(水) 01:32:54 ID:???
今後、ここは正しい日本語について論じ合うスレッドになりました
840nobodyさん:2007/10/17(水) 16:55:45 ID:???
Cake本でますな。
どっかの誰かさんが書いた糞本と違って内容が濃いことを願います。
本の質も少しでもRailsを模倣してほしいよ。
841nobodyさん:2007/10/17(水) 17:31:04 ID:???
modifiedを更新しないでUpdateする方法って用意されてたりする?
やり方がわからなくて今はmodifiedを1回持ってきて再設定してるんだけど。

>>840
Railsは書籍がいっぱいあるからうらやましいよね。
842nobodyさん:2007/10/17(水) 17:37:52 ID:???
>>841
意味がよくわからないけど。
modifiedは勝手に更新されるでしょ?
843841:2007/10/17(水) 19:10:12 ID:???
>>841
勝手に更新されて困るときに、更新しない方法ってない?という意味です…
844nobodyさん:2007/10/17(水) 19:20:08 ID:???
modifiedは更新したときに勝手に更新されるためにあるもんだと思うが
845841:2007/10/17(水) 19:56:57 ID:???
>>844
いや、例外的に更新して欲しくないという時もあるよ。
その例外のためにmodifiedとは別の項目つくるのもスマートじゃないし。

So-net blog:sandmanの旅行の写真”とか”:CakePHP その7 - createdとmod..
http://blog.so-net.ne.jp/sand_man/2007-07-24
>ついでに、コントローラーごとに、この機能をオン/オフする変数が欲しい。
846nobodyさん:2007/10/17(水) 20:24:38 ID:???
DBを使わない場合に、他のモデルのデータ使いたいときってどうすればいいの…?
847nobodyさん:2007/10/17(水) 21:54:28 ID:q7TPqrYz
すごい初歩的な質問なんですが、
初期設定とかはどこですればいいんでしょう?

例えばファイルから設定を読み込むとか、
読み込んだ設定をセッションに登録するとか…
848nobodyさん:2007/10/17(水) 23:02:39 ID:???
>>846
コントローラの話?なら
var $uses = array('Model', 'Model2');
で定義してアクセスするには
$this->Model->ググれ();

>>847
/app/config/bootstrap.phpとか
849nobodyさん:2007/10/17(水) 23:57:11 ID:???
>>848

おお、DB使わなくてもそれでいけるんですね(?)
すごいなあ

ついでになんですが…
独自の関数(例えばhoge)ってどこに定義すればいいんでしょう…
AppControllerに定義すると継承されるので、そのURLでアクセスされるとアクションとして処理されちゃいますよね

class AppController extends Controller {
function hoge {
}
}

class FooController extends AppController {
}

とかだと、http://nantoka.com/hoge/

でhoge()がアクションとして処理されそうな気が…
むずいなあ・・・
早く本でないかなあ
850nobodyさん:2007/10/17(水) 23:58:11 ID:???
>とかだと、http://nantoka.com/hoge/
>でhoge()がアクションとして処理されそうな気が…

訂正…

とかだと、http://nantoka.com/foo/hoge/
でhoge()がアクションとして処理されそうな気が…
851nobodyさん:2007/10/18(木) 01:17:44 ID:???
_ とか __ とかつけれ
852nobodyさん:2007/10/18(木) 02:15:22 ID:???
modifiedは自動更新されるためにあるんだしそういう仕様なんだから、違うカラムつくればいい。別にスマートじゃなくない。
853nobodyさん:2007/10/18(木) 08:53:55 ID:???
>>851
>>852

どうもです m__m

_とかつけるとアクションとしては呼ばれないんですかね?

がんばって調べてみます
854nobodyさん:2007/10/18(木) 14:39:39 ID:???
アップロードされたファイルも$this->dataの中に入りますよね?
$html->file('Sample/pic');
でアップロードしたんですけど、$this->data['Sample']の中には
ファイル名しかない・・・
$this->dataの中をprint_rで見ても、tmp_nameとか入って無いんですが。

これって何か設定しないと駄目なこことかありますか?
855nobodyさん:2007/10/18(木) 15:13:11 ID:???
Cakeはそこまで面倒見てくれないから
move_uploaded_file()とか普通に使え
856nobodyさん:2007/10/18(木) 15:17:15 ID:???
解決しました。
formにenctype入れるの忘れてました。
テヘ
857nobodyさん:2007/10/18(木) 15:33:11 ID:Tkva8LEl
1.2.0.5427alphaでEmailComponentを使い始めたんだが、
改行を改行コードつまり"\r\n"ではなく、'\n' で
記述するのは仕様なのか?

コード読むと、__stripで改行コードさくっと消していたり、
$message = str_replace(array('\r','\n'), '\n', $message);
というコードがあったりするんだが・・・


あとメールの仕様って改行コードは文字コードとしての\r\nでいいの?
858nobodyさん:2007/10/18(木) 15:43:49 ID:Tkva8LEl
これかぁ・・・
https://trac.cakephp.org/ticket/3381

バグでいいんだよな?
コアを修正するとあとで面倒なんだよな。
859nobodyさん:2007/10/18(木) 16:06:31 ID:???
あと>>858のリンク先に修正コードがのっているけど、
改行削除しているのは、__strip関数なんだよなぁ・・・
$message = $this->__strip($message, true);

__strip関数の第二引数をfalse(省略すると)
改行コードは削除されないんだが、
そうすると第二引数をtrueにしているところがなくなるぞ?

何か意味があってそういうことしたのだろうが、
よくわからん。履歴も見たけどよくわからん。

だれか、EmailComponent使っているのだろうか・・・
860nobodyさん:2007/10/18(木) 16:12:14 ID:7IUQWVSk
例えば、モデルの中でファイルを読み込む場合ってあるよね?
そういう場合って、セッションにでも保存しない限り、毎回ファイル読み込まんといけんの?

class Data extends AppModel {
  var $name = 'Data';
  var $filename;

  function load() {
    ファイル読み込み処理 
    $this->filename = ファイル名;
  }
}

class UserController extends AppController {
  var $name = 'User';
  var $uses = array('User', 'Data');

  function view() {
    if (!$this->Session->check('initialized')) {
      $this->Template->load(WWW_ROOT . 'template/');
      $this->Session->write('initialized', true);
    }

    $this->set('file', $this->Data->filename);
  }
}

とかやってるんだけど、2回目以降のアクセスでビューの$filenameが空になる…
861nobodyさん:2007/10/18(木) 16:14:06 ID:???
すまん、間違えた。

class Data extends AppModel {
  var $name = 'Data';
  var $filename;

  function load() {
    ファイル読み込み処理 
    $this->filename = ファイル名;
  }
}

class UserController extends AppController {
  var $name = 'User';
  var $uses = array('User', 'Data');

  function view() {
    if (!$this->Session->check('initialized')) {
      $this->Data->load(WWW_ROOT . 'template/');
      $this->Session->write('initialized', true);
    }

    $this->set('file', $this->Data->filename);
  }
}

$filenameが空になる。
毎回ファイル読むかセッションに保存しないといけないんかな?
862nobodyさん:2007/10/18(木) 16:21:41 ID:???
>>860-861
いまいち何がやりたいのかよくわからないけど、
>2回目以降のアクセスでビューの$filenameが空になる…
それは当たり前なんじゃないかな。
863nobodyさん:2007/10/18(木) 16:29:38 ID:???
あ、ごめん・・・またまちがってた
DBなしでやってるんだけど、どうもうまくいかない…。

セッション initialized = false のとき(最初)
 1. DataModel: $this->Data->load(); で $this->Data->filename にファイル名が入る
 2. UserController: $this->set('file', $this->Data->filename でビューにファイル名を渡す
 3. ビューで <?php echo h($file) ?> でファイル名が表示される

セッション initialized = true のとき(2回目以降)
 1. $this->Data->filename にはすでにファイル名が入ってる(はずだと思うんだけど…)
 2. UserController: $this->set('file', $this->Data->filename でビューにファイル名を渡す
 3. ビューで <?php echo h($file) ?> でファイル名が表示される(はずなのにされない)


なんか間違ってる?(^^;
864nobodyさん:2007/10/18(木) 16:46:11 ID:???
デバッガでみても空になってるね…
セッションに保存するしかないのかな?
なんかしっくりこない(・・;
865nobodyさん:2007/10/18(木) 16:53:18 ID:???
>DBなしでやってるんだけど、どうもうまくいかない…。
DB使いましょう。

> セッション initialized = false のとき(最初)
>  1. $filename = 'hoge'; で $filename にファイル名が入る
>
> セッション initialized = true のとき(2回目以降)
>  1. $filename にはすでにファイル名が入ってる(はずだと思うんだけど…)
って言ってるのと同じだと思うんだけど。

DBなりクッキーなりセッションなりに記憶しないと、変数のデータは
ページ出力と同時に全て消えるよ。
866nobodyさん:2007/10/18(木) 16:58:29 ID:???
>DBなりクッキーなりセッションなりに記憶しないと、変数のデータは
>ページ出力と同時に全て消えるよ。

そうなのかあ
普通の感覚でやってたので混乱した…
ありがとう!

DBを使わないものなので、セッションにでも保存することにします >_<
867nobodyさん:2007/10/18(木) 17:02:24 ID:???
書き込み・読み込み可能な設定ファイルとかのヘルパってないですか?
こういうのもDBでやるもんですかね。

868nobodyさん:2007/10/18(木) 17:05:05 ID:???
ちょうど >>863 の件で調べてたときに見つけたので

ttp://cakephp.jp/modules/newbb/viewtopic.php?topic_id=754&forum=3

こういうのでは?
869nobodyさん:2007/10/18(木) 17:17:12 ID:???
>>867
俺はDBでやってるよ。

・・・でも読み込み重いかもなんておもちゃって
ファイルにキャッシュする機能つけちゃったけどなw
save時に全データをファイルにキャッシュ。通常はファイルから読み込み。

DBにした理由は、設定画面を作るのが面倒だったから。
870nobodyさん:2007/10/18(木) 17:42:09 ID:XZqNQY+Z
test
871nobodyさん:2007/10/18(木) 18:00:34 ID:???
>>869
どうも。DBにしといたほうが無難っぽいすな。

所でテーブルが無いとモデルとかコントローラとか作れないでしょうか?
872nobodyさん:2007/10/18(木) 18:02:46 ID:???
873nobodyさん:2007/10/18(木) 18:04:36 ID:???
>>871
作れるよ。

やりかたは、コントローラの$u・・・ぐぐれwwwww
874nobodyさん:2007/10/18(木) 22:21:39 ID:???
コントローラAから $this->redirect で他のコントーラBにリダイレクトすると
セッションがうまく読み込めないんだけどバグ?仕様?

もちろんリダイレクト前に、コントーラAでセッションに保存してるし
コントローラBではセッションの読み込みをしている

読み込めないというより、コントローラAで保存ができないのか?
謎すぎる…

$this->redirectはroutes.phpの設定無視されるのか?
875nobodyさん:2007/10/18(木) 22:23:34 ID:???
>>874

すまそ 自己レス

beforeRenderでセッション保存してたのがいけなかったみたい
保存前にリダイレクトしてたってことか orz
876nobodyさん:2007/10/18(木) 23:26:42 ID:???
慣れるまで大変だけど
少し慣れてくると使うのが楽しくなってくるね ヽ(゚∀゚)ノ
877nobodyさん:2007/10/19(金) 03:59:00 ID:???
>>876
そうなんだ?どのフレームワークが良さそうか探して回ってるんだけど、
CakePHPにしてみようかなあ
878871:2007/10/19(金) 07:26:08 ID:???
cacheっていうグローバル関数を見つけたんですが、
これ書き込みは出来ても読み込みはどうすればいいんでしょうか?
879nobodyさん:2007/10/19(金) 17:21:16 ID:???
第二引数がnullならきっと読み込んでくれるさ
880nobodyさん:2007/10/21(日) 09:03:30 ID:???
http://www.amazon.co.jp/exec/obidos/ASIN/4839924317/projectmultib-22/ref=nosim/
もうちょういでCake本が出るなぁ
みんな買うの?
881nobodyさん:2007/10/21(日) 11:00:36 ID:???
>>880
アフィうぜえ。
通報しておいた。

http://www.amazon.co.jp/exec/obidos/ASIN/4839924317/
882nobodyさん:2007/10/21(日) 15:54:32 ID:???
>>880
俺もアマゾンに通報しますた
883nobodyさん:2007/10/21(日) 17:33:03 ID:???
projectmultib-22を検索するとブログが見つかるけど、絶対荒らすなよ!!
884nobodyさん:2007/10/21(日) 21:00:01 ID:???
Cake使ってて、Railsを勉強しはじめたんだが、
Cakeの勉強続ける意味ってあるのかな。
Railsと併用とか戻ったとかいう人いる?

もちろん、Rails使えない環境ではCake使えるけどRails知ってて敢えてCake使ってるっていう人。
885nobodyさん:2007/10/21(日) 21:06:47 ID:???
  _, ._
(;゚ Д゚) 両方使えて損は無いだろ?時間が問題になるだけで。
886nobodyさん:2007/10/21(日) 21:27:02 ID:???
どっちかに自分をコミットしたいじゃん?
887nobodyさん:2007/10/22(月) 12:31:50 ID:???
今まであった静的ページにCakeの機能組み込む場合って
どうすればいいんでしょうか?

後プログラマに依存しないで静的ページを追加していく方法とかありますか?
888nobodyさん:2007/10/22(月) 12:53:18 ID:???
>>887
適当なディレクトリにインストールすれ
静的ページの定義がわからんが、単にファイルとして設置もできるしCake通った場合もおk
889nobodyさん:2007/10/22(月) 20:39:14 ID:???
下手に有名なせいで素人増えすぎ。
890nobodyさん:2007/10/22(月) 20:53:25 ID:???
人が多いことは良いことだ
891nobodyさん:2007/10/22(月) 23:22:05 ID:???
うざいやつも増えるけど、情報が出やすくなるのはいいかな。
892nobodyさん:2007/10/23(火) 16:42:02 ID:???
1.2.0.5875pre-betaきた
893nobodyさん:2007/10/23(火) 22:15:53 ID:???
きた!

でもこれが組み込まれていないorz

afterFind not called on associated Model Behaviours - diff attached
https://trac.cakephp.org/ticket/2056

バグだろ? 早く公式で組み込まれないかな・・・
894nobodyさん:2007/10/24(水) 02:28:23 ID:???
>>887
.htaccessをそれっぽく書き換える
895nobodyさん:2007/10/25(木) 00:35:51 ID:???
同じRailsライクのPHPフレームワークで、symfony、 php on trax 、codeIgniterあたりを実際に使って比較したひといる?とくにtraxとの比較が知りたい
896nobodyさん:2007/10/25(木) 01:04:02 ID:???
今日は 1.2.0.5427alpha → 1.2.0.5875pre-beta 移植をやっていたよ。
わかっていたことだけど、alpha版に手を出すと面倒だねw

>857のメールの件だが、動かしてはいないんだがソース見た限りではちゃんと直っているようだ。

コントローラーのnamedArgsがなくなってpassedArgsだけになっていた。ほとんど同じようなものなので、簡単に修正。
namedArgsはもともと使ってはいけないものだったのだろうか?

なんていうんだっけ、名前つきURL? paginationとかで使われている/controller/action/name:value の「:」という区切り記号。
以前はコントローラの、$argSeparatorで指定できたのが、Routeの仕事になっている。まあ意味を考えれば妥当な変更だね。
設定するにはconnectNamedを使う。でいいのだろうか? この関数が何のためにあるのかよくわからない。
とりあえず/app/config/routes.phpにRoute::connectNamed(array(),array('argSeparator'=>'区切り記号'));を追加して設定できた。
これでいいのかわからんが、コードを見る限り区切り記号変更以外に副作用はないようだ。

/app/config/core.phpがことごとく変えられているw
といってもdefine('〜〜〜',〜〜) が Configure::write に変わっただけなんだが。
おかげで、DEBUG定数を見ているコードを修正する必要がある。
Configure::read('debug')に変えるだけだけど。

テストのページ(simpletestを起動するためのtest.phpのところ)の
charasetがUTF-8に修正された。うんよかった。

Single Table Inheritanceなるものをつかっているのだが、動かなくなった。
(詳細 http://cakephp.seesaa.net/article/23101637.html
(大元 http://www.ifisgeek.com/tutorials/implementing_single_table_inheritance_in_cakephp

自分はいろいろ変更しているのでそのままあてはまらないかもしれないが、
大元のコードSnippet #3: Complete definition for the Current Model.の $table = $this->__table;の次の行に
$this->useTable = $table;を追加したら動いた。まあこれは大元が悪い気がするが。

とりあえず、俺にとって問題が出た修正点はこんなところかな?
897nobodyさん:2007/10/25(木) 12:48:02 ID:???
1.2.0.5875pre-beta で
cakeコマンドの検索パスから、
/app/vendors/shells が無くなった?

/venders/shellsに変えればいいだけなんだが、
1.2.0.5875pre-betaでもパスは残っているしこれはバグだろうか?
898897:2007/10/25(木) 13:06:00 ID:???
どうやら、パスの扱いに変更があったようだ。

今までは、/cake/consoleに移動して、cakeコマンドを実行していたのだが、
それでは/app/venders/shells/を見てくれなくなって
/app で実行したら見てくれた。

これは、デフォルトの動作で、-app 引数で見るパスは変更可能。
899nobodyさん:2007/10/25(木) 15:21:22 ID:QUb8umf5
>>896
わかっていたことだけど、alpha版に手を出すと面倒だねw

同感。ちなみに、まだ本屋いってないけど本でたかな。
cakephpの新しい本。早く読みたい。
900nobodyさん:2007/10/25(木) 16:10:51 ID:???
1.1でつくってて本当によかった
901nobodyさん:2007/10/25(木) 17:53:23 ID:???
>>896
めんどくさそうだなー。
一応betaまで待とうかな。
うーん…
902nobodyさん:2007/10/25(木) 20:40:27 ID:???
>>901
面倒は面倒だが、書いてある文章よりかは面倒じゃないぞw

比較的マイナーなことをしているからそうなるわけで、
ほとんどの人はすんなり移行できるんじゃないかな?

>>900
> 1.1でつくってて本当によかった
それはそれで、1.2へ移行するときに面倒なことが・・・
結構かわっているしね。formヘルパーとかPaginationとか。

俺は、EmailComponentとユーザー関数によるValidationと
Behaviorと名前つきURLパラメータとか使っているから
1.2じゃないともう無理。
903901:2007/10/26(金) 00:12:57 ID:???
>>902
俺もEmailComponent、Validationの二つが決定的で1.2を使ってる。
1.1からだとhtmlとformヘルパー周りの変更は確かにめんどくさそうだね。
904nobodyさん:2007/10/26(金) 10:45:52 ID:???
>>881を実際手に取った感想は無いの?
905nobodyさん:2007/10/26(金) 11:30:28 ID:???
見た目よりは滑らかな感じだったよ。
906nobodyさん:2007/10/26(金) 11:31:00 ID:???
Modelname.columnnameや
Modelname/columnnameなどの文字列をモデル名とカラム名の配列に
変換してくれる(または、その逆をしてくれる)関数はありませんか?
907nobodyさん:2007/10/26(金) 11:37:40 ID:???
いまちょっと混乱しているんだけど、
1.2.0.5427alphaで、admin routingを使ったときの
/admin/controllers/indexにアクセスしたときの
action名(コントローラ->actionおよびコントローラ->params['action'])って
indexじゃなかったっけ?

1.2.0.5875pre-beta の場合、admin_index になっているような・・・。
仕様変更? それともなんか設定不足かなにかかな?
908907:2007/10/26(金) 12:02:50 ID:???
結局、これもバグか・・・
https://trac.cakephp.org/ticket/3440
これの修正を適用したら直った。

あっ。直ったと言うのは正確にはソートの部分ね。
>>907の直接の問題は、paginationを使ったときテーブルのヘッダ部分が
/admin/controllers/admin_index/page=1/sort=type/direction=asc と
admin_indexが追加されてしまっていること。
パッチを適用したらちゃんと直った。

actionが以前、admin_indexだったかどうかは忘れたが
これからはこれなのだろう。
909907:2007/10/26(金) 12:15:32 ID:???
/admin/controllers/index/abc
これでアクセスしたときは、

function admin_index($value) {
の$valueにabcが入るのに、


/admin/controllers/index/named:1/abc
これでアクセスしたときは、

function admin_index($value) {
の$valueが、なんで1なんだよ?

/admin/controllers/index/abc/named:1
のときはちゃんとabcが入るくせに


(゚Д゚)ハァ? (゚Д゚)ハァ?

1.2.0.5875pre-beta は
こまかいバグがおおいなぁ。
910nobodyさん:2007/10/26(金) 13:20:41 ID:???
>>909
cakeは全体的にパラメータの受け渡し関係はおかしいよね。
数字なのにわざわざ文字列型に直されていたり…
911nobodyさん:2007/10/26(金) 19:16:41 ID:???
checkboxって
array('checked'=>($data['Pic_resize']?'checked':null),'value'=>1)
とかにしてパラメータ渡さんとだめなん?
912nobodyさん:2007/10/27(土) 00:05:03 ID:???
どういういみだ。生書きできないかということか?
913nobodyさん:2007/10/27(土) 21:04:01 ID:euGofwdi
914nobodyさん:2007/10/28(日) 00:56:30 ID:agDkXCq3
複数のCakePHPアプリでログイン情報を共有させるいい方法ないのかなあ…
1つのアプリにまとめると、コントローラ名なんかがかぶるから長い名前になってしまう…
915nobodyさん:2007/10/28(日) 12:02:53 ID:???
CakePHPだとGDの扱いも簡単にかけるの?
916nobodyさん:2007/10/28(日) 12:36:40 ID:???
GDがなんか難しいのか?

それはいいとして、GDの命令自体は同じ。
GDを含んでいるアプリ全体は簡単に書ける。

フレームワークとはそういうもん。
917nobodyさん:2007/10/28(日) 13:52:19 ID:???
>>914
そんなにコントローラー名かぶらないと思うけどなあ…
このへん参考にしたら?
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=786&forum=3&post_id=1464

http://program.alphabrend.com/modules/pukiwiki/42.html
俺は↑という感じでサブドメイン運用しているんだが、
それでもサブドメインが変わると、セッションが切れてしまう。
firefoxでセッションの情報を見ると、対象ドメインは.hoge.jpに
なっているので、hoge.jpでもfuga.hoge.jpでもOKのはずだよね?
918nobodyさん:2007/10/28(日) 14:24:34 ID:???
>>917

ありがとう
やっぱりセッション周りいじるのが一番簡単なのかな

コントローラ名がかぶるのはCakePHPの規約に合わせてつくってるから…
(モデルごとにコントローラ作るから)

規約に合わせないで、1つのコントローラでいくつかのモデルをまとめて扱えばいいのかな
今、気づいた orz
919nobodyさん:2007/10/28(日) 15:09:09 ID:???
>>896
自分もpre-betaに移行してみたよ。
修正が必要だったのは
>おかげで、DEBUG定数を見ているコードを修正する必要がある。
ここだけ。
defineはconfig.phpと関係ない定数だけで使うようにってことなのかね。
920nobodyさん:2007/10/28(日) 15:16:07 ID:???
>>918
よく知らないんだが規約ではモデルごとにコントローラーを作るのを求められてるの?
コントローラーは、ユーザーが何かしらの行動をしたときに動作を振り分けるものだから、
たとえばアクセスログをDBに記録する場合には、モデルだけ必要でコントローラーは
必要ないと思うんだが。
921nobodyさん:2007/10/28(日) 15:18:18 ID:???
Cake使っていままでの既存のプロジェクトを後の生産性と保守性のためにかきなおしたやついる?
922nobodyさん:2007/10/28(日) 15:26:23 ID:???
>>920

あれ、別に作らなくてもいいんだっけ?
一応、規約だとモデル・コントローラ・ビュー全て一式そろえないといけないことになってたかと思った
(もちろん、$Useとか$UseTableとかで変えられるけど)

掲示板とかのカテゴリ用のテーブル作って、CategoryControllerも作ってたんだけど、
さすがになんか変だなあ、と思って、
別にコントローラのないモデルもあるよなあと気づいた…。

小物は規約に従っててもいいけど、少し変わったもの作るとなると自分で調整したほうがいいみたいね
923nobodyさん:2007/10/28(日) 15:27:08 ID:???
>>921

趣味でやってるけど書き直そうとしてる
でもDB使ってないサイトなので、あんまり意味ないかもw
楽だなあ、とは思った
924nobodyさん:2007/10/28(日) 15:29:53 ID:???
DB使ってないのにCake使ってるんだw
925nobodyさん:2007/10/28(日) 15:30:43 ID:???
モデルだけのためにビヘイビアがあります
926nobodyさん:2007/10/28(日) 16:01:28 ID:???
ビヘイビアはよくわかりません。
927nobodyさん:2007/10/28(日) 16:26:52 ID:???
>>924

DB使わなくてもCakeで組み直すと楽だよ
まあDB使ってるときほどメリットはないけど
928nobodyさん:2007/10/28(日) 16:54:10 ID:???
みんなどれくらいのDBのパフォーマンスでやってるのか気になって検索したら出てきたんだけど、
http://www.google.com/search?num=50&hl=ja&q=%22*+queries+took+*+ms%22&lr=lang_ja
これ既出?

929nobodyさん:2007/10/28(日) 17:15:20 ID:???
>>928
へぇそれはしらなかった
930nobodyさん:2007/10/28(日) 22:46:21 ID:???
Amazonから届かんぞーーーー
931nobodyさん:2007/10/28(日) 22:49:07 ID:???
「アマゾ・・」
ピンポーン
932nobodyさん:2007/10/28(日) 23:07:44 ID:???
>>930

きのう届いたよ
933nobodyさん:2007/10/28(日) 23:09:53 ID:???
1.1のときはcake/scripts/ で php bake.php をやるとCAKEPHPっていうのが出てきて対話に入ったんですけど、
1.2 pre-betaにしてからbake.phpの場所が変わっていたので cake/console/libs で php bake.phpをしても何も表示されません。

ほかに何か変更になったんでしょうか?
934nobodyさん:2007/10/29(月) 02:13:31 ID:???
1.2からは、cake bake だよ。

cakeコマンド自体は、/cake/consoleにあるが、
実行する場所は、/app にいることが想定されていると思う。
なぜなら、なんのオプションもつけずに、/app/venders/shells/に作った
独自のスクリプトを読むためにはここにいなければいけないから。

だから、俺は環境設定のPATHに、/cake/consoleを追加している。
935nobodyさん:2007/10/29(月) 14:18:29 ID:???
pre-betaになってから$form->createが変わったな。
なぜか知らんが、$this->params['controller']があると、
それを優先的にモデルに設定してしまう。
https://trac.cakephp.org/browser/trunk/cake/1.2.x.x/cake/libs/view/helpers/form.php?rev=5811#L160
/post/view/1を表示しているときに/comment/addとかにactionが
設定できなくなった。
936nobodyさん:2007/10/29(月) 14:53:23 ID:???
>>935
'url' => array('controller'=>'comment', 'action'=>'add')
とかoptionsに入れればいいんじゃないの?
それでダメと言う話?
937nobodyさん:2007/10/29(月) 16:33:09 ID:???
>>936
あー、optionsをそう書くのか。
前は
$form->create('Comment', array('action'=>'add'))
でいけてたはずなんだけど。
938nobodyさん:2007/10/30(火) 00:17:43 ID:???
>>934

さんくす。

php cake/console/cake.php bake

で、うまくいった。
939nobodyさん:2007/10/30(火) 00:46:08 ID:???
グループごとにログインする場所って分けた方がいいんでしょうかね?
940nobodyさん:2007/10/31(水) 00:16:45 ID:???
cake本をぱらっと見たけど、1.1向けなのね。
pre-betaも出たし、なんかタイミング悪い。
これなら前に出たPHPフレームワーク本の方がいいかも。
購入は1.2に改訂されるまで待ちかな。
941nobodyさん:2007/10/31(水) 02:13:47 ID:???
1.2に改訂とか出ても相当かかるだろ。
942nobodyさん:2007/10/31(水) 16:03:44 ID:???
1.2って仕事でつかっちゃっても大丈夫な位には出来てますか?
943nobodyさん:2007/10/31(水) 17:07:27 ID:y/Xrur+h
本かってみたー。

cakephp1.1で作ってるので個人的には今まで出た本の中では良いと思う。
なにせcakephp1.1使ってますから。

ただ、文字が多すぎ。カラーで出してくれたら嬉しかったなと思う。
944nobodyさん:2007/10/31(水) 17:35:10 ID:???
でも薄っぺらい本よりはいい
945nobodyさん:2007/10/31(水) 17:38:10 ID:???
漫画じゃないと認めない
946nobodyさん:2007/10/31(水) 22:44:43 ID:???
もうちょっと具体的なのがあるとよかったね

半分くらいはまとめただけって感じなのが…

もうちょい実践で使えるノウハウがほしいなあ

入門書としては悪くないと思う
947nobodyさん:2007/10/31(水) 22:47:25 ID:???
そう感じたらRailsへの移行時だな
948nobodyさん:2007/11/01(木) 00:36:06 ID:???
おれはrailsからcakeにきた
949nobodyさん:2007/11/01(木) 01:32:04 ID:???
なぜ?
950nobodyさん:2007/11/01(木) 03:19:40 ID:???
phpのほうが楽じゃね?
951nobodyさん:2007/11/01(木) 11:57:40 ID:???
単純にRubyに対応している共有サーバーが少ないからだな。
もちろん専用サーバーならなんでもありだけど、
それならJavaでいいんじゃね?という感じだし。
952nobodyさん:2007/11/01(木) 12:52:33 ID:???
だな、オレくらいしょぼいプログラマだと、
PHPしか需要がねーよ orz
953nobodyさん:2007/11/01(木) 17:14:54 ID:???
tagErrorMsgってリダイレクトすると消えちゃうんですが、
これってSessionとか使って記憶しておく事とかできませんか?
954nobodyさん:2007/11/01(木) 20:53:29 ID:40qfpM4a
ちがった。
別の作って見たらちゃんとRedirect後もエラー表示されてる。

「リダイレクトするとtagErrorMsgの表示が見えなくなったんですが、
どなたか原因わかりませんか? 」

に質問を買えます。
お願いします。
955nobodyさん:2007/11/01(木) 21:27:48 ID:???
ちがった・・
エラーの後のリダイレクトは駄目なんですね
質問取り下げます。失礼しました。
956nobodyさん:2007/11/03(土) 15:26:30 ID:???
ユーザ登録系で簡単な方法って無い?
メール返して本人確認するみたいな・・
957nobodyさん:2007/11/03(土) 17:59:33 ID:???
>>956
前に探したけど、特になかった気がするなあ。

Postされる情報の中にidが含まれていると任意のidが
設定できちゃうのね。
いちいちnullを入れるのがめんどくさい&不安なんだけど
みんなどうやって解決してる?
958nobodyさん:2007/11/04(日) 00:16:12 ID:???
自由に投稿されてはいけないなら、何らかの認証機構を付けるべきなんじゃない
959nobodyさん:2007/11/04(日) 01:40:38 ID:???
idいれなきゃいいじゃんw
nullもいらないじゃんw
960nobodyさん:2007/11/05(月) 04:20:02 ID:bzvMK5G5
DOCUMENT ROOT以下しか触れないときのファイル配置のお手本ってどっかにないですか?
僕はとりあえず全部DOCUMENTO ROOT直下にそのまま配置して、cakeとかappとかには直接アクセスできないように.htaccessで設定してるんですがそれで十分なのか不安なんですが。
(あとweb_rootが下の階層にあるのがデザイナーさんに気持ち悪がられる)
961nobodyさん:2007/11/05(月) 04:27:55 ID:???
webrootとコアを別のディレクトリにわければいいんじゃ
962nobodyさん:2007/11/05(月) 16:55:08 ID:???
>>960
http://massat.jp/2007/01/08/110
この辺参考にしたら?
dorument_root/
にwebroot突っ込んで
document_root/cake
にコアを入れて
で、cakeディレクトリはアクセス制限。
って感じで
963nobodyさん:2007/11/07(水) 16:56:26 ID:???
>>958
んー、例えばSNSの日記とかで/diaries/read/$idみたいなURLの場合。
悪意のあるだれかが日記を投稿するときにidをPostに含めて投稿した場合、
オートインクリメントが無効になって、いきなりidが飛んじゃう。
964nobodyさん:2007/11/07(水) 20:37:33 ID:???
そうならないように作ればいいだけじゃね?
965nobodyさん:2007/11/07(水) 23:41:09 ID:???
966nobodyさん:2007/11/08(木) 02:15:59 ID:???
>>965
ほほー。
これでまあなんとかマシにできるかも!
967nobodyさん:2007/11/08(木) 04:05:21 ID:???
いちいちそれやるのめんどくせーから
app_controllerにそれ用の関数書いとくというのはありですか?
968名無しさん@Vim%Chalice:2007/11/08(木) 14:05:02 ID:???
好きなの選べ

プラン1
app_modelでsave()をオーバーライドして
idを指定してきてたらidがデータベース上に存在するかチェックする

プラン2
controllerごとに$whitelistの配列を定義。
app_controllerのコンストラクタで$this->actionを見て、
editだったら$whitelistにこっそりidを付加

プラン3
save()で統一するメリットなんてたかが知れてるんだから
もういっそadd()とかedit()とかのラッパーを作ってmodel側で完結

プラン4
ママに頼む
969nobodyさん:2007/11/08(木) 14:37:50 ID:???
>>968
プラン4でうまく動きました。
ありがとうございました。m(*_*)m
970nobodyさん:2007/11/08(木) 14:44:38 ID:???
idだけじゃなくて、createdとmodifiedも、ほぼ間違いなく存在するフィールドだから
推測されやすいし、ポストされるとまずいよね。
その辺を考えると>>968のプラン2が一番いいのかなあ。

この問題について言及しているブログとか見つからないんだけど、
みんなどうやって解決しているのかね。
もしかして普通にセキュリティホールになってたりするのか?
971nobodyさん:2007/11/08(木) 15:50:07 ID:???
別にセキュリティホールにはならないと思うが?
単に、createdとmodifiedが編集可能フィールドになるってだけで。
972nobodyさん:2007/11/08(木) 16:44:49 ID:???
みんなどうやってログイン状態保持するようにしてる?

「情報を保存する」オプションを有効にする(CakePHP修行 #34) | IDEA*IDEA
http://www.ideaxidea.com/archives/2007/07/cakephp_34.html
これを見ると、
usersテーブルに、ユーザーごとのhashを保存

ログイン時に「保持する」にチェックが入っていたら、hash値をcookie発行

ログインチェック時にcookieを見てhash値があったら、それでログイン。
って感じの処理をやっているんだけど。
なんでこんなことをやっているのかわからない。

sidをcookie発行しちゃだめなの?
973nobodyさん:2007/11/08(木) 17:05:29 ID:???
セッションID 固定化
でぐぐる
974nobodyさん:2007/11/08(木) 21:38:53 ID:???
>>973
CakeってSession Fixation対策はある程度されているような。
少なくとも?CAKEPHP=1234みたいなのは効かないと思うんだけど。
975nobodyさん:2007/11/08(木) 21:57:56 ID:???
セッション固定化は問題

セッション固定化しないようにした

そんなsidをcookieに保存しておくのか?
976nobodyさん:2007/11/09(金) 03:59:48 ID:???
bakeで吐き出されるコードの
delアクションって最悪だな。
アドレスにアクセス(GET)しただけで削除される。
普通こういうのはPOSTを使って削除するもんだろ。
977nobodyさん:2007/11/09(金) 14:17:29 ID:???
bakeは使わないのが基本とどこかで見たから、それ以来全然触ってない。
普通に書けばいいんじゃね?
978nobodyさん:2007/11/09(金) 17:07:22 ID:???
>>975
sidをcookieで保存しておくとどういう攻撃が想定されるかわからないんだけど、
すまんが攻撃名だけでも教えて貰えないか。
979名無しさん@Vim%Chalice:2007/11/09(金) 17:07:32 ID:???
1.2prebataで搭載されたRESTルーチングを試してはいかが
980名無しさん@Vim%Chalice:2007/11/09(金) 17:13:33 ID:???
たいぽってた
誤)prebata
正)predator
981nobodyさん:2007/11/10(土) 02:09:58 ID:???
攻撃も何も、不定期に変化するsidをcookieに保存しておいても
次回アクセスされたときにcookieから取り出したsidが
有効である保障はないだろう?
982nobodyさん:2007/11/10(土) 09:54:00 ID:rF2PTWzY
セッションにユーザ情報を格納して、
app_controllerでログインチェックしてるんですが、
Sleipnirでぶちぶちセッションがきれてしまいます。
他のブラウザでは問題ないです。
1.2.0.5427alphaでも1.2.0.5875pre-betaでも同じ現象が発生します。
だれか同じ現象ではまった人はいませんでしょうか?
983nobodyさん:2007/11/10(土) 11:42:36 ID:???
CAKE_SECURITYが"high"なんじゃね?
ttp://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=817&forum=9
1.1の記事だが役に立つかな?
984nobodyさん:2007/11/10(土) 14:00:36 ID:???
俺もhighじゃなくてmediumで運用するようにしてる。

>>981
sid更新ごとにcookie発行すれば大丈夫のような。
どこか違うPCからログインした場合は再ログインが必要になるけど、
>>972みたいな固定値でやるよりよっぽどいい気がする。
985982:2007/11/10(土) 17:13:00 ID:rF2PTWzY BE:218079124-2BP(0)
983>>
情報提供ありがとうございます。
mediumに設定しましたが、状況かわらずでした。
困りました・・
986nobodyさん
とりあえず、まっさらな状態の
Cakeを動かして同じ現象が起こるかレポしてくれ