【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/
0852nobodyさん
2007/10/18(木) 02:15:22ID:???0853nobodyさん
2007/10/18(木) 08:53:55ID:???>>852
どうもです m__m
_とかつけるとアクションとしては呼ばれないんですかね?
がんばって調べてみます
0854nobodyさん
2007/10/18(木) 14:39:39ID:???$html->file('Sample/pic');
でアップロードしたんですけど、$this->data['Sample']の中には
ファイル名しかない・・・
$this->dataの中をprint_rで見ても、tmp_nameとか入って無いんですが。
これって何か設定しないと駄目なこことかありますか?
0855nobodyさん
2007/10/18(木) 15:13:11ID:???move_uploaded_file()とか普通に使え
0856nobodyさん
2007/10/18(木) 15:17:15ID:???formにenctype入れるの忘れてました。
テヘ
0857nobodyさん
2007/10/18(木) 15:33:11ID:Tkva8LEl改行を改行コードつまり"\r\n"ではなく、'\n' で
記述するのは仕様なのか?
コード読むと、__stripで改行コードさくっと消していたり、
$message = str_replace(array('\r','\n'), '\n', $message);
というコードがあったりするんだが・・・
あとメールの仕様って改行コードは文字コードとしての\r\nでいいの?
0858nobodyさん
2007/10/18(木) 15:43:49ID:Tkva8LElhttps://trac.cakephp.org/ticket/3381
バグでいいんだよな?
コアを修正するとあとで面倒なんだよな。
0859nobodyさん
2007/10/18(木) 16:06:31ID:???改行削除しているのは、__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:???いまいち何がやりたいのかよくわからないけど、
>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使いましょう。
> セッション initialized = false のとき(最初)
> 1. $filename = 'hoge'; で $filename にファイル名が入る
>
> セッション initialized = true のとき(2回目以降)
> 1. $filename にはすでにファイル名が入ってる(はずだと思うんだけど…)
って言ってるのと同じだと思うんだけど。
DBなりクッキーなりセッションなりに記憶しないと、変数のデータは
ページ出力と同時に全て消えるよ。
0866nobodyさん
2007/10/18(木) 16:58:29ID:???>ページ出力と同時に全て消えるよ。
そうなのかあ
普通の感覚でやってたので混乱した…
ありがとう!
DBを使わないものなので、セッションにでも保存することにします >_<
0867nobodyさん
2007/10/18(木) 17:02:24ID:???こういうのもDBでやるもんですかね。
0868nobodyさん
2007/10/18(木) 17:05:05ID:???ttp://cakephp.jp/modules/newbb/viewtopic.php?topic_id=754&forum=3
こういうのでは?
0869nobodyさん
2007/10/18(木) 17:17:12ID:???俺はDBでやってるよ。
・・・でも読み込み重いかもなんておもちゃって
ファイルにキャッシュする機能つけちゃったけどなw
save時に全データをファイルにキャッシュ。通常はファイルから読み込み。
DBにした理由は、設定画面を作るのが面倒だったから。
0870nobodyさん
2007/10/18(木) 17:42:09ID:XZqNQY+Z0871nobodyさん
2007/10/18(木) 18:00:34ID:???どうも。DBにしといたほうが無難っぽいすな。
所でテーブルが無いとモデルとかコントローラとか作れないでしょうか?
0872nobodyさん
2007/10/18(木) 18:02:46ID:???これ嫁。
0874nobodyさん
2007/10/18(木) 22:21:39ID:???セッションがうまく読み込めないんだけどバグ?仕様?
もちろんリダイレクト前に、コントーラAでセッションに保存してるし
コントローラBではセッションの読み込みをしている
読み込めないというより、コントローラAで保存ができないのか?
謎すぎる…
$this->redirectはroutes.phpの設定無視されるのか?
0875nobodyさん
2007/10/18(木) 22:23:34ID:???すまそ 自己レス
beforeRenderでセッション保存してたのがいけなかったみたい
保存前にリダイレクトしてたってことか orz
0876nobodyさん
2007/10/18(木) 23:26:42ID:???少し慣れてくると使うのが楽しくなってくるね ヽ(゚∀゚)ノ
0878871
2007/10/19(金) 07:26:08ID:???これ書き込みは出来ても読み込みはどうすればいいんでしょうか?
0879nobodyさん
2007/10/19(金) 17:21:16ID:???0880nobodyさん
2007/10/21(日) 09:03:30ID:???もうちょういでCake本が出るなぁ
みんな買うの?
0881nobodyさん
2007/10/21(日) 11:00:36ID:???アフィうぜえ。
通報しておいた。
http://www.amazon.co.jp/exec/obidos/ASIN/4839924317/
0883nobodyさん
2007/10/21(日) 17:33:03ID:???0884nobodyさん
2007/10/21(日) 21:00:01ID:???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:???どうすればいいんでしょうか?
後プログラマに依存しないで静的ページを追加していく方法とかありますか?
0888nobodyさん
2007/10/22(月) 12:53:18ID:???適当なディレクトリにインストールすれ
静的ページの定義がわからんが、単にファイルとして設置もできるし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:???0893nobodyさん
2007/10/23(火) 22:15:53ID:???でもこれが組み込まれていないorz
afterFind not called on associated Model Behaviours - diff attached
https://trac.cakephp.org/ticket/2056
バグだろ? 早く公式で組み込まれないかな・・・
0895nobodyさん
2007/10/25(木) 00:35:51ID:???0896nobodyさん
2007/10/25(木) 01:04:02ID:???わかっていたことだけど、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:???cakeコマンドの検索パスから、
/app/vendors/shells が無くなった?
/venders/shellsに変えればいいだけなんだが、
1.2.0.5875pre-betaでもパスは残っているしこれはバグだろうか?
0898897
2007/10/25(木) 13:06:00ID:???今までは、/cake/consoleに移動して、cakeコマンドを実行していたのだが、
それでは/app/venders/shells/を見てくれなくなって
/app で実行したら見てくれた。
これは、デフォルトの動作で、-app 引数で見るパスは変更可能。
0899nobodyさん
2007/10/25(木) 15:21:22ID:QUb8umf5わかっていたことだけど、alpha版に手を出すと面倒だねw
同感。ちなみに、まだ本屋いってないけど本でたかな。
cakephpの新しい本。早く読みたい。
0900nobodyさん
2007/10/25(木) 16:10:51ID:???0902nobodyさん
2007/10/25(木) 20:40:27ID:???面倒は面倒だが、書いてある文章よりかは面倒じゃないぞw
比較的マイナーなことをしているからそうなるわけで、
ほとんどの人はすんなり移行できるんじゃないかな?
>>900
> 1.1でつくってて本当によかった
それはそれで、1.2へ移行するときに面倒なことが・・・
結構かわっているしね。formヘルパーとかPaginationとか。
俺は、EmailComponentとユーザー関数によるValidationと
Behaviorと名前つきURLパラメータとか使っているから
1.2じゃないともう無理。
0903901
2007/10/26(金) 00:12:57ID:???俺もEmailComponent、Validationの二つが決定的で1.2を使ってる。
1.1からだとhtmlとformヘルパー周りの変更は確かにめんどくさそうだね。
0905nobodyさん
2007/10/26(金) 11:30:28ID:???0906nobodyさん
2007/10/26(金) 11:31:00ID:???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 になっているような・・・。
仕様変更? それともなんか設定不足かなにかかな?
0908907
2007/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だったかどうかは忘れたが
これからはこれなのだろう。
0909907
2007/10/26(金) 12:15:32ID:???これでアクセスしたときは、
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 は
こまかいバグがおおいなぁ。
0911nobodyさん
2007/10/26(金) 19:16:41ID:???array('checked'=>($data['Pic_resize']?'checked':null),'value'=>1)
とかにしてパラメータ渡さんとだめなん?
0912nobodyさん
2007/10/27(土) 00:05:03ID:???0913nobodyさん
2007/10/27(土) 21:04:01ID:euGofwdi0914nobodyさん
2007/10/28(日) 00:56:30ID:agDkXCq31つのアプリにまとめると、コントローラ名なんかがかぶるから長い名前になってしまう…
0915nobodyさん
2007/10/28(日) 12:02:53ID:???0916nobodyさん
2007/10/28(日) 12:36:40ID:???それはいいとして、GDの命令自体は同じ。
GDを含んでいるアプリ全体は簡単に書ける。
フレームワークとはそういうもん。
0917nobodyさん
2007/10/28(日) 13:52:19ID:???そんなにコントローラー名かぶらないと思うけどなあ…
このへん参考にしたら?
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:???ありがとう
やっぱりセッション周りいじるのが一番簡単なのかな
コントローラ名がかぶるのはCakePHPの規約に合わせてつくってるから…
(モデルごとにコントローラ作るから)
規約に合わせないで、1つのコントローラでいくつかのモデルをまとめて扱えばいいのかな
今、気づいた orz
0919nobodyさん
2007/10/28(日) 15:09:09ID:???自分もpre-betaに移行してみたよ。
修正が必要だったのは
>おかげで、DEBUG定数を見ているコードを修正する必要がある。
ここだけ。
defineはconfig.phpと関係ない定数だけで使うようにってことなのかね。
0920nobodyさん
2007/10/28(日) 15:16:07ID:???よく知らないんだが規約ではモデルごとにコントローラーを作るのを求められてるの?
コントローラーは、ユーザーが何かしらの行動をしたときに動作を振り分けるものだから、
たとえばアクセスログをDBに記録する場合には、モデルだけ必要でコントローラーは
必要ないと思うんだが。
0921nobodyさん
2007/10/28(日) 15:18:18ID:???0922nobodyさん
2007/10/28(日) 15:26:23ID:???あれ、別に作らなくてもいいんだっけ?
一応、規約だとモデル・コントローラ・ビュー全て一式そろえないといけないことになってたかと思った
(もちろん、$Useとか$UseTableとかで変えられるけど)
掲示板とかのカテゴリ用のテーブル作って、CategoryControllerも作ってたんだけど、
さすがになんか変だなあ、と思って、
別にコントローラのないモデルもあるよなあと気づいた…。
小物は規約に従っててもいいけど、少し変わったもの作るとなると自分で調整したほうがいいみたいね
0923nobodyさん
2007/10/28(日) 15:27:08ID:???趣味でやってるけど書き直そうとしてる
でもDB使ってないサイトなので、あんまり意味ないかもw
楽だなあ、とは思った
0924nobodyさん
2007/10/28(日) 15:29:53ID:???0925nobodyさん
2007/10/28(日) 15:30:43ID:???0926nobodyさん
2007/10/28(日) 16:01:28ID:???0928nobodyさん
2007/10/28(日) 16:54:10ID:???http://www.google.com/search?num=50&hl=ja&q=%22*+queries+took+*+ms%22&lr=lang_ja
これ既出?
0930nobodyさん
2007/10/28(日) 22:46:21ID:???0931nobodyさん
2007/10/28(日) 22:49:07ID:???ピンポーン
0933nobodyさん
2007/10/28(日) 23:09:53ID:???1.2 pre-betaにしてからbake.phpの場所が変わっていたので cake/console/libs で php bake.phpをしても何も表示されません。
ほかに何か変更になったんでしょうか?
0934nobodyさん
2007/10/29(月) 02:13:31ID:???cakeコマンド自体は、/cake/consoleにあるが、
実行する場所は、/app にいることが想定されていると思う。
なぜなら、なんのオプションもつけずに、/app/venders/shells/に作った
独自のスクリプトを読むためにはここにいなければいけないから。
だから、俺は環境設定のPATHに、/cake/consoleを追加している。
0935nobodyさん
2007/10/29(月) 14:18:29ID:???なぜか知らんが、$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:???'url' => array('controller'=>'comment', 'action'=>'add')
とかoptionsに入れればいいんじゃないの?
それでダメと言う話?
0937nobodyさん
2007/10/29(月) 16:33:09ID:???あー、optionsをそう書くのか。
前は
$form->create('Comment', array('action'=>'add'))
でいけてたはずなんだけど。
0939nobodyさん
2007/10/30(火) 00:46:08ID:???0940nobodyさん
2007/10/31(水) 00:16:45ID:???pre-betaも出たし、なんかタイミング悪い。
これなら前に出たPHPフレームワーク本の方がいいかも。
購入は1.2に改訂されるまで待ちかな。
0941nobodyさん
2007/10/31(水) 02:13:47ID:???0942nobodyさん
2007/10/31(水) 16:03:44ID:???0943nobodyさん
2007/10/31(水) 17:07:27ID:y/Xrur+hcakephp1.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:???0948nobodyさん
2007/11/01(木) 00:36:06ID:???0949nobodyさん
2007/11/01(木) 01:32:04ID:???0950nobodyさん
2007/11/01(木) 03:19:40ID:???0951nobodyさん
2007/11/01(木) 11:57:40ID:???もちろん専用サーバーならなんでもありだけど、
それならJavaでいいんじゃね?という感じだし。
レス数が950を超えています。1000を超えると書き込みができなくなります。