トップページ⇒php
987コメント299KB

【PHP】フレームワーク CakePHP

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2006/11/18(土) 20:53:22ID:???
おら、とうとうガマンできなくて立てちまっただ

本家
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/
0002nobodyさん2006/11/18(土) 20:58:37ID:???
どーすんだよこのスレ
0003nobodyさん2006/11/18(土) 22:48:32ID:???
smartyで挫折した俺様でも楽しく作れますか?
0004nobodyさん2006/11/19(日) 10:16:42ID:???
>>3
きっとやれる きっとやれるさ
0005nobodyさん2006/11/19(日) 10:59:04ID:???
甘い物が好きならケーキは食えるさ
0006nobodyさん2006/11/19(日) 13:27:36ID:EFwoFeZu
>>3
下手するとsmartyより覚えることが少ない
慣れることは重要だが
000732006/11/19(日) 14:21:47ID:???
とりあえずなにかおしえてくれ
0008nobodyさん2006/11/19(日) 18:23:56ID:???
まずは何をしたいんだ?blogでも作るのか?
0009nobodyさん2006/11/19(日) 19:59:39ID:???
フレームワークチャレンジャーはCakePHPから入ろう!
Ruby on Railsに似てるんですよね?
エキスパートプログラマーの皆さん、ご質問への回答をよろしくお願い致します。<(_~_)>
0010nobodyさん2006/11/19(日) 20:03:59ID:???
lt;?php symfonyとフランチョスのスレ ?gt;

↑シンホニーのスレタイ・・・なんだかな〜。orz
0011nobodyさん2006/11/19(日) 20:04:39ID:???
最近のFWは大概railsから色々パクってるよ
cakeはPHP4で且つどうしてもっていう理由がない限り世話になりたくないな
0012nobodyさん2006/11/20(月) 10:06:03ID:???
>>11さんのオススメ教えていただければ幸いに存じます
001332006/11/20(月) 11:04:26ID:???
簡単に作れるアプリを教えてください。
何度も言うがsmartyで挫折した俺様でも大丈夫でしょうか?
0014nobodyさん2006/11/20(月) 12:17:58ID:???
http://p4life.jp/cake/
まずはこの通りにやってみる
001532006/11/22(水) 02:22:02ID:???
10分なんて長すぎ。1分で作れるものたのむ。
そう、Hello Worldを表示するだけでいいんだよ。それを教えてくれ
0016nobodyさん2006/11/22(水) 04:20:41ID:???
>>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秒)

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

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

あっ、ダウンロードとアップロードのやり方も教えて
0019nobodyさん2006/11/24(金) 02:08:20ID:???
>>17-18
フレームワーク以前。
0020nobodyさん2006/11/24(金) 03:26:44ID:???
17は偽者
本物は俺様だけどもう名無しで潜伏するからバカにしないでくれ
0021nobodyさん2006/11/27(月) 09:17:16ID:???
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
0022nobodyさん2006/11/27(月) 20:56:02ID:???
こうやって持ちつ持たれつで世の中成り立っているんだなあ。
>>21 おつかれちゃんです。
0023nobodyさん2006/11/29(水) 22:41:18ID:???
来月はクリスマスケーキ食べるから12月にはいったらもりあげてやるかそうがねえな。
0024nobodyさん2006/11/30(木) 13:49:29ID:???
DBをMysql以外で利用したく、PEARでの利用方法をどなたか教えてください。
database.phpにてdriverは、pear-drivernameとあったので
pear-ibaseとしてみたのですが、ファイルが見つからないとなります。
pearとすると、venderにDB.phpがないと怒られます。
PEARへのパスはinclude_pathにあり、他のスクリプトではPEARを利用できます。
(これがクリアできても、connectの書き方が不明なのですが・・・)
どなたかよろしくお願いします。
0025212006/11/30(木) 14:42:13ID:???
/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初挑戦で手探り状態だし)
0026nobodyさん2006/11/30(木) 16:05:16ID:???
>>25
乙
左の行番号は手動で書き加えたんですか?
なんかツールとか使って、行番号を表示できるんですか?
便利なツールがあれば教えてください。
よろしく!
0027212006/11/30(木) 16:16:08ID:???
Cake公式のAPIリファレンス(http://api.cakephp.org/)から見れますよ。
Classes で見たいクラスを選択すればメソッドとか継承関係が見れるし、そこから行番号付きのソースコードも見れて便利。
0028nobodyさん2006/11/30(木) 16:48:52ID:???
>>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月・・期待しておきますね。
0029nobodyさん2006/11/30(木) 16:54:17ID:???
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 とかいてあるのですが。。。
0030nobodyさん2006/11/30(木) 17:07:03ID:???
>>21
すげー役に立った!
�dクス
0031nobodyさん2006/11/30(木) 17:37:35ID:???
>>29
CakePHPはphp4でもphp5でも動きますよ。

原因はよく分からないけど、存在しない添え字で配列を読もうとしてエラー吐いてるみたいだから・・
Controllersでのsetを書き間違えてたりとかありそうだけど、そのまま打ってるのなら問題なく動作するような・・んー?
0032nobodyさん2006/12/01(金) 01:23:47ID:???
>>27-28
サンキュー!ありがとね〜☆^^
0033242006/12/01(金) 18:04:24ID:???
>>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については、それ以前のようです。
どうしたものか・・・。
0034nobodyさん2006/12/01(金) 18:20:27ID:???
"ibase"でいけないか?
003524=332006/12/01(金) 23:38:28ID:???
>>34
ibaseでいけません。
dbo以下にあるファイルを探しに行くので、使えそうなのは
adodb,mssql,mysql,mysqli,odbc,postgres,sqliteとpearっぽいです。
dbo_ibase.phpも書けそうに思えますが、
後々のことを考えpearで使いたいのです。
0036nobodyさん2006/12/02(土) 04:38:50ID:???
ケーキって何ができるの?そこ教えてくれ。あとは自分で勉強するから。
0037nobodyさん2006/12/02(土) 07:30:12ID:???
>>36
今のお前に理解できる範囲のことができる(マジレス)
0038nobodyさん2006/12/02(土) 13:58:45ID:???
PHPでラーメン作れますか?
http://pc8.2ch.net/test/read.cgi/php/1133510693/
PHPで焼きそば作れますか? (28)
http://pc8.2ch.net/test/read.cgi/php/1164731497/
無理!!!

PHPでケーキ作れますか?
無理!!!
0039nobodyさん2006/12/02(土) 14:09:23ID:???
IBM CakePHP講座(英語だよ☆)
http://www-128.ibm.com/developerworks/edu/os-dw-os-php-cake1.html
004024=332006/12/02(土) 21:44:41ID:???
>>39
3.A supported database engine (currently MySQL, PostgreSQL or using a wrapper around ADODB).
pearは実装できていないんですね。他のフレームワークをあたります。
0041nobodyさん2006/12/02(土) 22:28:03ID:1bAtVRRj
DB接続は cakePHP と pear と何が違うの?
0042nobodyさん2006/12/03(日) 03:44:22ID:???
>>40
一応DataSourcesの中にはDBO_Pearってあるけど
まあちゃんと動くかわからんが
004324=33=402006/12/03(日) 19:42:04ID:???
>>42
はい、あることは分かったのですが、使い方が不明なんです。
0044nobodyさん2006/12/04(月) 11:00:42ID:???
ADODBの使い方調べればええんとちゃうの?
0045nobodyさん2006/12/04(月) 12:45:21ID:???
>>44
何を根拠に?
0046nobodyさん2006/12/04(月) 18:02:51ID:???
44ではないが、24はinterbase使いたいならADODBでいいのでは
ということでは
0047242006/12/05(火) 15:58:17ID:???
残念なご報告です。
■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"と"でくくらないといけません。
フィールド名も同じです。
そのため、チュートリアルは動作しないようです。
回避する方法もなさそうなので断念します。
0048nobodyさん2006/12/05(火) 20:41:54ID:???
>>47
cake_1.1.11.4064では、少なくともclass名はDboPearに直っている。
0049292006/12/07(木) 15:33:20ID:???
亀レス失礼します。
http://p4life.jp/cake/
のアプリケーションはphp4でうごきませんでしたが、
ブログ作成チュートリアル
http://www.cakephp.jp/doc/blog_tutorial.html
はphp4で動きました!
Controllerの書き方を考える必要があったようですね。
0050nobodyさん2006/12/12(火) 09:03:56ID:???
ちょっと教えてもらいたいんですが、
modelのJoinで同一テーブルに対してhasAndBelongsToManyの関連を
複数設定した時に、scaffoldで生成した更新画面の関連表示が一つしか
出てくれない状態になってしまいます。

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

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

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

ん〜、いいフレームワークだ。
0053nobodyさん2006/12/19(火) 17:04:45ID:???
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 = '';
}
?>
0054nobodyさん2006/12/19(火) 19:47:16ID:???
>>53
/app/webroot/admin/index.html
0055nobodyさん2006/12/19(火) 20:45:57ID:???
53じゃないが
>>54
なるほど!Cake admin使うときの静的ページはそっちに書くのか
0056532006/12/19(火) 23:57:58ID:???
>>54
おお、できた!
�dクス!
0057nobodyさん2007/01/11(木) 10:42:20ID:???
すいません!質問です。

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

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

環境は
XAMPP
cake1.1.12.4205
です。

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

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

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

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

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

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

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

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

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

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

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

>>74 の言うとおり enctype="multipart/form-data" がないに一票。
0076nobodyさん2007/02/26(月) 17:58:23ID:???
遅レスだが>>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'])

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

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

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

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

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

あとBakeryというのがいろいろコンポーネントやらチュートリアルやらをまとめてくれていて便利
http://bakery.cakephp.org/
0094nobodyさん2007/03/05(月) 18:53:07ID:5xyR9GqB
      ∩___∩
      | ノ  _,  ,_ ヽ         
     /  ●   ● |         
     |    ( _●_)  ミ _ (⌒)   
    彡、   |∪|  ノ        
⊂⌒ヽ /    ヽノ  ヽ /⌒つ     
  \ ヽ  /        ヽ /   
   \_,,ノ      |、_ノ   
0095nobodyさん2007/03/06(火) 22:58:14ID:???
かけぺっぷ
0096nobodyさん2007/03/07(水) 16:24:28ID:VDwNq8qV
もりあがってますね^^
0097nobodyさん2007/03/07(水) 16:32:50ID:???
生ものだけに痛むのも早かったか
0098nobodyさん2007/03/07(水) 17:30:19ID:???
不二家PHP
0099nobodyさん2007/03/07(水) 17:45:06ID:???
もうすぐsymfonyにTOBされます
0100nobodyさん2007/03/09(金) 12:47:31ID:GFS6POXv
なんでPHPのフレームワークって乱立してんの?
0101nobodyさん2007/03/09(金) 13:28:39ID:???
>>100
PHPしか言語を知らないんだね^^
0102nobodyさん2007/03/09(金) 13:31:48ID:GFS6POXv
>>101
Javaのこと言ってんの?
PHP対抗はRubyか.netでしょ
RubyにRailsと同等のシェアを持つフレームワークあるの?
0103nobodyさん2007/03/09(金) 13:50:50ID:???
ruby以外の言語は乱立してるだろ。今はJavaも含めてもね
0104nobodyさん2007/03/09(金) 13:52:37ID:???
>>102
>RubyにRailsと同等のシェアを持つフレームワークあるの?
rubyは他に何もないマイナー言語だから一極集中してるだけ。
それくらい普通に考えればわかるだろうに、>>100はかわいそうな子だなぁ
0105nobodyさん2007/03/09(金) 14:37:43ID:GFS6POXv
>>104
PHPでは訴求力のあるフレームワークが無いんだねっていう話
Javaは乱立してても有用なフレームワーク多いよ
皮肉とかわからないゆとり世代はかわいそうだね^^
0106nobodyさん2007/03/09(金) 14:45:13ID:???
Ruby on Rails単体の盛り上がり>>>越えられない壁>>>PHPフレームワーク全部の話題
0107nobodyさん2007/03/09(金) 18:06:17ID:???
乱立している理由なんてPHPが普及してるからじゃねーの としか言いようがない
0108nobodyさん2007/03/09(金) 18:12:06ID:???
Rails真似るなら完璧に真似ろよ。
所々それと違うところが多くてうざい。
っていうかRails使える無料サーバがあればいいや。
0109nobodyさん2007/03/10(土) 07:11:37ID:???
おいおいRailsヨイショしたいならこんな過疎スレじゃなくて本スレでやれよ(w
0110nobodyさん2007/03/10(土) 09:42:26ID:oMuhw0IR
>>108
Railsを超えることが目標なら
完璧に真似るのはデメリット。
0111nobodyさん2007/03/10(土) 10:26:35ID:???
Ruby on Railsの作者が、PHP on Railsを作ってくれるのが一番良い。
PHP on Rails > Symfony > Zend Framework
という構図になると思う
0112nobodyさん2007/03/10(土) 10:27:45ID:???
railsの作者って最初PHPで開発してて、こりゃダメだって思って、Rubyに切り替えたんじゃん。
0113nobodyさん2007/03/10(土) 14:52:15ID:???
>>112
それは知ってる。
だけど、PHP on Rails作ったら、使う人いるから創って欲しいということ。
PHP6くらいになって、PHPもまぁ使ってやってもいいかな?とDHHが思ってくれたらラッキー☆
0114nobodyさん2007/03/10(土) 16:31:35ID:???
しかしRubyという選択はすごいよな。
あんなジャップが作った過疎言語で挑戦するのは。
0115nobodyさん2007/03/11(日) 02:55:55ID:???
2chの人って、自分でジャップとかいうのが、かっこいいとか思ってんのかな。
0116nobodyさん2007/03/11(日) 05:54:09ID:???
かっこいいとは思ってねーだろw
0117nobodyさん2007/03/11(日) 10:07:04ID:???
少年ジャップでも読んで落ち着け
0118nobodyさん2007/03/11(日) 17:38:38ID:???
ダウンロードしようと思ったら404だった、、、
0119nobodyさん2007/03/12(月) 09:35:31ID:o+qmRSfV
チョッパリならかっこいいか?
0120nobodyさん2007/03/12(月) 15:51:45ID: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');
です。
どこが原因かどなたかおわかりになりますでしょうか?
よろしくお願いします。
0121nobodyさん2007/03/12(月) 17:04:11ID:???
$this->Prefectures
rails記法ならPrefectureでないかい?
モデルもPrefecture.phpの様だし
0122nobodyさん2007/03/12(月) 17:41:39ID: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を使わないとエラーなのはおかしいのでしょうか?
0123nobodyさん2007/03/12(月) 18:33:57ID:???
controllerからviewにどんな変数をセットしてるか分からんと答えられん
01241202007/03/14(水) 22:40:27ID:QrdB0vAL
以下のコードで解決しました。
$this->set('prefectures', $this->User->Prefecture->generateList());
User を間にはさんで set すればよいようですね。
でもこのやり方でよいかどうか疑問です。。。
http://groups.google.ch/group/cake-php/ で探しました。
どうもありがとうございました。
0125nobodyさん2007/03/18(日) 16:45:53ID:???
http://cakephp.seesaa.net/

この人なんでこんなgoogle trends気にしまくってるの?
ZFやsymfonyに比べてcakeのドキュメントは読みにくいから、
単に検索頻度が多いだけって気づかないんだろうか
0126nobodyさん2007/03/19(月) 15:56:58ID:???
>>125
あー。そういう考え方もあるね(苦笑)
0127nobodyさん2007/03/21(水) 18:05:49ID:???
これって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との微妙な違いにとまどう。
0128nobodyさん2007/04/02(月) 13:08:29ID:???
>>127
あーそれ俺もハマった。
まぁ理屈としてはわからなくもないんだけどなぁ
ドキュメントには書いてあったけど、同じケースの情報無かったよね?
頻出しそうな処理だと思うんだけどねえ。
それともみんな他のやり方で複数insertしてんのかなあ
0129nobodyさん2007/04/02(月) 16:46:26ID:???
mysqlのauto incrementみたいな感覚でpostgresも考えてましたが、
postgresでのシーケンスがなぜかうまく動作しないようなので
$this['data']['Hoge']['id'] = $this=>Hoge->getMaxId +1
してますがそれが何か
0130nobodyさん2007/04/02(月) 21:44:58ID:???
ちょっと質問。model中からアソシエーションの無い別のモデルを使いたいとき、どうしてる?
$hasAndBelongsToMany = array('そのクラス');
すれば出来なくはないが、(実際にはhabtmテーブルがないため)軽くSQLエラーが出てる。
model中で$usesは使えないみたいだし…
0131nobodyさん2007/04/12(木) 18:08:47ID:???
あっちのスレではCodeIgniterで盛り上がってるのにおまいらときたら
0132nobodyさん2007/04/12(木) 19:07:15ID:???
>>131
日本語情報が増えてきたからっていきなり出てくんな
0133nobodyさん2007/04/15(日) 04:00:43ID:???
フレームワークを勉強しようと思ってcakeのチュートリアルをやってるんだが
なかなか理解できん。。。
逆引きの解説とかないのだろうか?
0134nobodyさん2007/04/15(日) 12:41:51ID:???
>>133
そのためのGoogle
0135nobodyさん2007/04/15(日) 12:50:33ID:???
  \(^o^)/             \(^o^)/ Cakeオワタ
    )  )               ノ ノ
((((  > ̄ > )))) \(^o^)/ ((( < ̄< ))))
              )  )
         (((  > ̄ > ))))    code igniterハジマタ
0136nobodyさん2007/04/15(日) 13:09:30ID:???
  \(^o^)/             \(^o^)/ code igniterハジマタ
    )  )               ノ ノ
((((  > ̄ > )))) \(^o^)/ ((( < ̄< ))))
              )  )
         (((  > ̄ > ))))    code igniterオワタ
0137nobodyさん2007/04/15(日) 13:37:36ID:???
いやいや
あっちのスレでは確かにCI盛り上がってるけど、
CakeはCakeで用途に応じて使い分ける事になると思うぜ

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

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



0139nobodyさん2007/04/25(水) 02:48:53ID:???
>>138
始まって、そしてすぐ終わったという分かりやすい日本語情報以上に必要なものなんてあるか?
0140nobodyさん2007/04/25(水) 15:09:41ID:???
とりあえずAPIドキュメントをアルファベット順にしろと言いたい
0141nobodyさん2007/04/26(木) 18:41:50ID: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予定!



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

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

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

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

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

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


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

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

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

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

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

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 スタイルシートを使う
0183nobodyさん2007/05/11(金) 17:49:19ID:???
それかったよかったよ
0184nobodyさん2007/05/11(金) 19:38:19ID:???
> それ かったよ かったよ


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

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機能
0187nobodyさん2007/05/12(土) 15:27:41ID:???
書籍じゃねーのか。
http://www.phppro.jp/magazine/2007_winter.php#article5
0188nobodyさん2007/05/17(木) 18:27:26ID:???
オマイラcake話はないのか。

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

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

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

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

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

どれぐらいの量のタグを追加するのか、
将来的にも他のページで使う可能性はないのか、など。
0217nobodyさん2007/05/31(木) 16:33:59ID:???
エレメント使えばー?
0218nobodyさん2007/05/31(木) 18:08:22ID:9EiCBHk0
>>217
具体的にどういうことですか?
0219nobodyさん2007/05/31(木) 20:23:12ID:???
>>218
いやー、具体的にと言われても…
つーか、レイアウトにエレメント埋めて、そこで条件判別すればー?って話なんだけどさー。
0220nobodyさん2007/05/31(木) 20:45:45ID:???
エレメント内にロジックを埋め込むということ?
0221nobodyさん2007/05/31(木) 22:10:36ID:???
>>220
そう。
0222nobodyさん2007/06/02(土) 08:24:46ID:???
こうしてる。
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が読み込まれる。
0223nobodyさん2007/06/02(土) 11:18:32ID:???
なんか突然QuestHistory Felstoneが動かなくなってねぇか・・・
0224nobodyさん2007/06/02(土) 11:18:50ID:???
誤爆スマソ
0225かけphp2007/06/06(水) 11:42:57ID:i598mYRR
ども。
Cake使ってる人たちにお聞きしたいのですが、実際に使っている方にとってCakePHPって
どこまで満足して使えていると思いますか? CakePHPがあれば大抵のアプリは
簡単に構築できるようになるのかな。
0226nobodyさん2007/06/06(水) 11:46:51ID:???
HABTM以上の少し複雑な関係を扱うととたんに汚くせざるを得ない。
Paginationや認証もわざわざ自分で書く(持ってくる)必要があるから簡単とはいえない気がする。
bakeに類するものを使っても、対話式は非効率だし。
0227nobodyさん2007/06/12(火) 11:52:23ID:9MpyswiS
アソシエーションの使い方がわからん・・・
02282272007/06/12(火) 14:20:15ID:9MpyswiS
事故解決。

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

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

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

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

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

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

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

>>245
的を射てるか分からないけど
コントローラ側で$this->dataに代入するしないを分岐するだけでいいんじゃないかな
0248nobodyさん2007/06/18(月) 23:44:54ID:???
おまいら日本語のバリデーションってどうしてる?
デフォのvalidatorってpreg系なので、UTFなら日本語自体は通るが、
「ひらがなのみOK」とかってできなくね?
ということで結局mb_ereg系のバリデータ書いちゃったよ。これでええのんか・・・?
0249nobodyさん2007/06/19(火) 00:13:11ID:???
>>248
UTF-8なら、u修飾子つかえばOK
var_dump(preg_match('/^[ぁ-ん]+$/u', 'あいうえお'));
var_dump(preg_match('/^[ぁ-ん]+$/u', '漢字かな交じり'));
0250nobodyさん2007/06/19(火) 10:11:25ID:???
>>249
なるほどサンクス!
02512452007/06/19(火) 11:37:07ID: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の数だけ直前に記述しているんですが、こんな感じでやるしかないんでしょうかね?
かなりビューがみにくくなっちゃいますが・・・
みなさんならどうしますでしょうか、助言おねがいします。
0252nobodyさん2007/06/19(火) 12:44:17ID:???
長々書いてるけど、単に連想配列をループで書き換えるってだけだろ。
Set::merge使えばおわりじゃん。
0253nobodyさん2007/06/19(火) 14:07:17ID:???
>>251
お前バカだからもう来るなよ。
せっかくレスしてくれた>>246-247も読んでないじゃん
0254nobodyさん2007/06/19(火) 15:23:37ID:???
>>>253
お前より賢いよw
0255nobodyさん2007/06/19(火) 15:29:42ID:???
釣り堀
0256nobodyさん2007/06/19(火) 16:10:22ID:???
こういうのどう思いますか?

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

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

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

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

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

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

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

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

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

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

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

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

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

こんな感じのを想像していて、
$m(コントローラで使いたいモデル)をあとで変更できるようにしたいのです。
$this->Item->findAll()みたいな、モデルを使うところがたくさんあるので、
継承したあとに、var $mだけ書き換えれば、違うテーブルを使えるようになったらいいかなぁと思ったんですが。。。
get_object_varsではできませんでした。
0268nobodyさん2007/06/20(水) 16:31:30ID:???
>>267
PHPやめてRubyにしなよ。
みんなもっと親切だぜ?
0269nobodyさん2007/06/20(水) 16:59:59ID:zjQXSfAj
開発してるときはRailsのほうがいいんだけどな。
本番環境に移行するとなると、いろいろとめんどくさいんだよな。
0270nobodyさん2007/06/20(水) 17:58:58ID:???
>>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();
0271nobodyさん2007/06/20(水) 18:07:04ID:???
>>261
>DB板(ドラゴンボール板)に行け、そして戻ってくるな
>つうか、初心者増えたのか?cake界は

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

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

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

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

>レベル低っ・・・・フレームワーク使う前に、ほかにやることありそう
0321nobodyさん2007/06/30(土) 00:36:03ID:???
>>319
君におススメ!
http://www.amazon.co.jp/Ethna%C3%97PHP-LL%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFBooks-%E8%97%A4%E6%9C%AC-%E7%9C%9F%E6%A8%B9-%E4%B8%80%E4%BA%95/dp/4774131393/ref=pd_bbs_sr_1/249-9902260-8715545?ie=UTF8&s=books&qid=1182839405&sr=8-1
0322nobodyさん2007/06/30(土) 01:20:18ID:???
>>317はウェブの仕組みを勉強した方がいいだろ
0323nobodyさん2007/06/30(土) 02:06:58ID:???
>>317の人気に嫉妬
0324nobodyさん2007/07/02(月) 15:09:11ID:???
>>320-322
ん?ビューからwebroot以外にはアクセスできないだろ
0325nobodyさん2007/07/02(月) 20:59:09ID:???
レベル低いの上塗り乙
0326nobodyさん2007/07/02(月) 21:51:21ID:???
cakeの使用感が知りたくて来ましたがこのスレは何の参考にもなりませんでした。
本当に有難うございました。
0327nobodyさん2007/07/03(火) 11:48:07ID:???
なんで技術系のスレってキモいやつが多いんだろうね。
レベルが低かろうがほっとけばいいのに。
0328nobodyさん2007/07/03(火) 12:21:28ID:???
と、一言書くやつのほうがきもいなw
0329nobodyさん2007/07/03(火) 13:41:23ID:8i5o6UCU
セッションの値によって管理者用のメニューの表示・非表示を切り替えるような処理って、>196みたいに手動でセッションをセットするもんですか?
0330nobodyさん2007/07/03(火) 14:06:51ID:???
場合によるだろ。それだけでは分からん。

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

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

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

>330
有難うございます
0334nobodyさん2007/07/04(水) 05:14:32ID:gN4ff124
アクションの中で
var_dump($_COOKIE);
としても全部のクッキーが表示されないのはCakePHP1.1のせい?なんかやってる?
0335nobodyさん2007/07/04(水) 10:10:25ID:???
クッキーをセットする時のパスが間違ってるとかじゃないのか。
Cake通さなければ普通に表示される?
0336nobodyさん2007/07/04(水) 21:48:23ID:???
Rhino on Railsってどうよ
0337nobodyさん2007/07/04(水) 22:10:12ID:???
ttp://www.aoky.net/articles/steve_yegge/rhino-on-rails.htm
これか?読んでないんだが、一言で言うと何?
0338nobodyさん2007/07/05(木) 00:53:35ID:???
そもそもJavaScriptのクロージャに悩まされる俺にはムリ
0339nobodyさん2007/07/05(木) 01:17:46ID:K+ZRu43A
>>334は>>335でした
さんきゅー
0340nobodyさん2007/07/05(木) 04:42:53ID:???
CakeのRSSヘルパーってないの??
0341nobodyさん2007/07/05(木) 09:02:47ID:???
探してから言え
0342nobodyさん2007/07/05(木) 17:37:10ID:???
一応ヘルパーみていったんだがあるのか
0343nobodyさん2007/07/05(木) 19:23:19ID:???
だから公式で探してから言えよ
0344nobodyさん2007/07/05(木) 21:33:11ID:???
つか、layoutとviewだけでRSSなら吐けるんじゃ・・
layoutの方で頭にRSS用のヘッダ吐くようにして。
03453442007/07/05(木) 21:33:49ID:???
その辺は昔CheeseCake PhotoBlogを参考にしていろいろやってた
0346nobodyさん2007/07/06(金) 04:07:26ID:???
いやな、rssは出力したんよ。ただrssのurlをheadにかくじゃん?あれをhtmlヘルパーみたいなのでかきたかったのよ。ヘルパーのヘルプみてもみあたらなかったからさ
0347nobodyさん2007/07/06(金) 10:06:30ID:???
>>346
わかりにくっ。link要素のことか。
1.1観た限りでは無さげ
0348nobodyさん2007/07/06(金) 10:41:52ID:???
rss出力自体をさすがにヘルパーで出せないだろと思ってたからヘルパー使う=リンクみたいな前提があっちゃったのよ。一個前のレスで確かにわかりづらいなとオモタよ!
0349nobodyさん2007/07/06(金) 14:15:24ID:???
みなさん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的に合理的な方法があるはず!と思ってますが
ヒントだけでも誰か教えてください。
0350nobodyさん2007/07/06(金) 14:24:20ID:???
MySQLなので空文字放り込んでも0000-00-00になるからあんまり気にしてなかったなあ
0351nobodyさん2007/07/06(金) 15:05:44ID:???
自己解決しました。
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かける前に
いずれかが空白(未選択)なら確認画面に戻す処理を書き加えても良いだけだし。


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

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

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

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

0360nobodyさん2007/07/07(土) 18:54:40ID:???
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の配列キーが使える。

 
0361nobodyさん2007/07/08(日) 21:18:20ID:???
ttp://cakephp.xrea.jp/?p=21
ここ参考にして、ブログにコメント機能を実装してみたのですが。
一覧表示で、記事ごとにコメント数を表示させていて、
この方は記事についているコメントをcount関数を使っているみたいなんですが、
この方も言われているようにスマートではないと思うんです。
おそらくfindCountを使うんだと思いますが、どう書いたらいいか考えても思いつきません。
どなたかアドバイスいただけませんか。
0362nobodyさん2007/07/09(月) 03:25:38ID:+2G34Por
コントローラーでの$this->flash('message','action',0)って使ってる?
数秒メッセージを表示してリダイレクトって気持ち悪いので普通に$this->redirectでリダイレクトしてます。
なんか便利な使い方があるんでしょうか?
0363nobodyさん2007/07/09(月) 04:31:27ID:???
ニーズによる
0364nobodyさん2007/07/09(月) 08:16:45ID:???
>>362
リロード対策だっけ
あと開発中は実行SQLをそのページでさっと確認できるし
0365nobodyさん2007/07/09(月) 08:44:28ID: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を配置しています
何が不足しているのでしょうか?
0366nobodyさん2007/07/09(月) 09:03:09ID:???
var $name = 'Tests';
が必要かも。
03673652007/07/09(月) 10:39:41ID:???
それを加えても変わらずです
0368nobodyさん2007/07/09(月) 12:59:15ID:???
もちろんモデル作ってるんだろうな
0369nobodyさん2007/07/09(月) 14:11:10ID:???
>>366
$name がいるのはモデルだろう。
0370nobodyさん2007/07/09(月) 14:22:07ID:???
質問する奴も回答する奴も酷いな
0371nobodyさん2007/07/09(月) 14:35:38ID:???
このスレには批判しかできないやつが住み込んでるみたいだなw
0372nobodyさん2007/07/09(月) 14:39:41ID:???
>このスレには批判しかできないやつが住み込んでるみたいだなw

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

後者のメリットとして、pageテーブルにはよく見るであろう最新データのみが
入っているため、履歴も含めてすべて同じテーブルに入っている前者よりも負荷が少なそう。
0413nobodyさん2007/07/12(木) 23:37:35ID:???
おれなら後者
0414nobodyさん2007/07/13(金) 10:06:11ID:???
これが正解ではないが、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語るのもいいかもね。
0415nobodyさん2007/07/13(金) 17:50:45ID:j8+9kyhU
1.1.16.5421リリース今更発見あげ
0416nobodyさん2007/07/17(火) 11:51:36ID:c9LkXXMo
まったくの初心者で、そもそもデバックをどうしたらよいかわからないのです。モデルとコントローラーとビューを作ったけれど何が悪くて画面が真っ白なのか?エラーも表示されていない、どこが悪いかどうやって調べたらよいか教えてくれる方おりませんか?すみません。
0417nobodyさん2007/07/17(火) 12:09:35ID:???
>>416
そのレベルの人は身近に教えてくれる人を見つけることが先決。

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Smartyを使わないですむ

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

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

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

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

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


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

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

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

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

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

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

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

みたいな感じ。

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

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

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

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

以上です。編集長。
0518nobodyさん2007/08/08(水) 23:31:23ID:???
>>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系のバリデーションを使う、とかに
引っ掛かったけどそれらしき事は掲載されてなかったなぁ。
0519nobodyさん2007/08/09(木) 00:25:35ID:???
「すべて」だったらapp_controller の beforeFilter か beforeRender あたりをあたると嬉しいことがあるかもと横レス
だめだ記憶が曖昧だ
0520ディアルガvsパルキアvsダークライ!2007/08/09(木) 11:19:54ID: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に組み込んでますけど。
0521nobodyさん2007/08/09(木) 21:56:58ID:???
>>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のままですた。
何か他にいい方法、もしくは打開策があればよろしくです。
0522nobodyさん2007/08/09(木) 22:59:14ID:???
Getqueryモデル作って
$this->Getquery->validates(ry
0523nobodyさん2007/08/10(金) 09:12:34ID:???
Cakeでモデルからビューへ直接、データを送るとかってのは無理かな?


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

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

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

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

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

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

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

以下、app_controllerにて

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

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

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


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

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

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

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

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

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

【PHP】フレームワーク Akelos
http://pc11.2ch.net/test/read.cgi/php/1187333485/l50
0555nobodyさん2007/08/17(金) 21:27:42ID: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ではこれが
標準でサポート、もしくは簡単に実装できるような仕組みになっているのでしょうか?
0556nobodyさん2007/08/17(金) 21:39:14ID:???
自分でドキュメント読んでから質問しろ
0557nobodyさん2007/08/17(金) 21:53:07ID:???
読みましたが、どこにSSLについて書いてあるんですか?
0558nobodyさん2007/08/17(金) 22:10:36ID:???
読んで分からないのかww
0559nobodyさん2007/08/17(金) 22:12:06ID:???
要件によるだろ。
なんでもいいから簡単に実現したいなら
サイト全体をSSLでしかアクセスできないようにすればいい。
0560nobodyさん2007/08/17(金) 22:19:36ID:???
>>559
サイト全体がSSLになっているオンラインショップは皆無。
そういう、ありえない解決策は、提案しても意味がない。
0561nobodyさん2007/08/17(金) 22:20:38ID:???
>>558
書いていないので、わからなくても普通。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

これで作成されるSQLを確認すると、テーブルCがJOINされていないようです。
0646nobodyさん2007/08/29(水) 16:10:52ID:???
聞く前に自分で調べろ
0647nobodyさん2007/08/29(水) 16:37:13ID:???
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ページ
0648nobodyさん2007/08/29(水) 16:38:25ID:???
つづき

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

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

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

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

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

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

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

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

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

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

何かツッコミあったらお願いします
0652nobodyさん2007/08/31(金) 18:22:39ID: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): ?>

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

こんな感じで、内容はチュートリアルのに追記して、実験をしています。
よろしくおねがいします。
0656nobodyさん2007/08/31(金) 20:18:39ID:???
とりあえずrenderを最後に呼べ
06576522007/08/31(金) 20:40:55ID:???
>>656 ありがとうございます。 あっさりできますた
0658nobodyさん2007/09/04(火) 11:58:33ID:???
こういうユーザー情報テーブルが合ったとしてさ、
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を送り込んでくることもあるから
そこら辺のチェックも必要だよな・・・。
0659nobodyさん2007/09/04(火) 12:56:26ID:???
作り方によるだろ。
その画面で必要な項目だけをdataにひとつずつ入れてsaveするように書けば
それ以外の項目は修正できないし。
0660nobodyさん2007/09/04(火) 12:59:46ID:???
ヒント:save()の第3引数はホワイトリスト
0661nobodyさん2007/09/04(火) 13:41:52ID:???
>>659
そりゃそうなんだけど、bakeでできるのがこういうコードだし。

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

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

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

PEARのMDB2ならそういう操作を抽象化した
モジュールがあるのでその要件は満たせると思う
cakeは使ってないので知らん
0664nobodyさん2007/09/04(火) 15:35:07ID:???
聞く前にAPIを自分で調べろ

http://api.cakephp.org/class_model.html#9da1765e8d0756853d5e66b5c4e18159
0665nobodyさん2007/09/04(火) 16:44:44ID:???
>>663
> CRUDのSQL+カラム情報取得以外の
> DBのschema操作まで抽象化したライブラリってのはあまりない
でもbake.phpでは、データベースで定義されたテーブル情報から
どのテーブルのModelを作成しますか?って聞くわけで
方法あると思うんだけど。

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

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

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

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

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

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

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

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

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

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

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

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

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

form.phpのソースコードみた? 単純に引数に対するタグを出力してるだけじゃなく、
データベース情報を参照していろいろやってるから把握するのに時間かかるし。
0678nobodyさん2007/09/06(木) 08:50:46ID:???
誰でも電話は使えますよ!
0679名無しさん@Vim%Chalice2007/09/06(木) 11:45:44ID: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で空白が選べるようになる

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

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

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

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

inputのドキュメントって無いのかな?
0683nobodyさん2007/09/06(木) 12:24:42ID:???
じゃあ俺も、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
0684nobodyさん2007/09/06(木) 14:05:16ID:???
>>674
ワロタ。
オブ脳になるまではチンプンカンプンだよな。
0685nobodyさん2007/09/06(木) 14:29:19ID:???
まぁまぁ、そんなことよりFormHelperの詳細な使い方を書こうぜ!
0686nobodyさん2007/09/06(木) 16:08:21ID:???
<?= $html->formTag('') ?>
0687名無しさん@Vim%Chalice2007/09/06(木) 16:34:40ID:???
そういえば第一引数で
$form->input('field')と
$form->input('Model/field')と
$form->input('Model.field')の
大体3種類の書き方があるよな?

そんで、CakePHPは今後ドット区切り(3番目の書き方)へ
移行するって記事をどっかで見たような気がしたんだけど
ソース持ってる人いる?
0688名無しさん@Vim%Chalice2007/09/06(木) 16:41:49ID:???
ぐぐったら一発だったorz
http://cakebaker.42dh.com/2007/03/19/modelfield-has-been-deprecated/
0689nobodyさん2007/09/06(木) 17:08:13ID:???
>>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ページに飛ぶリンクを
工夫しないといけないし。
0690nobodyさん2007/09/07(金) 08:58:58ID:???
>>689
なんと、thx

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

検索語[   ]  [検索]

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

/posts/?search=aaa

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

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

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

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

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


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

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

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

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

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

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

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

さすがは a 版。

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

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

同意

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

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

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

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

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

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

だな

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

ちょっとリセットして。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>業務用の社内システム作ってるから、
>Controllerのやる事は割とあるんよね (社内事情
なるへそ。その状況想像したら分離したくなる気持ちはわかったよ。
0809nobodyさん2007/09/29(土) 11:44:45ID:???
>>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にコードが入っていたら結局同じことでしょ?

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

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

>>810
beforeRenderをコントローラー内じゃなくて
何か別のクラスに分離したいよね。
まあ自作してもいいけどね。
0812nobodyさん2007/10/03(水) 20:59:09ID:???
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
0813nobodyさん2007/10/03(水) 21:39:13ID:???
憶測だけどFormヘルパーが$this->controller->dataを参照してるんじゃまいか
0814nobodyさん2007/10/03(水) 21:57:16ID:???
>>813
たぶん、そうなんだろうけど、直接読むところじゃないよな。
controller->dataはPOSTしたときのデータ専用に使っとくれ。

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

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

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

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

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

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

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

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

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

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

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

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

class AppController extends Controller {
function hoge {
}
}

class FooController extends AppController {
}

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

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

訂正…

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

どうもです m__m

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

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

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

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


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

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

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

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

だれか、EmailComponent使っているのだろうか・・・
0860nobodyさん2007/10/18(木) 16:12:14ID: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が空になる…
0861nobodyさん2007/10/18(木) 16:14:06ID:???
すまん、間違えた。

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


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

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

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

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

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

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

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

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

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

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

所でテーブルが無いとモデルとかコントローラとか作れないでしょうか?
0872nobodyさん2007/10/18(木) 18:02:46ID:???
http://gihyo.jp/dev/serial/01/cakephp

これ嫁。
0873nobodyさん2007/10/18(木) 18:04:36ID:???
>>871
作れるよ。

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

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

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

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

すまそ 自己レス

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

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

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

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

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

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

バグだろ? 早く公式で組み込まれないかな・・・
0894nobodyさん2007/10/24(水) 02:28:23ID:???
>>887
.htaccessをそれっぽく書き換える
0895nobodyさん2007/10/25(木) 00:35:51ID:???
同じRailsライクのPHPフレームワークで、symfony、 php on trax 、codeIgniterあたりを実際に使って比較したひといる?とくにtraxとの比較が知りたい
0896nobodyさん2007/10/25(木) 01:04:02ID:???
今日は 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;を追加したら動いた。まあこれは大元が悪い気がするが。

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

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

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

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

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

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

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

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

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

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

actionが以前、admin_indexだったかどうかは忘れたが
これからはこれなのだろう。
09099072007/10/26(金) 12:15:32ID:???
/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 は
こまかいバグがおおいなぁ。
0910nobodyさん2007/10/26(金) 13:20:41ID:???
>>909
cakeは全体的にパラメータの受け渡し関係はおかしいよね。
数字なのにわざわざ文字列型に直されていたり…
0911nobodyさん2007/10/26(金) 19:16:41ID:???
checkboxって
array('checked'=>($data['Pic_resize']?'checked':null),'value'=>1)
とかにしてパラメータ渡さんとだめなん?
0912nobodyさん2007/10/27(土) 00:05:03ID:???
どういういみだ。生書きできないかということか?
0913nobodyさん2007/10/27(土) 21:04:01ID:euGofwdi
http://ihc.mydisk.jp/
0914nobodyさん2007/10/28(日) 00:56:30ID:agDkXCq3
複数のCakePHPアプリでログイン情報を共有させるいい方法ないのかなあ…
1つのアプリにまとめると、コントローラ名なんかがかぶるから長い名前になってしまう…
0915nobodyさん2007/10/28(日) 12:02:53ID:???
CakePHPだとGDの扱いも簡単にかけるの?
0916nobodyさん2007/10/28(日) 12:36:40ID:???
GDがなんか難しいのか?

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

フレームワークとはそういうもん。
0917nobodyさん2007/10/28(日) 13:52:19ID:???
>>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のはずだよね?
0918nobodyさん2007/10/28(日) 14:24:34ID:???
>>917

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

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

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

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

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

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

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

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

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

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

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

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

だから、俺は環境設定のPATHに、/cake/consoleを追加している。
0935nobodyさん2007/10/29(月) 14:18:29ID:???
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が
設定できなくなった。
0936nobodyさん2007/10/29(月) 14:53:23ID:???
>>935
'url' => array('controller'=>'comment', 'action'=>'add')
とかoptionsに入れればいいんじゃないの?
それでダメと言う話?
0937nobodyさん2007/10/29(月) 16:33:09ID:???
>>936
あー、optionsをそう書くのか。
前は
$form->create('Comment', array('action'=>'add'))
でいけてたはずなんだけど。
0938nobodyさん2007/10/30(火) 00:17:43ID:???
>>934

さんくす。

php cake/console/cake.php bake

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

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

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

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

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

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

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

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

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

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

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

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

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

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

「情報を保存する」オプションを有効にする(CakePHP修行 #34) | IDEA*IDEA
http://www.ideaxidea.com/archives/2007/07/cakephp_34.html
これを見ると、
usersテーブルに、ユーザーごとのhashを保存
↓
ログイン時に「保持する」にチェックが入っていたら、hash値をcookie発行
↓
ログインチェック時にcookieを見てhash値があったら、それでログイン。
って感じの処理をやっているんだけど。
なんでこんなことをやっているのかわからない。

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

>>981
sid更新ごとにcookie発行すれば大丈夫のような。
どこか違うPCからログインした場合は再ログインが必要になるけど、
>>972みたいな固定値でやるよりよっぽどいい気がする。
09859822007/11/10(土) 17:13:00ID:rF2PTWzY?2BP(0)
983>>
情報提供ありがとうございます。
mediumに設定しましたが、状況かわらずでした。
困りました・・
0986nobodyさん2007/11/10(土) 20:29:07ID:???
とりあえず、まっさらな状態の
Cakeを動かして同じ現象が起こるかレポしてくれ
0987nobodyさん2007/11/11(日) 10:03:47ID:???
Sleipnirの設定がクッキーOFFになってんじゃね
レス数が950を超えています。1000を超えると書き込みができなくなります。