5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【PHP】フレームワーク CakePHP 10ホール目【v1.3】

1 :nobodyさん:2010/11/01(月) 21:43:26 ID:???
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※sage推奨
※質問時もsageること
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい

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

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja

2 :nobodyさん:2010/11/01(月) 21:44:22 ID:???
■1.3系
CakePHP1.3系のダウンロード
http://github.com/cakephp/cakephp1x/archives/1.3
CakePHP 1.3.x API
http://api13.cakephp.org/
1.2から1.3への移行ガイド
http://book.cakephp.org/ja/view/1561/
CakePHP 1.3の新機能
http://book.cakephp.org/ja/view/1572/

■1.2系
CakePHP1.2系のダウンロード
http://github.com/cakephp/cakephp1x/archives/1.2
CakePHP 1.2.x API
http://api12.cakephp.org/

■Lithium(li3) PHP5.3+
http://rad-dev.org/lithium/

3 :nobodyさん:2010/11/01(月) 21:45:16 ID:???
■過去スレ
【PHP】フレームワーク CakePHP 9ホール目【v1.3】
http://hibari.2ch.net/test/read.cgi/php/1279844006/
【PHP】フレームワーク CakePHP 8ホール目【1.3】
http://pc11.2ch.net/test/read.cgi/php/1268874059/
【PHP】フレームワーク CakePHP 7ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1251789126/
【PHP】フレームワーク CakePHP 6ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1236563737/
【PHP】フレームワーク CakePHP 5ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1229669539/
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/

4 :nobodyさん:2010/11/01(月) 21:45:57 ID:???
■関連スレ

【PHP】PHPフレームワーク総合スレ14
http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】下らねぇ質問はID出して書き込みやがれ 97
http://pc11.2ch.net/test/read.cgi/php/1279833891/
Zend Framework Part4
http://pc11.2ch.net/test/read.cgi/php/1265721684/
symfony PHPフレームワークpart2
http://pc11.2ch.net/test/read.cgi/php/1268753684/
[PHP][フレームワーク]CodeIgniterスレ
http://pc11.2ch.net/test/read.cgi/php/1177683436/
【PHP】Ethna part.2【国産フレームワーク】
http://pc11.2ch.net/test/read.cgi/php/1186096518/
【PHP】フレームワークMapleに舌鼓
http://pc11.2ch.net/test/read.cgi/php/1122105465/

5 :nobodyさん:2010/11/01(月) 21:46:39 ID:???
■その他いろいろ
PhpMatsuri2010(予定)
(10月2-3日)
CakeFest 2010 (Chicago, llinois, USA)
http://cakefest.org/
CakeMatsuriTokyo2009
http://matsuri.cakephp.jp/
CakePHPカンファレンス東京(2008)
http://conference.cakephp.jp/

連載:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/cakephp
CakePHP 規約ワードメーカー WordMaker for CakePHP Conventions
ttp://www.cpa-lab.com/tech2/inflects/
Free CakePHP Book (Matt Curry and Mark Story)
http://www.pseudocoder.com/free-cakephp-book/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
CakePHP Note
http://www.garacter.com/notes/CakePHP+Note/ni:5
CakePHPを使ったMVC設計のベストプラクティス - Sooey
ttp://www.sooey.com/journal/2008/03/26/717/
Qdmail(日本語メールコンポーネントとして利用可能なライブラリ)
ttp://hal456.net/qdmail/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

■ver1.1用
CakePHP プログラマーズ リファレンスガイド
http://cakephp.jp/doc/
CakePHPフレームワークによる快速WEB開発 |codezine
http://codezine.jp/a/article/aid/670.aspx

6 :nobodyさん:2010/11/01(月) 21:48:51 ID:???
■関連書籍
・ver1.3系
Pocket詳解 CakePHP辞典
http://www.amazon.co.jp/gp/product/4798027456
CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用
http://www.amazon.co.jp/dp/4798026646/
CakePHP 1.3 (独語らしい)
http://www.amazon.co.jp/dp/3827327709/
・ver1.2系
CakePHP1.2ガイドブック
http://www.amazon.co.jp/dp/4839932468/
CakePHPによる実践Webアプリケーション開発
http://www.amazon.co.jp/dp/4839930651/
オープンソース徹底活用 CakePHPによるWebアプリケーション開発
http://www.amazon.co.jp/dp/4798022225/
CakePHP ポケットリファレンス※ver1.2beta
http://www.amazon.co.jp/dp/4774135038
CakePHP徹底入門
http://www.amazon.co.jp/dp/479811717X
PHPで作る携帯サイトデベロッパーズガイド
http://www.amazon.co.jp/dp/4798024767/
・ver1.1系
CakePHPガイドブック
http://www.amazon.co.jp/dp/4839924317
Fast CakePHP
http://www.amazon.co.jp/dp/4774133418

7 :nobodyさん:2010/11/01(月) 22:08:23 ID:???
>>1
俺、乙・・・。

8 :nobodyさん:2010/11/01(月) 23:29:53 ID:vnR/i9a6
>>1-7


9 :nobodyさん:2010/11/02(火) 06:12:53 ID:???
CakePHPをこれから学習する者です。

APIなどがWebにありますが、調べるたびにインターネットアクセスする
のは大変なので、ローカルに一括でDLできるか、Windowsヘルプファイル
になっているものを探しています。

ご存知の方、所在を教えてください。


10 :nobodyさん:2010/11/02(火) 13:20:57 ID:???
ありません。だから貴方が作りましょう。

11 :nobodyさん:2010/11/02(火) 14:03:23 ID:???
http://book.cakephp.org/ja/complete/876
このページ保存しとけばいい

12 :nobodyさん:2010/11/02(火) 14:10:09 ID:???
$form->datetime('Model.item1');
で作成したフィールドに、必須入力項目のValidationをかけたいのです。
Validation ruleにnotEmptyを設定したのですが、きちんと入力しているにも関わらず
エラーが発生してしまします。どう書けばよいものでしょうか?

13 :nobodyさん:2010/11/02(火) 14:10:41 ID:???
CakePHP初心者です。
何か質問があった場合、どこで聞くのが一番解決に近そうでしょうか?
公式の掲示板は過疎ってそうな感じなので

14 :nobodyさん:2010/11/02(火) 14:13:48 ID:???
なんだよ俺たちじゃダメなのかよ。寂しいなおい。

15 :nobodyさん:2010/11/02(火) 14:25:47 ID:???
>>12
datetimeのような連想配列にnotEmptyは出来ない。
beforeValidateで事前に調べて、1つの配列に代入してからチェックしろ。

16 :nobodyさん:2010/11/02(火) 16:49:23 ID:???
俺たちはまるで無力だチンカスだ

17 :nobodyさん:2010/11/02(火) 17:48:52 ID:???
>>13
公式というか、例の掲示板はわりとみんな優しいぞ!?
他のコミュニティに比べて特に過疎ってるとも思えん。

18 :nobodyさん:2010/11/02(火) 18:22:19 ID:???
ただし、返答が遅い

19 :nobodyさん:2010/11/02(火) 18:37:52 ID:???
2ちゃんも返答遅いでしょ
変な煽りとかは早いけど

20 :nobodyさん:2010/11/03(水) 06:30:28 ID:4NSD+GsH

複合主キーが使えないってどんなカルト宗教だよwwwwwwwwww

そんなんだからいつまでたっても子供のオモチャなんだよwwwwwwwwwwwwwww

21 :nobodyさん:2010/11/03(水) 17:58:56 ID:???
複数の主キーが使えれば、大人のオモチャ並によくなるのか・・・
大人のオモチャは複数の主キーが使えるのか・・・


22 :nobodyさん:2010/11/03(水) 23:14:10 ID:???
モデルでコントローラで言う$this->actionの値を取得できないのでしょうか?
モデルのバリデーションで、アクションによって分岐したい時に
使いたいと思いますが、マニュアルを見る限り、アクションが取得できません。

23 :nobodyさん:2010/11/04(木) 00:09:12 ID:???
/cake/tests

ってテスト用のファイルが入ってるから、
bakeでテストしない場合は必要ないですよね?

24 :nobodyさん:2010/11/04(木) 03:21:53 ID:???
>>22
モデルに独自メソッド(action渡してvalidateみたいな)を設けるのが素直でいいよ。
実際は取得できるけどhackじみてる。

25 :nobodyさん:2010/11/04(木) 10:31:06 ID:???
>>24
なるほど。コントローラのbeforeFilterに書いて渡す事にします。

26 :nobodyさん:2010/11/04(木) 14:05:36 ID:???
AlertモデルとUserモデル、2つのモデルがあります。

Alertモデル内で、

$this->User->findDataFromDatabase();

このように、Userモデル内に作ったファンクションを呼び出すには
どうすればよいでしょうか?

コントローラに書いているように、 public $uses = 'User'; としてみましたが、
エラーが出てしまいました。


27 :26:2010/11/04(木) 14:54:17 ID:???
どうやら、App::importを使うらしいのですが、
下記のようにやっても上手くいかないのです。。
(1.3です)

<?php

App::import('Model','User');
$User= new User;

class Alert extends AppModel {

public $name ="Alert";

public function saveAlerts($alert) {

$user = $User->findDataFromDatabase('email',$data);

28 :26:2010/11/04(木) 15:05:14 ID:???
下記のようにやると上手くいきました!

public function saveAlerts($alert) {

$this->User = ClassRegistry::init('User');
$user = $this->User->findDataFromDatabase('email',$data);


29 :nobodyさん:2010/11/04(木) 23:08:41 ID:???
Ajaxの処理がモッサリなのは仕方ないのかな?
Configure::write("debug" , 0);
は書いてるけど。

30 :nobodyさん:2010/11/05(金) 09:01:55 ID:???
鯖でAPC有効にするとCakeのセッション処理がPHP fatal errorを吐くんだけど、解決策知ってる人いますか?

31 :nobodyさん:2010/11/05(金) 13:04:12 ID:???
APCのバグなのであきらめてください。

32 :nobodyさん:2010/11/05(金) 17:06:29 ID:???
/user
└/diary
 └add.ctp

viewをこういう階層にしてURLが↓みたいにしたいと思います。
http://example.com/user/1/diary/add
(意味は、usersテーブルのIDが1の、日記を追加)

こういう表示の仕方って出来るのでしょうか?

33 :nobodyさん:2010/11/05(金) 17:32:18 ID:???
>>32
http://api.cakephp.org/class/controller#method-Controllerrender
render()の引数fileをつかうとか、actionかbeforeRender()で。
やったことないけど。

34 :nobodyさん:2010/11/05(金) 17:33:08 ID:???
Routes使ってできるんじゃないか

cakephp routesで検索してみて

35 :32:2010/11/05(金) 17:45:48 ID:???
>>33-34
routes.phpに↓と書いてルーティングして

Router::connect(
'/user/:id/diary',
array('controller' => 'user_diary', 'action' => 'index', 'id'),
array('id' => '[0-9]+')
);

コントローラをディレクトリ分けする場合は、bootstrap.phpに

$controllerPaths = array(
ROOT.DS.APP_DIR.DS.'controllers'.DS.'user'.DS,
ROOT.DS.APP_DIR.DS.'controllers'.DS,
);

と書けば動きました。アドバイスありがとうございます。

36 :nobodyさん:2010/11/06(土) 18:34:51 ID:???
CakePHP 1.3.2
MySQL 5.1.50
モデルを普通に更新してsaveしてもmodifiedが更新されない。
ぐぐって、default NULLにするとかをやっても駄目。modifiedをnullにしてsaveしても駄目。
誰か知恵を貸してくれ。
特に変わったことなどはしてません。

37 :nobodyさん:2010/11/06(土) 21:31:47 ID:???
スペルは間違いなくあってる?
createdはinsert時にちゃんと入る?
modifiedを適当な日時に指定して更新したらどうよ?
あと更新するSQLを$this->Foo->save('id'=>1);とか適当なシンプルなものにしてみてどうなるか


38 :nobodyさん:2010/11/07(日) 02:31:33 ID:???
updatedを使おうぜ

39 :nobodyさん:2010/11/07(日) 11:04:33 ID:???
コントローラのファンクションの名前の付け方は、みなさんどうしてますか?

※コントローラ

1 function addAlerts

or

2 function add_alerts


1のやり方はPHPの規約通りですが、URLに大文字が混ざってしまうので
悩んでおります。

40 :nobodyさん:2010/11/07(日) 11:25:58 ID:???
アクション名なら2
それ以外なら1

41 :nobodyさん:2010/11/07(日) 12:05:01 ID:???
welcomeページでのみ、画像が出ずCSSも適用されない状態で詰まっています。
バージョンはApache2.2 + cake1.2.8です。

apache_get_modules()で確認した限りではmod_rewriteは動いており、
cakeで軽くアプリを作ったところ画像も表示されています。
ただ、welcomeページは文字だけのシンプルな表示になります。

mod_rewrite設定以外に何か必要な設定があれば教えてもらえないでしょうか。



42 :nobodyさん:2010/11/08(月) 10:55:16 ID:???
出力されたHTMLのソースはあってるの?
CSS,IMGのパスが間違っているんじゃないかとエスパー。

43 :nobodyさん:2010/11/08(月) 21:38:00 ID:???
年齢選択用に1から100のセレクトボックスとかって、formヘルパーで出せる?
form->year使って、それっぽいことはできたんだけど、そもそもyearヘルパーって
挙動がちょっと(値が入る配列とかが)特殊なので、普通にセレクトボックスで出力したいんだけど

44 :nobodyさん:2010/11/08(月) 21:50:56 ID:???
yearの何が不満なのかも書かないでどうしたらいいの?

$form->select()
にarray(1=>1,2,3,4,5...................)
って渡しとけよ

あとこのへん読んで自分で決めてくれ
http://api.cakephp.org/class/form-helper

45 :nobodyさん:2010/11/08(月) 22:20:54 ID:???
またビヘイビアの第一引数にmodel書き忘れて30分無駄にした
わかりにくいんだよ!

46 :43:2010/11/08(月) 22:25:37 ID:???
>>44
値が入る配列とかが特殊って書いてるんだけど…
具体的に言うとUser.ageって名前でセレクトボックス作ると、data['User']['age']['year']に値が入る
他にもIDの付き方とか、最後にYearがついたりして、微妙に使いづらい
(monthとかdayとセットで使う前提で作られてる感じ)

そういう力業の解決方法はあるんだろうけど、標準で用意されてないのかな、と。

47 :nobodyさん:2010/11/08(月) 22:31:10 ID:???
phpのrange()使うと1〜100の配列とかすぐ作れるよ

48 :43:2010/11/08(月) 23:22:02 ID:???
>>47
ありがとうございます!

49 :nobodyさん:2010/11/09(火) 00:37:29 ID:???
>>47
ほんとだ・・・今までfor使って自作関数作ってたぜw

50 :nobodyさん:2010/11/09(火) 00:38:40 ID:???
彼氏がfor文使ってた…

51 :nobodyさん:2010/11/09(火) 00:49:02 ID:???
$options = rang(1, 100);
$options = array_combine($options, $options);
ってよくやる

52 :nobodyさん:2010/11/09(火) 01:42:44 ID:???
皆すごいな。話についていけない・・・。

53 :nobodyさん:2010/11/09(火) 12:25:52 ID:???
コントローラ内で、リダイレクトする時に変数のデータもつけたいのですが、
どうすればよいでしょうか?  1.3です。

マニュアルを読むと、httpステータスコードしか指定できないから、
無理なのかな。。

$this->redirect(array('action' => 'edit', $id));  
(この$idに変数をいれたらエラーが。)

http://book.cakephp.org/view/982/redirect




54 :53:2010/11/09(火) 12:35:03 ID:???
こういう場合はsetActionを使うみたいですね!

http://cakephp.1045679.n5.nabble.com/Does-redirect-clear-variables-td1274496.html

55 :nobodyさん:2010/11/09(火) 12:36:19 ID:???
>>53
こういうことがしたいん?
$this->redirect('/hoge/edit/' . $id));

56 :53:2010/11/09(火) 12:56:38 ID:???
>>55

そうなんです。しかし、その$idは変数いれられなかったみたいで。

57 :nobodyさん:2010/11/09(火) 13:55:59 ID:???
Authを使ったログインで、
ログインしたままの状態で数時間そのままにし、別のページを閲覧すると
ログインが切れてログインフォームに移動します。

改めてログインしようとログイン情報を入れても失敗します。
しかし、同じ内容をもう一度入力するとログインできます。

おそらくセッションの問題とは思うのですが、
この現象を解決する方法はないでしょうか?

58 :nobodyさん:2010/11/09(火) 16:30:27 ID:???
>>57
Auth使ってるあたりのコードを書いてみて
login() , logout() とか beforeFilter() とか

59 :nobodyさん:2010/11/09(火) 20:47:00 ID:???
>>58
Cookbookの内容と同じです。
http://book.cakephp.org/ja/view/1250/Authentication

他の人は>>57の症状にならないんですか?
割と頻繁に発生するんですが。

60 :nobodyさん:2010/11/09(火) 21:18:33 ID:???
Aのモデル内でBのモデルのメソッドを呼び出したいです。

function get() {

$this->User = ClassRegistry::init('User'); //use User model
$data = $this->User->find($conditions);

}

このように、ファンクションのたびに、 ClassRegistry::init('User') で
他のモデルを呼び出しています。

しかし、一つのモデル内で一括して適用させるには
どうすればよいのでしょうか?

もしくは、一括で適用させると重くなるので、今まで通り毎回使う時だけ
呼び出したほうが件名なのでしょうか?

61 :nobodyさん:2010/11/09(火) 21:28:34 ID:???
>>60
>しかし、一つのモデル内で一括して適用させるには
>どうすればよいのでしょうか?
なにいってっかわかんね。

あそしえーしょんされてるなら
$this->Userでもともと呼べるけど、そうじゃないんだよね?
だったらなんか根本的に設計がダメダメだと思うわ
そのモデルでやるべきことじゃない

62 :60:2010/11/09(火) 21:50:35 ID:???
>>61

質問がややこしくすいません。

サンプルがわかりくいですが、データベースの操作は
まったく関係なしという形の場合ではどうでしょうか?

つまり、

Aのモデル内に  function setAlerts() というファンクションがあり、

このファンクションをBのモデル内の操作で利用したいといった形です。

その時、Bのモデル内で

$this->A = ClassRegistry::init('A');
$this->A->setAlerts();

このようにしてます。 でも、毎回 $this->A = ClassRegistry::init('A');  を呼び出すのはめんどくさいなあ、
でも、全体に適用すると重くなるのかなあと悩んでます。

63 :nobodyさん:2010/11/09(火) 22:34:45 ID:???
だからそのsetAlerts()がそのモデルにあるのがおかしいんじゃないのか

64 :nobodyさん:2010/11/10(水) 14:28:56 ID:???
cakePHP 1.3 になりましたが、 以前 htmlHelperは重くなるから使わないほうがよいのでしょうか?

FormHelperは積極的に使ってるんですが。

65 :nobodyさん:2010/11/10(水) 14:42:58 ID:???
ソースを見て、無駄が多いなーと感じないのであれば使えば良いではないでしょうか。

66 :nobodyさん:2010/11/10(水) 15:21:21 ID:???
>>64
linkは重くなるってのはググったら良く出てくるな。

ま、プログラムをかますという事はそれなりの処理を入れているわけで
必然的に、素のHTMLよりも重くなるのは当たり前。

67 :nobodyさん:2010/11/10(水) 15:57:05 ID:???
テーブル名を変更した際に、Cakeのソースのモデル名を一括で変更してくれるツールはないでしょうか?

68 :nobodyさん:2010/11/10(水) 16:07:28 ID:???
>>67
ツールは知らんけど、そんな大量にあるの?

69 :nobodyさん:2010/11/10(水) 18:12:22 ID:???
>>67
grep

70 :nobodyさん:2010/11/10(水) 20:16:10 ID:???
>>67
Dreamweaver

71 :nobodyさん:2010/11/10(水) 23:42:27 ID:???
>>67
perl -pi -e 's/Before/After/g' app/*

72 :nobodyさん:2010/11/11(木) 03:35:51 ID:???
1つのコントローラにモデルが20個ぐらい必要になった
usesが長くてウゼー

73 :nobodyさん:2010/11/11(木) 11:37:02 ID:???
>>72
適切にアソシエーション貼ればそんなにならなくない?
あとuses使うより、ClassRegistry::init()使った方が良いよ

74 :nobodyさん:2010/11/11(木) 11:41:50 ID:???
トップページかなんらかのインデックスページじゃないの?

75 :nobodyさん:2010/11/11(木) 11:57:51 ID:???
ユーザーのトップ画面とかだと情報が集約されてるから
多くなりがちだね

76 :nobodyさん:2010/11/11(木) 12:18:59 ID:???
ソーシャルゲームの初回チュートリアルのコントローラなんだけど、
そこで名前登録したり、試合したり、初期アイテムやお金を与えたり全部入ってるから
モデルをたくさん使うんだが、モデル同士は普段から関連付けるほどでもなかったりする
ユーザーのマイページでも、各種パラメータを表示するため使用モデルがアホみたいに増える
パラメータが多いので、モデルはできるだけ分けないと100カラムぐらいのテーブルができてしまう

>>73
usesだとコントローラが問答無用に全部初期化するけど、各アクション内で使うものだけ自分でinitしろってこと?

77 :nobodyさん:2010/11/11(木) 13:00:43 ID:???
>>76
そう、usesよりCR::initのほうが推奨されてるから書いたけど
その使い方でController内に少数のアクションしかないならどっちでも良いかも

78 :nobodyさん:2010/11/11(木) 16:14:29 ID:???
>>77
なるほど。そういうやり方があるんだな。勉強になった。

79 :nobodyさん:2010/11/11(木) 20:33:51 ID:???
このスレもたまには役に立つな

80 :nobodyさん:2010/11/11(木) 22:30:25 ID:???
最近cakePHPを始めた初心者です。

同一のプログラムで全く弄っておらず、設定も変えておらず、
それなのにMissing Controllerというエラーが出る時と出ない時があるのですが、
これは何故ですか?
バージョンはcakePHP1.35で
プログラムは「cakePHP1.3によるアプリケーション開発」のP49~
フォームの利用というところのコードです。

81 :nobodyさん:2010/11/11(木) 22:51:56 ID:???
ルーティングに/:controller/:id/:action/* を指定して
http://example.com/user/1/add
というURLでアクセスできるようにしています。

ビューの$paginator->sortでリンクされるURLを
変更する方法って無いですよね?

$paginator->options(array('url'=>"id:1"));
をビューに追加して、リンクパラメーターに付加させる事は出来ますが
URLがhttp://example.com/user/add/id:1/page:1/sort:id/direction:asc
のようになってしまいます。

82 :nobodyさん:2010/11/11(木) 23:23:27 ID:???
$paginator->options(array('url'=>array('action'=>'add', 'id'=>1)));
でよくなかったっけ?タメシテない

83 :nobodyさん:2010/11/11(木) 23:37:16 ID:???
function beforeFilter(){

$this->Auth->allow('index','logout');

//このように一括で設定
$this->account = $this->Auth->user();
$this->set('account', $this->account ); //send account data to view
}

ログイン後のページで、ユーザーのステイタスを画面に
表示させています。

AuthからIDを取って、setでビューに送る
コードをアクション毎に書くより、上記のようにbeforeFilterで
一括してもよいでしょうか?

これは重くなる原因だからやってはいけない方法か不安なので
アドバイスいただければ幸いです。

84 :81:2010/11/11(木) 23:39:22 ID:???
>>82
出来ました!あなたは神だ!!本当にありがとう!!!

85 :nobodyさん:2010/11/12(金) 00:01:51 ID:???
>>84
慣れてきたらソース読んだほうがいいよ
http://api.cakephp.org/classes
ここからクラス探して読めばいい


86 :nobodyさん:2010/11/12(金) 00:03:36 ID:???
>>83
毎回DBに取りに行くわけじゃなく、Session読みに行くだけだから
それほど重くない処理だと思う。
あとはDebugKitなり入れて、負荷確かめながらやってみて

87 :80:2010/11/12(金) 03:20:40 ID:???
自己解決?しました

http://hogehoge/hage
で操作するとMissingContorollerのエラーが出て
http://hogehoge/hage/
だとエラーが出ないです

何故こうなるか意味が分からないんですが、一応、報告まで^^;

88 :nobodyさん:2010/11/12(金) 03:52:21 ID:???
んー
apacheの設定でそういうのあったっけ?どのhttpdかしらんが

89 :nobodyさん:2010/11/12(金) 04:01:22 ID:???
apacheじゃなくて、Cake自体に合った気がする。
自作CMS作っていた時に同じような症状に出くわした。

90 :nobodyさん:2010/11/12(金) 13:49:56 ID:???
>>77
loadModelってのもあるみたいだけどどっちがいいの?
loadModelはコントローラでしか使えないんだっけ?

91 :nobodyさん:2010/11/12(金) 14:29:32 ID:???
>>90
そだし、そのコントローラで使えるモデルしか読み込めないぞ

92 :nobodyさん:2010/11/12(金) 14:30:37 ID:???
そのコントローラで使えないモデルって例えばどんなん?

93 :nobodyさん:2010/11/12(金) 14:40:37 ID:???
いや$usesにセットしたモデルって意味

94 :nobodyさん:2010/11/12(金) 15:02:03 ID:???
>>90
ClassRegistryって比較的新しいのよ
で、それができていろいろ不要になった感じ
loadModelもそう。というかloadModelが、かな

95 :nobodyさん:2010/11/12(金) 20:40:46 ID:???
>>94
App::import('model', 'User');
$User = new User;
よりいいかんじ?

96 :nobodyさん:2010/11/12(金) 20:52:41 ID:???
>>95
いい感じ
$User = ClassRegistry::init('User'); で終了だし

97 :nobodyさん:2010/11/12(金) 22:52:31 ID:???
実際のコントローラーはUserCommentControllerなんだけど
URL上はhttp://example.com/comment/で表示させたいと思っています。

prefixとは逆の処理のイメージなのですが、その様な事は可能なのでしょうか?
可能な場合、ルーティングの書き方を教えてください。

98 :nobodyさん:2010/11/13(土) 00:52:58 ID:???
>>97
Routerクラスを調べてみれ

99 :nobodyさん:2010/11/13(土) 13:08:07 ID:???
>>98
調べてみたのですが、コントローラーに文字列を付与して
指定とは別のコントローラーを実行するような設定箇所がありません。

だから↓な感じの指定方法しか思いつかないです・・。

$array = explode('/', $_GET['url']);
$contoroller = 'user_'.$array[0];

Router::connect('/:controller/*',array('controller' => $controller));

100 :nobodyさん:2010/11/13(土) 13:32:07 ID:???
>>99
http://book.cakephp.org/ja/view/542/Defining-Routes

これ読んで理解できないって言うなら、諦めた方がいいと思う。

101 :nobodyさん:2010/11/13(土) 14:14:22 ID:???
じゃ諦めます

102 :nobodyさん:2010/11/13(土) 14:28:26 ID:???
>>86

アドバイスありがとうございます!
DBを取りに行くものは注意ということですね。

103 :nobodyさん:2010/11/13(土) 14:29:27 ID:???
redirectをモデル内で行いたいのですが、
いい方法はあるでしょうか?

本来、コントローラで書くものだとは思うのですが、
モデルに書けるとすごくシンプルになるもので、

104 :底辺:2010/11/13(土) 17:32:20 ID:???
>>103
それはやめたほうがいい。


105 :nobodyさん:2010/11/13(土) 17:53:52 ID:???
>>95
俺はこの書き方してる。PDT使うと、この書き方だとコード補完が効くんだよな。

106 :nobodyさん:2010/11/13(土) 18:09:10 ID:???
>>105
でもコードが増えないか?1行だけど。

107 :nobodyさん:2010/11/13(土) 18:19:48 ID:???
>>104

やはり、redirectはコントローラに書くものですか。
ありがとうございます。

108 :nobodyさん:2010/11/13(土) 18:26:12 ID:???
1行増える代わりにコード補完が効くなら、俺ならコード補完を取るな。
まぁこれは人それぞれなところだな。

109 :nobodyさん:2010/11/13(土) 19:16:12 ID:???
俺のEclipseは保管してくれないから、短い方を書くな。

110 :nobodyさん:2010/11/13(土) 21:06:50 ID:???
みなさん、レイアウト使ってます?
使ってる場合、CSSやJSファイルがページ毎に違うって事が
多々あると思うんですけど、どうしてます?
ifで分岐して読み込むファイル決めるとか。

111 :nobodyさん:2010/11/13(土) 21:09:31 ID:???
>>110
viewに書けばいいじゃん

112 :nobodyさん:2010/11/13(土) 21:27:29 ID:???
さすがにheadに読み込むファイルをビューに書くのは・・・

113 :nobodyさん:2010/11/13(土) 21:41:39 ID:???
>>110
変える必要のあるコントローラでのみ、レイアウト切り替えてるけど
それじゃだめなん?

114 :nobodyさん:2010/11/13(土) 22:13:39 ID:???
>>112
headに入れるように指定できるよ

115 :nobodyさん:2010/11/13(土) 22:48:16 ID:???
1.3で使える、オートログイン関係のオススメコンポーネント教えてもらえないでしょうか?

http://bakery.cakephp.org/articles/milesj/2009/07/05/autologin-component-an-auth-remember-me-feature

これ使ってたけど、1.3でちゃんと動いている人いますか?

$this->Cookie->del(), which did not work for me (CakePHP 1.3.2). I changed it to $this->Cookie->destroy(), what worked out.
と書いてるけど、どうもログアウトがうまくいかない。。

116 :nobodyさん:2010/11/14(日) 13:19:26 ID:???
>>115
外してたらすまんが、CookieComponent::del()が廃止されて使うべきなのはCookieComponent::delete()だよ。destory()は全部消えちゃうんじゃなかったかな?

117 :nobodyさん:2010/11/14(日) 14:34:47 ID:???
>>116

ありがとうございます。
deleteでも試したのですが、どうもクッキーが削除されない。。

しょうがないから、直接ログアウトファンクションに下記のように書いております。

function logout() {

$this->Auth->logout();

//wanna fix it inside auto_login component
if ($this->Cookie->read('autoLogin')) {
$this->Cookie->delete('autoLogin');
}
}

118 :nobodyさん:2010/11/14(日) 14:37:01 ID:???
1.3でauthによるパスワード自動暗号化を無効化するにはどうすればよいでしょうか?

下記、二つの方法を試しましたが、なぜかパスワードが暗号化されてしまいます。
(1.2では試してないので、自分のやり方が悪いのかもしれないですが。。

以下の方法は1.3では使えないよーとか知っている方、もしいられたら助かります。

http://rewish.org/php_mysql/cakephp_auth_password
http://planetcakephp.org/aggregator/items/1442-cakephpauthcomponent%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E6%9A%97%E5%8F%B7%E5%8C%96%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

119 :nobodyさん:2010/11/14(日) 14:42:45 ID:???
>>117
Cookie操作より前になにか出力してるんだろ

120 :nobodyさん:2010/11/14(日) 14:47:10 ID:???
>>118
暗号化してる(とおぼしきところ)でログ吐いて処理を追ってみたら?

121 :nobodyさん:2010/11/14(日) 15:12:59 ID:???
>>119 >>120

ありがとうございます。

普通のコントローラでbeforeFilter処理をしたところ上手くいきました。

どうも、App_contorllerでの書き方が問題のようです。もうちょっと調べてみます!

122 :nobodyさん:2010/11/14(日) 22:13:51 ID:???
APIでとってきた情報を使って、 and検索をしたいのですが、
cakephpでオススメのコンポーネントがあれば教えてもらえないでしょうか?

検索対象 : APIで取得した文章 (毎回取得して、データベースに保存はしない)
検索ワード: 「新宿 スポーツ」 など、データベースに登録したキーワード

123 :nobodyさん:2010/11/14(日) 22:18:02 ID:???
候補として、この検索プラグインを使ってみようかと思っています。

しかし、大抵データベース内のものを検索する場合が多くて、
自分のような例があまりイメージできない。。

http://blog.fusic.co.jp/archives/156

124 :nobodyさん:2010/11/14(日) 22:56:18 ID:???
APIってなんだ?
WebAPI?
なんのWebAPIかもわからんのにどうしろと?
アホなの?

125 :nobodyさん:2010/11/15(月) 00:49:36 ID:???
XMLの事じゃないの?

126 :nobodyさん:2010/11/15(月) 01:10:23 ID:???
API=XMLww
しねよw

127 :nobodyさん:2010/11/15(月) 02:54:57 ID:???
全部説明してやらないといけないのか・・。

APIを使って生成されるXMLを取得して、リスト形式にし、
DBに保存してある検索ワードを利用したいって事だろ。
用はアフィサイトのデータを使った検索エンジンみたいな物だ。

128 :nobodyさん:2010/11/15(月) 03:17:54 ID:???
何をバカが偉そうに
お前が質問者ならもうちょっと勉強しろ
違うならお前が答えてやれ

xmlからデータを引っ張るってのは解った。
xmlを扱うライブラリなんて山ほどある勝手に使いたいもの使え

MVCで考えると本来、モデル・Datasourceでやるべきだな大半を

129 :nobodyさん:2010/11/15(月) 10:53:39 ID:???
>>127
XMLとかDBに保存してあるワードとか、どこにも書いてませんが?

130 :nobodyさん:2010/11/15(月) 14:34:57 ID:???
パスワード自動暗号化を無効化とかいうバッドノウハウを覚えてもしようがないと思うんだが
定期的に現れるよね

131 :底辺:2010/11/15(月) 20:30:14 ID:???
>>130
暗号化しておけば仮にデータベースの情報が漏れてもログインできないからいいね。

132 :nobodyさん:2010/11/15(月) 20:44:12 ID:???
パスワード暗号化しても個人情報が暗号化されてないんじゃダダ漏れですがな

133 :nobodyさん:2010/11/15(月) 20:48:24 ID:???
暗号化を無効にしたいって、たぶんテスト段階でDBの中を見るからだと思うぞ

134 :nobodyさん:2010/11/15(月) 21:00:12 ID:???
>>133
それは暗号化するメソッドを変えて対応するべきでしょ
テストの目的で使ったことないけどさ

135 :nobodyさん:2010/11/15(月) 21:07:20 ID:???
でも>>118が出してるURLは両方とも「暗号化方式を変える」やり方だよね
その先の選択肢として「暗号化しない」とか「暗号方式を強化する」とかがあるわけで

136 :nobodyさん:2010/11/15(月) 21:09:38 ID:???
そもそも暗号化してないサイトは糞ほどあるけどな。大手サイトでも。
普通にパスワード申請したら、メールで届くし。

137 :nobodyさん:2010/11/15(月) 21:11:56 ID:???
復号できる暗号化かもしれんわな

138 :nobodyさん:2010/11/15(月) 21:15:56 ID:???
それは暗号化とは言わない

139 :nobodyさん:2010/11/15(月) 21:27:07 ID:???
は?w

140 :nobodyさん:2010/11/15(月) 21:28:01 ID:???
http://labs.unoh.net/2007/11/php_de_crypt.html

141 :nobodyさん:2010/11/15(月) 21:55:22 ID:???
>>135
誰も>>118限定で話してないよ?
用途は分からないけどDB云々のケースならバッドノウハウで解決を図ることはないって話


142 :nobodyさん:2010/11/15(月) 22:00:48 ID:???
>>138
>>138
>>138

143 :nobodyさん:2010/11/15(月) 22:02:36 ID:???
いや俺も>>118限定では話してないよ。
そのDB云々のケースのために暗号化方式を変えて、一時的に
「暗号化(正確にはハッシュ化だけど)しない」ようにする、ってのは
一概にバッドノウハウとは言えないんじゃね、って話をしてる。

144 :nobodyさん:2010/11/15(月) 22:10:47 ID:???
要するに暗号化とハッシュの差が分からない厨房がいる、と

145 :nobodyさん:2010/11/15(月) 22:14:00 ID:???
>>143
俺が言ってるバッドノウハウはcomponentが用意した方法ではなく、beforeFilterとかで無理矢理やろうとしていることを言ってる
そういうことを覚えても何の得にもならんよと
ま、いずれにせよ必要性を感じたことないけど

146 :nobodyさん:2010/11/15(月) 22:20:09 ID:???
ハッシュ化の方式を変えるために変更したことはあるけどね、複合化を目的にしたことはないな

147 :nobodyさん:2010/11/15(月) 22:32:58 ID:???
>beforeFilterとかで無理矢理やろうとしている

え、そんなことしたがるアホいるの? ……いるか。。
なんか話がずれてた気がしたが納得した。

148 :nobodyさん:2010/11/15(月) 22:40:35 ID:???
お前ら待て。煽り愛せずに冷静に考えよう。

まず、>>118がこう書いてるんだから、なんかしらの必要性があるんだ。
それが良い・悪いじゃないんだよ。

そして、暗号化とハッシュ化があって、それぞれ微妙に意味合いも違うんだ。
だから、まずは>>118が何をしたいか詳しく聞いてから回答を述べようではないか。

149 :nobodyさん:2010/11/15(月) 22:49:59 ID:???
>>148
暗号化とハッシュ化の違いを教えてくれるか?

150 :nobodyさん:2010/11/15(月) 23:08:33 ID:???
ハッシュ化はそのまんまハッシュ値を計算すること
「暗号化」は「復号化」という言葉と対になっていることからも分かるように
 ・情報が失われず
 ・アルゴリズムと鍵を知っていれば元の情報を取り出せる
のが基本

とはいえハッシュ値を取り出すことを「暗号化」と呼んだりcrypt()みたいな
関数名を付けることもあるので、
実際上は「暗号化⊃ハッシュ化」ということになるんだろうね

151 :nobodyさん:2010/11/15(月) 23:18:03 ID:???
不可逆暗号は暗号ではないのか。
復号化って言葉にも違和感。化はいらない。

>>144にも聞きたいな

152 :nobodyさん:2010/11/15(月) 23:23:26 ID:???
なるほど
http://oshiete.goo.ne.jp/qa/3429975.html

153 :nobodyさん:2010/11/16(火) 00:07:31 ID:???
てか、PHPのくだ質だと馬鹿にされるレベルだな。
暗号化・ハッシュ化を一緒にして質問していたら。

154 :nobodyさん:2010/11/16(火) 03:10:19 ID:???
先生!MD5で暗号化したのでAES256で復号してください

155 :nobodyさん:2010/11/16(火) 10:55:47 ID:???
http://vocafes-staging.vocafes.com/

cake使う人ってアホが多いのかな?

156 :nobodyさん:2010/11/16(火) 12:14:42 ID:???
人数が多いからアホが紛れ込んだだけだろ

157 :nobodyさん:2010/11/16(火) 12:27:50 ID:???
PS3みたいだな

158 :nobodyさん:2010/11/16(火) 13:03:43 ID:???
>>137 復号できる暗号化かもしれんわな
>>138 それは暗号化とは言わない
を受けての
>>151 不可逆暗号は暗号ではないのか。
だからな
もうどうしようもないくらいバカ

159 :nobodyさん:2010/11/16(火) 14:28:02 ID:???
その前にお前の返信の仕方がバカなのは無視か。

160 :nobodyさん:2010/11/16(火) 14:32:27 ID:???
>>158
>>151>>150に向けてだろjk
お前がバカにみえるけど?

161 :nobodyさん:2010/11/16(火) 16:20:59 ID:???
>>159-160
死ね糞野郎

162 :nobodyさん:2010/11/16(火) 16:34:57 ID:???
>>160
馬鹿乙

163 :nobodyさん:2010/11/16(火) 17:11:22 ID:???
>>155のURLは何なの?

164 :nobodyさん:2010/11/16(火) 17:17:37 ID:???
>>163
debugが有効で下にSQLがタレ流れてた

アクセス制限かけたみたいだね

165 :nobodyさん:2010/11/16(火) 17:40:29 ID:???
twitterで指摘されたの17時間も前じゃないか
もっと前もいたのかもしれないけど

166 :nobodyさん:2010/11/16(火) 19:27:53 ID:???
renderの出力をファイル以外にしたいのですが、
カスタマイズしなければ出来ませんかね?

DBやCakeのテンプレート以外のファイルを取得し、
変数に入れて出力したいです。


167 :nobodyさん:2010/11/16(火) 19:31:49 ID:???
なにいってんのかわかんね
変数に入れて出力?なにそれ

168 :nobodyさん:2010/11/16(火) 19:47:50 ID:???
>>167
ファイルテンプレート取得して、それに値を埋め込んでファイル出力とか、そんな感じだろう。
察してやれ。

169 :nobodyさん:2010/11/16(火) 19:51:39 ID:???
オレもそれくらい分かったわ

170 :nobodyさん:2010/11/16(火) 20:25:39 ID:???
>>168
166の一行目読めよ

171 :nobodyさん:2010/11/16(火) 20:32:28 ID:???
俺が補完してやろう

renderの出力(のために使用するテンプレート)を(ctp)ファイル以外にしたいのですが、
カスタマイズしなければ出来ませんかね?

DB(の格納値)や(、)Cakeのテンプレート以外のファイルを(テンプレートとして)取得し、
変数(をそれ)に入れて出力したいです。

172 :166:2010/11/16(火) 20:36:51 ID:???
自分の考えた方法は

1:テンプレート変数(例えば<{OUTPUT}>)が書いたビューを用意
2:↓で変数に保持
 $this->autoRender = false;
 $this->render('output')
 $view_data = $this->output;
3:DBで取得してきたデータを変数に入れる
4:1のテンプレート変数にstr_replaceで置換
  $output = str_replace('<{OUTPUT}>', $db_data, $view_data);
5:echoで出力

なのですが、Cakeの機能だけで
>>166のようなことが出来るのかと思い、質問しました。

173 :nobodyさん:2010/11/16(火) 20:39:55 ID:???
>>172
できる。

174 :nobodyさん:2010/11/16(火) 20:41:21 ID:???
>>171
よろしい
ならば答えよう

他の形式で出力することは機能として備わっている
呼び出した拡張子に寄って出力フォーマットを切り替えるなんてことも可能
マニュアルでリクエストハンドリングとか調べてみて


175 :nobodyさん:2010/11/16(火) 20:57:17 ID:???
>>172
<?php echo $content_for_layout; ?>
だけのlayutファイル、
<?php echo $content?>
だけのviewファイルを用意しておき、コントローラで最終的に
$this->set('content',$data);
を呼びさえすれば、「$data」をどう作るかなんて自由にやりたい放題だと思うが。


176 :166:2010/11/16(火) 21:00:37 ID:???
>>175
ほんとですね・・。難しく考えすぎました。ありがとうございます。

177 :nobodyさん:2010/11/16(火) 22:23:01 ID:???
>>175
それなら $this->autoRender =false; return $data; でいいような

178 :nobodyさん:2010/11/16(火) 22:29:44 ID:???
>>177
こう書けるんだ、勉強になりました。

179 :nobodyさん:2010/11/17(水) 00:08:32 ID:???
そうか。アクションは関数だから、returnで良いのか。勉強になるなー

180 :nobodyさん:2010/11/17(水) 00:16:05 ID:???
バッドノウハウだな

181 :nobodyさん:2010/11/17(水) 00:39:16 ID:???
画像やCSSのコントローラー分けってどうしてる?

/webroot
└/images
  └/top

みたいにするか、

/webroot
└/top
  └/images

みたいにまとめるか悩みます。

182 :nobodyさん:2010/11/17(水) 00:54:51 ID:???
前者

183 :nobodyさん:2010/11/17(水) 01:17:15 ID:???
他のCakePHPを使ったサイトをいくつか調べたのですが、全て前者でした。
普通のWebサイトは後者が多く、自分も今までは後者で作っていました。

とりあえず、Cakeの作法に合わせたいので、前者にします。

184 :nobodyさん:2010/11/17(水) 01:30:20 ID:???
>普通のWebサイトは後者が多く、自分も今までは後者で作っていました。
どこ統計?圧倒的に前者が多い印象だけど

185 :nobodyさん:2010/11/17(水) 01:53:13 ID:???
統計は取ってないですが、自分の印象では後者ですね。

186 :nobodyさん:2010/11/17(水) 13:29:15 ID:???
181のレス見て思い出したけど、prefixを使った場合のディレクトリ構成も
悩む時あるよな。webrootにprefix用のディレクトリ作成するとエラーになるし。
$html->linkやRouter::urlでの表示とか

187 :nobodyさん:2010/11/17(水) 15:15:11 ID:???
1.3を使っています。

以下のようなformHelperを使った記述を、
「フォームを追加」ボタンを押せばJqueryで同じフォームが増えていくと
いったことがしたいです。

echo '<div class="newForm">';
echo $form->select('Alert',$menuOptions["area"]);
echo '</div>';

グーグルアラートのアラートを追加するボタンみたいな感じでやりたいです。

この場合、formHelperを使っているので、Jqueryと連携するにはどうすればよいものでしょうか?

188 :nobodyさん:2010/11/17(水) 15:52:34 ID:???
>>187
手順のヒントを書くと

1)ボタンを押す
2)jQueryのajax機能で、指定コントローラーのアクションにPOST
3)そのアクション内で>>187のビューを出力
4)ajaxで受け取ったデータをページの指定箇所に反映
 var add_form_fields = $("addFormFields").html();// 以前のHTMLを保存
 $("addFormFields").html(add_form_fields + data);// 3を結合して出力
 (試してないからコードはおかしい可能性有り)


189 :nobodyさん:2010/11/18(木) 17:15:13 ID:???
携帯サイトをCakePHP1.3.4で作っています。
ビューやPHPファイルは全てUTF-8で作成し、
出力時はmb_convert_encodingでSJIS-winに変換しています。
そして、ビューに$html->charset('Shift_JIS')を追加しています。

絵文字を使いたいので過去スレを調べたところ、
「Ktai Library」というツールが良いと聞いたので使っているのですが、
絵文字がどうしても文字化けします。(?という表示になります)
元ファイルはUTF-8なのに、レンダリング時にはShift_JISになるから
なのかもしれませんが、どうやっても解決できません・・。

Ktai Libraryを使用されてて、私と同じように出力をShift_JISにされている方は
設置に対するヒントを教えていただけないでしょうか?よろしくお願いします

190 :nobodyさん:2010/11/18(木) 17:24:42 ID:???
DBは何で作成した?

191 :nobodyさん:2010/11/18(木) 17:38:13 ID:???
MySQLで文字コードはUTF-8です

192 :nobodyさん:2010/11/18(木) 17:39:21 ID:???
ただ、DB使ってないコントローラーでも>>189の現象になります。

193 :nobodyさん:2010/11/18(木) 17:44:32 ID:???
ttp://d.hatena.ne.jp/k_yamamot/20100307/1267952208
このあたり?

194 :nobodyさん:2010/11/18(木) 20:33:55 ID:???
絵文字扱うだけならHTML_Emojiでいいんじゃない?
http://libemoji.com/

195 :nobodyさん:2010/11/18(木) 22:32:26 ID:???
>>194
これってキャリア分の絵文字を配列に代入して切り替えてるだけですよね?
ちょっと使いましたが、効率悪い気がするんですよね・・。

Ktai Libraryは作者の方が意欲的ですし、利用している人も多いと思って
質問したのですが、文字コードの扱いに難があるようですね。
ググったらそういう注意事項がありました。

何とかしたいのですが、無理なら>>194を使うか自作します。

196 :nobodyさん:2010/11/19(金) 07:47:54 ID:???
>>195
Controllerに書いたKtaiLib設定の文字コード部分を教えて
あとバージョンと

197 :nobodyさん:2010/11/19(金) 12:44:56 ID:???
CakePHPのSecurityComponentに深刻なセキュリティホールが見つかりました
http://www.1x1.jp/blog/2010/11/cakephp_security_component_vulnerability.html

198 :nobodyさん:2010/11/19(金) 13:06:15 ID:+0BO3EaI
※ところで、なんでこれが騒がれていなかったのか理解に苦しむのですが、
もしかしてみなさん本家のブログ記事とか読んでいらっしゃらないわけですか?

 まさかね。
僕が騒いでいる様子を探せていなかっただけですよね。

199 :nobodyさん:2010/11/19(金) 13:35:52 ID:???
だれもSecurityComponentなんて使ってないんじゃ・・・
俺もCSRF対策は独自に開発して使ってるし。

200 :nobodyさん:2010/11/19(金) 14:10:15 ID:???
俺も使ってない

201 :nobodyさん:2010/11/19(金) 14:18:35 ID:???
俺も。セッションやクッキーもPHPの関数でやることあるし。

202 :nobodyさん:2010/11/19(金) 15:35:43 ID:???
お、おおおお俺もつ、つ、つつつつ、つ、使ってないよおぉ

203 :nobodyさん:2010/11/19(金) 15:49:02 ID:???
これだけ使ってないってレスがくると、自分で使っていることにすら気づいてない奴もまざってるんじゃないかと疑いたくなるなw

204 :nobodyさん:2010/11/19(金) 17:01:49 ID:???
お、お、俺も、つつ使ってない

シリアライズした設定値をrot13変換・・・可逆すぎワロタ

要は自前実装でワンタイムトークン発行しろってことで、たいていの用途にはおk?

205 :nobodyさん:2010/11/19(金) 17:15:49 ID:???
でも、可逆で事足りると思うんだよな。

考えてみろ。第三者が可逆されるって、鯖をハッキングされるか
内部流出しかないけど、そうなるとパスワードうんぬんどころじゃねーぞ。


206 :nobodyさん:2010/11/19(金) 17:55:27 ID:???
>>205
君の考え方なら、そもそもパスワードをハッシュ化する必要すらないよな?
もっと良く考えてみろ。

207 :底辺:2010/11/19(金) 20:32:33 ID:???
>>143
セキュリティセキュリティって、言ってる人って、ハッキングされた経験でもあるの?俺はさほどセキュリティに気を使ってないけど、この10年何ら問題が起きてない。泥棒に入られるかもと思って家に防犯カメラつけたりするような物だよね。

208 :nobodyさん:2010/11/19(金) 20:44:57 ID:???
こんなところで釣りってあほか

209 :nobodyさん:2010/11/19(金) 21:21:21 ID:???
>>206
205じゃないけど、前にくだ質の人に質問したら
「ハッキングより内部流出の為にパスワードをハッシュ化する」
て言ってた。正しいかどうかは知らん。

210 :nobodyさん:2010/11/19(金) 23:21:14 ID:???
最初から全部公開しておけば流出されない

211 :nobodyさん:2010/11/20(土) 00:29:30 ID:NISeDnL6
Eclipseがなんか合わないから他にいいのないか探してPHPエディタというのをみつけたんだが
これプロジェクトでappフォルダコピーしたがうまく表示されないな
やっぱEclipseぐらいしかないのかね?

212 :底辺:2010/11/20(土) 14:25:39 ID:???
>>211
俺も合わない。だからdw使ってます。

213 :nobodyさん:2010/11/20(土) 14:36:12 ID:???
>>209
なんか誤解してないか?

214 :nobodyさん:2010/11/20(土) 19:22:07 ID:???
普通にちゃんと噛み合った会話に見えるんだけど……

215 :nobodyさん:2010/11/20(土) 23:06:30 ID:???
俺もDW使ってるな。
デザインプレビューはほとんど使わないけど、なんか管理しやすい。

216 :211:2010/11/20(土) 23:52:59 ID:NISeDnL6
>>212>>215
DWって何とかドロワーってやつ?少し聞いたぐらいしか無いけど
コード保管とか関数一覧機能有るなら試してみようかな

PHPエディタのスタンドアロン版を今使ってるけどemエディタみたいにタブだったらいいのになー

217 :216:2010/11/21(日) 00:01:59 ID:???
ドロワーじゃなくてDreamweaverだったか・・・

218 :nobodyさん:2010/11/21(日) 04:08:48 ID:???
一応、PHPの関数保管機能はあるけど、
PGが使うツールとしては使いにくいだろうね。

219 :nobodyさん:2010/11/21(日) 08:39:09 ID:???
PHP自体PGが使うには使いにくいと思うよ

220 :nobodyさん:2010/11/21(日) 09:07:46 ID:???
WindowsだとNotepad++使ってる

221 :nobodyさん:2010/11/21(日) 13:02:29 ID:???
Macならcodaだな。
マニュアルやAPIサイトもタブの中で開けるし、集中して作れる。

222 :nobodyさん:2010/11/22(月) 14:13:56 ID:???
controllerのusesで指定するモデルのコンストラクタに引数を渡したいのです。
モデル内で動的なテーブルの切り替えを行っていて、どのテーブルを使用するかの判断に
必要なアイテムをコンストラクタで渡そうと考えています。
まったく見当がつかないのですが、なにか良い方法はありますか?

223 :nobodyさん:2010/11/22(月) 14:30:28 ID:???
自作コンポーネント

224 :nobodyさん:2010/11/22(月) 14:36:42 ID:???
>>222
あるモデルが別のモデルを読み込むようにすれば良さげ

225 :222:2010/11/22(月) 14:42:59 ID:???
すみません。一つ条件がありまして、
usesで指定するモデルですが、paginatorで使用するモデルとなります。
単にデータの入出力に使うだけのモデルであれば色々策は考え付くのですが、
paginatorで使用するというところがネックで悩んでいる次第です。

usesに記載しないモデルでpaginatorを上手く効かせる方法があればそれでも構いません。

226 :nobodyさん:2010/11/22(月) 14:58:16 ID:???
それだけじゃ詳細わかんないけど
どう考えても設計見直したほうが幸せだろ

227 :nobodyさん:2010/11/22(月) 18:01:25 ID:???
>>224 みたいな方法で、中間モデルというか、代理人的なモデルを作って、
Factory Methodパターン(的な)構造にするのが良いと思う。
変にCakeの内側に入り込もうとするとメンテナンス不能なものになりそうだ。

てか普通に該当モデルに使用テーブルの切り替えメソッド実装するんじゃダメ?
試してないけど

228 :222:2010/11/22(月) 21:38:44 ID:???
>>224
おっしゃる通りで、
>てか普通に該当モデルに使用テーブルの切り替えメソッド実装するんじゃダメ?
を実装して対応しました。
usesに指定するmodelの$useTableにデフォルトでfalseを指定しておき、
paginate()を呼び出す前に、実装したテーブル切替メソッドを呼ぶという感じです。

usesに指定したmodelのロード前に、$useTableにどうやってテーブルを指定しようか、
と悩んでいたのですが、とりあえず何も設定せず、後で再設定するという方法ですね。

229 :222:2010/11/22(月) 21:40:31 ID:???
>>228
すみません、>>224でなく>>227です。


230 :nobodyさん:2010/11/23(火) 17:17:59 ID:???
CakePHP初心者です。
やっとチュートリ終わってCakePHP辞典を眺めているレベルですが、
質問があります。

HtmlHelperの様々なメソッドは、生HTMLを*.CTPに記述すれば足りる事であり、
わざわざ用意された関数を使う必要などない、と思えるのですが、いかがでしょうか?
たとえばHtmlHelper::para()など<P></P>と書けば良いだけな気がします・・・

また、AppModelクラスでは、アソシエーションを定義しfind()やread()などを使うよう
ですが、単にSQLを書いてquery()を使えば良いような気がしています。
AppModelにはquery()とset()さえあれば良いような・・・

こんな質問をするのは私の理解が浅いためだとは思いますが、初心者にも判るよう、
HtmlHelperやAppModelのメソッドの存在意義を教えていただきたいです。

よろしくお願い申し上げます。





231 :nobodyさん:2010/11/23(火) 17:21:03 ID:BKW+AU3M
>>230
->linkと->dataCellsは楽だと思うぜ

232 :nobodyさん:2010/11/23(火) 21:56:51 ID:???
俺もlinkくらいしか使わないな
linkはroute直したときとかに勝手にリンクも直るので便利
default.ctpのヘッダー部分も基本的にhtmlに直してる
cakeと絡む部分のあるlinkとかはhelper使って、絡まないpとかはhtmlで書くという感じ
tablecellsは最初は使ってたけど、classとか指定してカスタマイズしてたらわけわからなくなったので、
今はforeachで書いてる

233 :nobodyさん:2010/11/24(水) 13:59:05 ID:???
ログイン画面でemailやpasswordを入力した時、

「登録されてないアドレスです」 や 「パスワードが正しくありません」
などのバリデーションはmodelのルールでは定義できないでしょうか?

マニュアルを読んだところ、そういった機能はないようなので、
自分でロジックを書かなければいけないかと思っております。

234 :nobodyさん:2010/11/24(水) 14:14:59 ID:???
>>233
はい。オリジナルバリデーションを用意しましょう。
探せば見つかると思う。

ただ
エラーメッセージは
「メールアドレスかパスワードが違います」
と表示しましょうね。セキュリティ的に。

235 :nobodyさん:2010/11/24(水) 14:16:48 ID:???
>>234

素晴らしく的確なアドバイスありがとうございます!!

236 :nobodyさん:2010/11/24(水) 14:19:25 ID:???
>>233
Authコンポーネント使ったほうが幸せになれそう

237 :nobodyさん:2010/11/24(水) 14:51:07 ID:???
>>230
俺もlinkとかは使っているな。
階層が絡むものとかは開発環境・本番環境で変わってくることもあるし。
あとは、form関連はかならず使う。
HTMLヘルパー系は、実質あんまり使わないな…。

Modelに関しては、シンプルで分かりやすくなるので、生SQLは基本書かない。

238 :nobodyさん:2010/11/24(水) 14:57:32 ID:???
環境かわっても大丈夫なようにするためにlinkつかってる

239 :230:2010/11/24(水) 19:24:51 ID:???
HtmlHelperのメソッドは、link()などは使うが、必要性の高いメソッドは少ないのですね。

AppModelクラスで、アソシエーションを何も定義せずに生SQLを書くことについては
いかがでしょうか?
SQLの知識があっても、アソシエーションを定義してAppModelのメソッドを使ったほうが
よいのでしょうか?
生SQLを書いてAppModel::query()は良くないのでしょうか?

240 :nobodyさん:2010/11/24(水) 20:10:39 ID:???
生SQLも時と場合によるでしょ。
findでjoinする時はjoin部分をSQLにするけど。

241 :nobodyさん:2010/11/24(水) 21:04:53 ID:???
Fast CakePHPって本が糞過ぎて使えない
よくあんな糞みたいな本が世に出せたもんだ

242 :nobodyさん:2010/11/24(水) 21:34:35 ID:???
>>239
生SQLでも良いと思う。CakeのActiveRecordの恩恵は半分くらいしか受けないが、
CakeのAcriveRecordの微妙な部分で悩んだりバッドノウハウ積んだりする手間も減る。

でも、現在Cake初心者で、生SQL上等なくらいのスキルを持ってるなら、
Zend Frameworkとかにトライするのもいいんでは?

243 :nobodyさん:2010/11/24(水) 23:23:55 ID:???
まぁ、なにやっても良いけど、もしチームとか会社で使うのなら
他のメンバーに合わせる方向性で決めたほうがいいかと。

244 :nobodyさん:2010/11/25(木) 01:00:08 ID:???
>>241
なんでcake本がたくさんある中、1.1対応と古くて、評価も悪いそれを買ったのか気になる

245 :nobodyさん:2010/11/25(木) 01:03:35 ID:???
つかあのシリーズは地雷揃い

246 :nobodyさん:2010/11/25(木) 10:13:58 ID:???
1.3対応でいい本ってなにかあるかな

247 :nobodyさん:2010/11/25(木) 11:10:39 ID:???
ある程度Cakeに慣れた人なら、CakePHP辞典は良いと思うけど、
初心者の場合だと難しいね。何がしたいか分かって探すリファレンス本だし。

248 :nobodyさん:2010/11/25(木) 20:30:07 ID:???
>>242
奴らは街角で拉致られてタコ部屋に押し込まれて強制労働させられてるのか?
自ら希望して派遣会社に登録したんじゃないのか?
まずそこをハッキリして貰いたいんだが。

249 :nobodyさん:2010/11/25(木) 21:12:22 ID:???
>>248
人間、切羽詰まると生SQL書いてしまうのか・・・

250 :nobodyさん:2010/11/25(木) 22:39:36 ID:???
>>248
拉致られてタコ部屋に押し込まれるとActiveRecordの恩恵が半分になるのか・・・

251 :nobodyさん:2010/11/25(木) 22:53:00 ID:???
カオス

252 :239:2010/11/26(金) 06:09:25 ID:???
>>242
疑問が少し晴れました。
ありがとうございました。

まだCakePHPのチュートリやったくらいなので、しょぼい自作のフレームワーク
と比べて、あまり恩恵を感じられてないのですが、もう少し学習してみたいと思
います。


253 :nobodyさん:2010/11/27(土) 13:38:43 ID:???
フレームワークなんて、いかにルールを守って使うかだからなー。
合う合わないがある。色々あるから他のを試してみても良いと思う。

254 :252:2010/11/27(土) 18:31:52 ID:???
現在、しょぼい自作フレームワーク + Smarty で開発しています。
DB関連は、SQLを直接書いて、PDO。
出力は、Smartyにお任せ。

CakePHPを使えば、上記のアーキテクチャ(?)に比べて数倍効率UPすると
思っていましたが・・・もしかするとそれは幻想かなぁ・・・

255 :nobodyさん:2010/11/27(土) 20:10:38 ID:???
効率上げる目的ならば、しばらくCakeの流儀に慣れるしかないと思われ
(Model周りのメソッド含め)

256 :nobodyさん:2010/11/28(日) 11:24:00 ID:???
>>252
とりあえず過去の遺産は忘れて、Cakeに染まってみたら?
そこから自分が効率良いと思う手法にしたらいいと思う。

257 :252:2010/11/28(日) 18:39:37 ID:???
>>256

>過去の遺産は忘れて
そうですね!
素晴しいアドバイスありがとう。


258 :nobodyさん:2010/11/28(日) 23:06:55 ID:???
Cakeでいくつかシステム作ったら、
オレオレフレームワークの方の道も開けるよ。
そしてCakeの流儀がいかに計算されているかに気づく。

259 :nobodyさん:2010/11/28(日) 23:51:56 ID:???
NETで同じようなCRUDフレームワークを作ってたんだけど、
Cakeを使ってみると色々感心させられるところが多い。
いつか良いところを取り入れようと思う。

260 :nobodyさん:2010/11/29(月) 11:52:35 ID:???
女子高生「Ruby on Rails とか CakePHP のパクリだよねーウケるー」

261 :nobodyさん:2010/11/29(月) 12:42:07 ID:???
そんな女子高生いたら怖いな

262 :nobodyさん:2010/11/29(月) 13:47:13 ID:???
form.php の1828行目

× if (!empty($timeFormat)) {
○ if ($timeFormat != 'NONE' && !empty($timeFormat)) {

と違うの

263 :nobodyさん:2010/11/29(月) 14:14:39 ID:???
そういう重要な話は本家にircするんだ!

264 :nobodyさん:2010/11/29(月) 14:49:11 ID:???
その後ろの
switch ($timeFormat) {
12, 24, それ以外で場合分けしてるから、動作自体は問題なさそうなんだけど。
具体的にどんな障害があるの?

265 :nobodyさん:2010/11/29(月) 15:18:42 ID:???
dateTimeの$timeFormatが'NONE'のときでも$selectedにH:M:Sないと$days[1]と$time[1]でNoticeはいちゃう。
いままで1.2系使ってたんだけど、$selectedにY-m-dいれてやってたのもってきたらこうなったの。

266 :nobodyさん:2010/11/29(月) 15:32:11 ID:???
indexのアドレスをdomain.com/users から domain.com に変えました。

そのとき、cakephpフォルダの.htaccessの記述を
下記のように変えました。

RewriteRule ^$ app/webroot/users [L]


appフォルダの.htaccessは以下

RewriteRule ^$ webroot/users [L]

この時、webroot上の .htaccessはどのように記述すればよいのでしょうか?

267 :nobodyさん:2010/11/30(火) 23:54:31 ID:yu36gv9u
>>266
そういうのroutes.phpに書くんじゃないかなと

268 :nobodyさん:2010/12/01(水) 14:42:57 ID:???
>>267

ありがとうございます。 Router::connect('/', array('controller' => 'users', 'action' => 'index')); で上手くいきました。

ただ、routerのマニュアルやネットで調べてもできるのかどうかわからない部分が。


現在、controllers に users, homes, alerts があります。
それらのパスを下記のようにするにはどうすればよいかどなたか教えてもらえないでしょうか?

domain/users/login → domain/login
domain/homes/help → domain/help
domain/alerts/edit → domain/edit

なぜこうしたいかというと、 header の リンクパスが現在見てるページによって
固定では上手く動かないのです。

link = > 'help' へジャンプする時、
現在のページが domain/homes/contact ならよいが、
domain/users/login ページなら ちゃんと飛べない。


269 :nobodyさん:2010/12/01(水) 14:44:25 ID:???
ちなみに、下記のように試したのですが、複数のコントローラだと
上手くいかず。

// Default route
Router::connect('/', array('controller' => 'users', 'action' => 'index'));

Router::connect('/:action', array('controller' => 'users'));
Router::connect('/:action', array('controller' => 'homes'));



270 :nobodyさん:2010/12/01(水) 14:44:51 ID:???
だからhtmlHeplerつかうのに
ばかばっか

271 :nobodyさん:2010/12/01(水) 14:58:07 ID:???
>>270

すいません!
ありがとうございました!

ホント、大馬鹿だった。。

272 :nobodyさん:2010/12/01(水) 17:47:59 ID:???
画像そのものにヘルパーを使ってリンクを貼りたいです。

こんな感じに。
<a href="http://localhost/cake/app/webroot/img/sample_mail.jpg" class="sampleMailLink">サンプルメール</a>


下のようなコードを試しているのですが、うまくいかず。。
どうすれば可能になるでしょうか?

echo $html->link(
'サンプルメール',
$html->image("sample_mail.jpg"),
array(),
array()
);

参考にしたリンク
http://stackoverflow.com/questions/1878301/cakephp-image-inside-link-want-to-make-link-point-to-image-location

273 :nobodyさん:2010/12/01(水) 18:05:01 ID:???
<?php echo $html->link(
$html->image("recipes/6.jpg", array("alt" => "Brownies")),
"/recipes/view/6",
array(),
false,
false
); ?>

274 :nobodyさん:2010/12/01(水) 18:07:24 ID:???
↑はマニュアルから持ってきた

ちなみに
$html->image();
の第二引数にurlだったかlinkだったでリンクURLを渡してもできたはず

275 :nobodyさん:2010/12/01(水) 18:08:32 ID:???
誤字修正wと補足

ちなみに
$html->image();
の第二引数の配列にurlだったかlinkだったかのキーでリンクURLを渡してもできたはず

276 :nobodyさん:2010/12/01(水) 18:11:09 ID:???
>>273

すいません、日本語が分かりづらかったです。

テキストにリンクを貼って、画像に飛びたいという形です。

こんな感じ。
<a href="http://localhost/cake/app/webroot/img/sample_mail.jpg" class="sampleMailLink">サンプルメール</a>

なぜこのようなことをするかというと、
このfancyZoomというプラグインが使いたいからです。リンク先が画像そのものじゃないと有効にならない。。
http://gigazine.net/index.php?/news/comments/20080208_fancyzoom/



277 :nobodyさん:2010/12/01(水) 18:14:10 ID:???
imgというディレクトリ名はどこ行った

278 :nobodyさん:2010/12/01(水) 18:17:10 ID:???
>>276
おおすまん
でもお前馬鹿だろ

html->image()は何を返すんだ?画像のURL返すか?タグを返すだろ?

リンクURLだけ欲しければ
html->url()
これ使え

279 :nobodyさん:2010/12/01(水) 18:20:34 ID:???
http://book.cakephp.org/ja/view/1448/url
マニュアルくらい読んでから質問しような
少なくともHTMLヘルパー使うって解ってるなら↓全部目通せよ
http://book.cakephp.org/ja/view/1435/Inserting-Well-Formatted-elements

280 :nobodyさん:2010/12/01(水) 18:24:26 ID:???
ちなみに
Html->image()で渡されたパスはimgディレクトリを補足してくれるから
webroot/img/sample.jpgだったらsample.jpgだけ書けばいいけど
Html->url()では当然imgなんかつけないからな
/img/sample.jpg
こうかけよ

281 :nobodyさん:2010/12/01(水) 18:47:18 ID:???
>>280

ありがとうございます! マニュアルは読んだのですが、コントローラ指定の場合が
書いてあってよくわからず。。。

現状はまだ格闘していまして、こんな感じでいろいろ試しているけど上手くいかず。。

<?php
echo $html->link(
'サンプルメール',
$html->url('/img/sample_mail.jpg'),
array(
'alt'=> 'サンプルメール',
'class'=> 'sampleMailLink',
)
)
?>

<?php
echo $html->url(
'サンプルメール',
array(
'link' => '/img/sample_mail.jpg',
'alt'=> 'サンプルメール',
'class'=> 'sampleMailLink',
)
)
?>

282 :nobodyさん:2010/12/01(水) 19:25:47 ID:???
何がどうわからないんだよ
それぞれ何を吐き出してるの?
最終的に何を吐き出したらOK?
そこまでHtmlヘルパーにしなきゃだめ?Html->url()だけつかってあとは<a.....って書いてもいいんじゃないの?

283 :nobodyさん:2010/12/01(水) 19:47:51 ID:???
<?php
echo $html->link(
'サンプルメール',
'/img/sample_mail.jpg',
array(
'alt'=> 'サンプルメール',
'class'=> 'sampleMailLink',
)
)
?>

じゃないの?
HTMLヘルパーいらんでしょ

284 :nobodyさん:2010/12/01(水) 19:50:54 ID:???
あー、そもそもルートがhttp://localhost/cake/app/webroot/なのか
とりあえずhttp://localhost/をルートにした方がいいぞ
トップディレクトリ以外をルートにする運用は非推奨なはず

285 :nobodyさん:2010/12/01(水) 19:54:26 ID:???
>>284
ごちゃごちゃ抜かすな
cakephpではウェブルート意外にでも何処にでも於いても、
ディレクトリ構成変わっても大丈夫なように
HtmlHelperがあるんだよ

286 :nobodyさん:2010/12/01(水) 19:57:28 ID:???
>>285
だからそういう運用は非推奨だって
どーしてもルートを変えられない時じゃなければ、トップディレクトリをルートにした方がいいに決まってるじゃん

287 :nobodyさん:2010/12/01(水) 20:00:10 ID:???
非推奨のソースをお願いします

288 :nobodyさん:2010/12/01(水) 20:07:58 ID:???
http://book.cakephp.org/ja/complete/912/Installation
どこに非推奨とか推奨とか書いてあるのか教えろ
勝手に非推奨にしてんじゃねーぞ

289 :nobodyさん:2010/12/01(水) 20:10:29 ID:???
わからなければ口出さなきゃいいのに
本当にバカしかいなくなった

290 :nobodyさん:2010/12/01(水) 20:43:13 ID:???
>>281
というか、一つ一つ何を返すかを確かめたりしたらすぐ解決すると思うけどな。
結局最終的に何を出力したらいいのかこっちにはわからんけど、
281の上のコードはlink使うならlinkの第二引数はHtml->url()に渡すものでいい。
すなわち、

<?php
echo $html->link(
'サンプルメール',
'/img/sample_mail.jpg',
array(
'alt'=> 'サンプルメール',
'class'=> 'sampleMailLink',
)
)
?>

これでいいんじゃね?
あとはしらね

291 :nobodyさん:2010/12/01(水) 22:39:31 ID:???
てか、なんでもかんでもヘルパー使わなくて良いよ。
わからなかったら普通にHTML書けばいいじゃん。

292 :281:2010/12/02(木) 06:35:44 ID:???
みなさん、本当にありがとうございます。 >>283のコードで上手くいきました。

最終的にやりたいのは、

<a href="http://localhost/cake/app/webroot/img/sample_mail.jpg" class="sampleMailLink">サンプルメール</a>

このような形でした。
ヘルパーを使わないとローカルとパブリックでリンク先がずれちゃうのがイヤだったもので。

一応、cakephp辞典やらも購入して試したのですが、途方にくれていました。本当に助かりました。

>>284

cakephp webroot change とかでぐぐって勉強してみます!

293 :nobodyさん:2010/12/02(木) 12:08:43 ID:???
まさに「CakePHP Advent Calendar 1日目」の話題じゃん。

http://d.hatena.ne.jp/cakephper/20101201/1291166566

294 :nobodyさん:2010/12/02(木) 12:28:15 ID:???
全然違うんだけど・・・・

295 :nobodyさん:2010/12/02(木) 15:11:25 ID:???
設計について悩んでいるので相談させていただきます。

サイトのサイドバーに「カテゴリ」「お知らせ」「最新記事一覧」などの
共通する項目(モデル)があります。

app_controller.phpに $uses = array('News', 'Category', 'Blog')と
必要なモデルを指定して、beforeFilterで毎回findを取得し、setしています。

このやり方だと毎回サイドバーのSQLを実行することになり、
負荷が心配なのですが、設計としていかが思いますか?
ブログのサイドバーみたいなイメージでいただけると分かりやすいかと思います。

296 :nobodyさん:2010/12/02(木) 15:15:44 ID:wz3Ap8ga
Sessionとかはどうなんだろうか?
記事挿入の時だけ書き換えるとか

297 :nobodyさん:2010/12/02(木) 15:15:45 ID:???
requestActionぐぐって勉強して。
キャッシュ化してサクサク

298 :nobodyさん:2010/12/02(木) 16:22:11 ID:???
なるほど!requestActionですか!
以前使った事があったのですが、すっかり忘れてました。
sidebar部分をelementsに入れて、requestActionで必要なモデルを呼び出します。

299 :nobodyさん:2010/12/02(木) 17:17:48 ID:???
http://www.yokapro.com/pc/aboutproject.html

この案件で1カ月弱の納期。
CakePHPでの開発効率ってこんなに良いものなの?

300 :nobodyさん:2010/12/02(木) 17:33:45 ID:???
何そのページ怖い

301 :nobodyさん:2010/12/02(木) 18:18:31 ID:???
うちならそんな案件受けない

302 :nobodyさん:2010/12/02(木) 18:19:50 ID:???
どこに1ヶ月弱の納期って書いてるか探せない

303 :nobodyさん:2010/12/02(木) 18:40:55 ID:???
まさか求人の応募期間が1ヶ月弱ってオチじゃないよな?

304 :nobodyさん:2010/12/02(木) 21:03:22 ID:???
>>302
とあるSOHO案件のページで、12月納品として最近掲載されてた。
俺の感覚では到底無理と思ったんだが、良かった、普通の感覚で。

305 :nobodyさん:2010/12/02(木) 22:20:18 ID:???
とある案件の情報を出さないから何とも言えないけど、
別に1ヶ月弱で構築できるレベルだと思うよ。
現に俺は>>299よりもっと機能のあるポータルサイトを作ったし。
デザインはさすがに外注に出したけどね。

306 :nobodyさん:2010/12/03(金) 05:44:20 ID:???
なんだかすごいものを見せられた気がするぞ

307 :nobodyさん:2010/12/03(金) 11:28:20 ID:???
現在、共通レイアウトの head に jsファイルを3つ読み込ませています。
しかし、そのjsファイルが必要なのは特定のページのみ。

この3つ。
echo $html->script('jquery');
echo $html->script('js-global/FancyZoom.js');
echo $html->script('js-global/FancyZoomHTML.js');


この場合、特定のページのみでjsファイルを読み込ませるようにしないと、
結構速度が変ってくるものでしょうか?気にすることもないぐらい微々たる
ものでしょうか?

変更方法は default.ctpをコピーしてやるのがよさげでした。
http://stackoverflow.com/questions/1425084/adding-page-specific-javascript-to-each-view-in-cakephp

308 :nobodyさん:2010/12/03(金) 11:42:25 ID:???
すいません、

1.3だと <?php echo $html->script('jquery', array('inline' => false)); ?>

とview内にいれるのがよいのですね。

309 :nobodyさん:2010/12/03(金) 12:23:42 ID:???
俺も同じように悩む時あるけど、
やっぱり必要以外のファイルは読み込まない方が良いと思うよ。
あと、重さを気にするならHTMLヘルパーは使わない方が良いと思う。

310 :nobodyさん:2010/12/03(金) 12:39:47 ID:???
重さを気にするならcacheすればいいだけ
浅い知識で語るな

311 :nobodyさん:2010/12/03(金) 17:24:12 ID:???
本当にそう思ってるならそれで良いよ

312 :nobodyさん:2010/12/03(金) 18:17:30 ID:???
>>309-311
>>307は必要ないJSを読むと遅くなるか?と言っていて、それは>>308で解決していると思うのだが

313 :nobodyさん:2010/12/03(金) 18:55:55 ID:???
>>299
コンポーネントや定番プラグインでそのまま作れるならありじゃない?
Cakeってはまれば早いけど、ちょっと脇道にそれると逆に時間かかることあるし。
例えばAuthComponent使うつもりがメアドとユーザー名の両対応求められるとか。

314 :nobodyさん:2010/12/03(金) 19:05:47 ID:???
CakePHP2っていつ頃でるのかな?

315 :nobodyさん:2010/12/03(金) 19:50:28 ID:???
>>299
納期なんて関係ねぇ!いくら金を出せるんだ

316 :nobodyさん:2010/12/03(金) 19:58:24 ID:???
>>312
なにを言いたいのかサッパリ分からん

>>310
通信への負荷だけでなく、ブラウザ側の処理負荷は考えている?

317 :nobodyさん:2010/12/03(金) 20:02:20 ID:???
ちょwwブラウザのキャッシュの話はさすがにしてないだろ

318 :nobodyさん:2010/12/03(金) 20:40:12 ID:???
画像のリンクを貼る簡単な方法で紹介されてた方法で、target _blankをつけるにはどうすればよいでしょうか?
http://d.hatena.ne.jp/cakephper/20101201/1291166566 (参考)

echo $html->image(
"logo.png",
array(
'url' => 'http://www.site.jp/',
'class' => 'site_liste_image',
'alt' => 'サイト',
'target' => '_blank',
)

こうだと思ったら、できませんでしで、途方にくれてます。
どうすんの、今日作ったこの大量のリンク。。

319 :nobodyさん:2010/12/03(金) 20:48:27 ID:???
image()のオプションにtarget=>_blank渡してなんとかなると思う方がおかしいと思わない?
だってimage()はイメタグ吐き出すんだろ?

多分できないだろ素直にlink()使うかタグ書きな

320 :nobodyさん:2010/12/03(金) 20:58:12 ID:???
ヘルパーのソースみたけど、第二引数は alt と url しか書けないし
url は $this->url() を呼んでるだけだから target の指定はできないね

321 :nobodyさん:2010/12/03(金) 21:08:29 ID:???
$html->url()だけ利用してあとはタグ書けばいいのに。
デザイナーからもらうHTMLはクラス名やらなんやら色々書いてあって、そのたびに書き換えるのめんどうだから
src=""の中とかを$html->url()に正規表現で一括置換してる

322 :nobodyさん:2010/12/03(金) 21:25:39 ID:???
まあ、$html->image()をオーバーライドすりゃできなくはなさそうだが。
if ($url) {
 return sprintf($this->tags['link'], $this->url($url), null, $image);
}
ってところの、nullんところを工夫してゴニョゴニョ

わしはむしろそんなに大量に別窓ひらかせるリンクが散在してる状況のが問題な気がするよ。
画像に別窓リンクを設置するにしても、普通ループのなかでヘルパーを回して出力するもんだと思ってるんだけど。
ループの内部のヘルパーの記述に問題があったとしても、そこを直せば全部のループで修正が反映されるわけだし、
>318は一体どんなコードを書いてしまっているのか気になる。

323 :nobodyさん:2010/12/03(金) 23:08:29 ID:???
>>317
あぁ>>310はサーバーのことだけ考えていたのね。
だとしたら、人のことを「浅い知識」だと言う資格はないね。

324 :nobodyさん:2010/12/03(金) 23:14:08 ID:???
>>323
Htmlヘルパー使うか使わないかで、
クライアントサイドにどんな差があるのかを説明してみてくれるかw
クライアントが受け取るのはどちらもサーバーサイドが吐き出したHTMLソース
何が違う?w

325 :nobodyさん:2010/12/03(金) 23:21:13 ID:???
>>310>>309の最後の行
>あと、重さを気にするならHTMLヘルパーは使わない方が良いと思う。
に対して答えてるんだろうけど、
その後食い違いが生じててここまでグダグダに

326 :310:2010/12/03(金) 23:34:16 ID:???
そういうことか。
勘違いさせたなら謝る。

327 :nobodyさん:2010/12/04(土) 02:15:03 ID:xozd8d0/
けっきょくHABTM使って絞り込み検索やるときってどうやんの?
というかみんなやってる?
$this->model->query() とかでSQL書いてんの?

328 :nobodyさん:2010/12/04(土) 18:42:01 ID:???
その絞り込み検索をやりたいケースがないからな。
最近、bindModelをよく使うけど。

329 :nobodyさん:2010/12/06(月) 16:13:12 ID:???
JOINしたらSQL書かなくても出来るよ

330 :nobodyさん:2010/12/06(月) 16:47:43 ID:???
ジョインジョイントキィ

331 :nobodyさん:2010/12/06(月) 22:32:51 ID:???
Componentを動的に定義することってできる?

$object = ClassRegistry::init('Hoge','Component');
ってやってもできなかった・・・。

332 :310:2010/12/06(月) 22:46:33 ID:???
App::import('COmponent'....
してnew

333 :nobodyさん:2010/12/07(火) 01:27:42 ID:???
俺もやりたかったけど、諦めたよ。

一応、こういうのあるけど、この注意文を読むと怖くて組み込みたくなかった。
1.3系は開発中に2つほどマイナーバージョンアップしたしなぁ。

http://wp.serpere.info/archives/1138
> 注意: Cake本来の機能を超える機能を提供するため、Cakeコアのprivateなメソッドやプロパティにアクセスしています。Cakeのバージョンが上がると使用できなくなる可能性があります。十分ご注意ください。

334 :nobodyさん:2010/12/07(火) 02:15:05 ID:???
XAMPPで開発するのは駄目だな。遅くてイライラする。
やっぱ、VMwareにCentOS入れて開発環境作る方が良いのかな

335 :nobodyさん:2010/12/07(火) 02:31:26 ID:???
vmのxpに入ったxamppでやってるけど
そんな遅いかな?特に不満ないわ

336 :nobodyさん:2010/12/07(火) 02:44:23 ID:???
むしろVMでOS1個動かす分XAMPPより遅くなるんじゃないか?

337 :nobodyさん:2010/12/07(火) 03:06:47 ID:???
I/OがネイティブでなくてもVM上のLAMPのが速いよね。
稼働環境に合わせられてスナップショットも使えるし
最初の構築はXAMPPみたいにお手軽じゃないけど、その分以上にメリットのがある。

338 :nobodyさん:2010/12/07(火) 03:21:48 ID:???
XAMPPとEclipsePDT入れてると
VMのメモリが1GBはいるな

339 :nobodyさん:2010/12/07(火) 05:49:16 ID:???
FormHelper::error() ってフィールド毎に書かないとダメだと思うんだけど、
全部まとめて出すコードどっかに転がってないかな?
エラーメッセージを、各入力欄の横や下じゃなくって、
まとめてフォームの上に出す場合って良くあると思うし、
直ぐ見つかると思ったんだが。
探し方が悪いのかそういうヘルパーとか出てこなくってなぁ。

340 :nobodyさん:2010/12/07(火) 10:29:17 ID:???
コントローラでvalidateErrors()とか

341 :nobodyさん:2010/12/07(火) 15:36:20 ID:???
Join Join Join トゥザ Globe!

342 :nobodyさん:2010/12/07(火) 20:00:33 ID:???
XAMPPで開発している人、バージョン何使ってます?
PHP4と5を共有化出来るから1.6.8を使っていますが、
自分も多少重く感じます。(1ページ表示に数秒かかる)

343 :nobodyさん:2010/12/07(火) 21:14:52 ID:???
>>340
自分で作るしかないかなやっぱ。
モデル毎に分かれてるから若干めんどうだったんだけどなぁ。

344 :nobodyさん:2010/12/08(水) 08:10:12 ID:???
XAMPP遅いよね。
debugをオフにしたらだいぶ改善するらしいけど

345 :nobodyさん:2010/12/08(水) 12:35:17 ID:???
XAMPPで開発って書き込み権限の処理とか出来なくね

346 :nobodyさん:2010/12/08(水) 14:41:25 ID:???
逆にそれが面倒だからXAMPP使ってる。
VMwareで仮想環境+sambaも良いと思ったけど。

347 :nobodyさん:2010/12/08(水) 15:49:33 ID:???
それが面倒っつか、XAMPP使ってる奴って本番環境どうすんの?
テスト環境で動いてるけど本番環境でpermissionが云々で動きましぇーんとかいうの?


348 :nobodyさん:2010/12/08(水) 16:09:51 ID:???
そういうのありえるか?
画像のアップロードやファイルの読み書きぐらいだろ。
PHPでパーミッション必要な箇所って。

349 :nobodyさん:2010/12/08(水) 21:54:15 ID:???
ちゃんと本番環境へのデプロイ手順を確立してるから問題ないよ。

350 :nobodyさん:2010/12/09(木) 11:00:47 ID:???
cakephp1.3で$form->inputから複数のラジオボタンをまとめて作ったときに、ラベルが正しく機能してないのは仕様ですか

351 :nobodyさん:2010/12/09(木) 18:54:10 ID:???
>>350
そんなこと無いと思うけど??
具体的にどんなソースからどんなHTML吐かれてる?

352 :nobodyさん:2010/12/09(木) 22:41:46 ID:???
安いレンサバ借りるのが最強

353 :nobodyさん:2010/12/09(木) 23:33:34 ID:???
安いレン鯖借りてブラウザ確認する毎にFTPでアップするのか?

354 :nobodyさん:2010/12/09(木) 23:44:01 ID:???
阿呆には触れるな

355 :nobodyさん:2010/12/09(木) 23:53:53 ID:???
MAMPがいいよ。マンピー。
PHPやMySQLのバージョン合わせとかパーミッションの問題とかハイブリッドで解決できる。

356 :nobodyさん:2010/12/10(金) 00:01:45 ID:???
VMWareだろJK
PHP MySQL Apacheだけでキョウビのサービスがなり立つわけなかろ?

本番と同じディストリビューション用意していろいろぶっ込む
ソースコードの更新はrsync使ったシェルスクリプト書いとく(Capistranoは知らん)
RPM系ならRPM玉を用意してソフトウェアの設定ごとアップロードできるし。deb系は知らん。

357 :nobodyさん:2010/12/10(金) 03:31:23 ID:???
そういうのわかりきった上で、パーミッション変更する手間を惜しむから
XAMPP使ってるって話じゃないのか?

358 :nobodyさん:2010/12/10(金) 08:28:53 ID:???
>>353
WinSCPでミラーリングしてる

359 :nobodyさん:2010/12/10(金) 08:49:23 ID:???
FTPしかないとこはnetdrive使ってたわ スレチだろうけども。

360 :350:2010/12/10(金) 09:29:15 ID:???
$gender = array(1 => 'male', 2 => 'female');
echo $form->create('Radio',array('method'=>'post'));
echo $form->input('gender', array('type' => 'radio', 'options' => $gender));
echo $form->end();

<input name="data[Radio][gender]" id="RadioGender" value="1" type="radio"><label for="RadioGender">male</label>
<input name="data[Radio][gender]" id="RadioGender" value="2" type="radio"><label for="RadioGender">female</label>

cake1.3.6です
idが同じため、femaleの文字をクリックしてもmaleが選択されてしまいます。(femaleが選ばれてほしい)
before after オプションで自前でやるしかないでしょうか

361 :350:2010/12/10(金) 09:55:44 ID:???
先ほどの自前でやる方法を載せますが、とても冗長だと思います。
もっと良い方法があれば教えてください。
$gender = array(1 => 'male', 2 => 'female');
echo $form->create('Radio',array('method'=>'post', 'inputDefaults' => array('div' => false, 'legend' => false, 'label' => false)));
echo $form->input('gender', array('type' => 'radio', 'options' => $gender, 'hiddenField' => false, 'before' => '<label>', 'after' => '</label>', 'separator' => '</label><label>'));
echo $form->end();


362 :nobodyさん:2010/12/10(金) 11:11:18 ID:???
1.3.4だけど、ラジオボタンがラベル分けできてるけどな。
echo $form->input('User.sex', array('type' => 'radio', 'options' => Configure::read('User.sex'), 'label' => true));

で、各ラベルにはUserSex1とか付く。

createは↓こんな感じ。
echo $form->create(array('action' => 'add', 'inputDefaults' => array('label' => false, 'div' => false, 'legend' => false)));

363 :350:2010/12/10(金) 12:06:50 ID:???
1.3.4だと出来・・・た・・・・ありがとうございます。
比較してみたところ、1.3.6から、id生成の部分にslugを使うようになっていました。(1.3.4ではunderscore)

$attributes['id'] . '_' . Inflector::slug($optValue)

環境によるslugバグでおかしくなっていたようです。
http://dxd8.com/archives/209/


364 :nobodyさん:2010/12/10(金) 12:25:42 ID:???
そんな細かい違いがあったのか・・・
バージョンアップも考えものだな

365 :350:2010/12/10(金) 12:42:52 ID:???
slugバグ(1.3.xすべて)はキャッシュにも影響するので対応したいところですが、
PCREの再コンパイルか、cakeコアの修正となるので出来るだけやりたくないですね。。
既にバグとして報告されているようなので、次期バージョンで治ることを願います。

とりあえずブログの情報を元にコアの修正を行いました。(PCRE使う必要ないような・・・)
cake\libs\validation.php(161):
-$_this->regex = '/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/mu';
+$_this->regex = '/^[a-z\d]*$/i';
cake\libs\inflector.php(618):
-'/[^\s\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]/mu' => ' ',
+'/[^\w\s]/' => ' ',


366 :350:2010/12/10(金) 12:45:35 ID:???
一部間違えました
cake\libs\inflector.php(618):
-$_this->regex = '/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/mu';
+$_this->regex = '/^[a-z\d]*$/i';

367 :nobodyさん:2010/12/11(土) 17:08:25 ID:???
Cakeの気に入らない点は、ビヘイビアの関数書く時にいつも第一引数&$modelを書き忘れることだ。
ミスりやすいよ!何でこんな仕様なんだ?

368 :nobodyさん:2010/12/12(日) 03:57:35 ID:???
>>367
じゃあどうやって対象のModelを参照させるべき?

369 :nobodyさん:2010/12/12(日) 23:59:53 ID:???
setup()でModelをメンバに置いとくようなつくりになったらいいんじゃないか?

370 :nobodyさん:2010/12/13(月) 01:41:28 ID:???
actAsで指定してるんだからモデル初期化時にどうにかしろよ
コンポーネントと同じように使えるようにさせろ

371 :nobodyさん:2010/12/14(火) 00:26:29 ID:???
CakePHPって人口多い気がしたけどスレ伸びないのな

372 :nobodyさん:2010/12/14(火) 12:23:01 ID:???
特にもう書くこと無いんだろ。いいことじゃね?
しかし最近のPHPフレームワークの中では随分とレガシーな作りになってるはずなのに、
バグとかセキュリティホールがぽろぽろと出てくるね。

373 :nobodyさん:2010/12/14(火) 12:43:53 ID:???
Cake正直バグ多くね?セッション周りとかリダイレクト周りとか怪しい。
インターフェースもまだまだ洗練されてないし、未完成だろ。

374 :nobodyさん:2010/12/14(火) 12:52:12 ID:???
未完成というか、レガシーを引きずった故の副作用という希ガス
セッションとかリダイレクトなんかは、PHP自体にそれなりのものがあるのに、
自前でゴテゴテしたものを実装して、悪い意味で複雑になってしまった感がある。

375 :nobodyさん:2010/12/14(火) 13:06:04 ID:???
だから重くなってるのに、そこを見ようとせずに
「重いならキャッシュ使えばいいだろ」って言う奴は現実逃避してるだけだな。

376 :nobodyさん:2010/12/14(火) 13:09:46 ID:???
つくり直す必要があるな

377 :nobodyさん:2010/12/14(火) 13:45:17 ID:???
ただで使えるものとしてはまあアリだけど、金は取れないレベルだな

378 :nobodyさん:2010/12/14(火) 13:48:16 ID:???
Cake使い始めた時は、ぐぐっても情報が多くて選択は正解だったと思えたのだが
よく見て&試してみると古くて使えない情報ばかり
2006〜8年あたりの情報がよく出てくるけど、正直邪魔でしょうがない
2010年の情報はほとんどない

379 :nobodyさん:2010/12/14(火) 14:22:28 ID:???
CakePHPに求める機能に関しては、ある程度1.2で固まったからね。
新規で改めて出すべき情報も最近は無い気がする。

380 :nobodyさん:2010/12/14(火) 16:55:12 ID:???
>>378
これには同意だわ。
CakePHPの事調べるときは、まず記事の日付を見るよ。
2009〜2010年ならまだいいけど、2008年より昔だと正直あまり参考にならない。

381 :nobodyさん:2010/12/14(火) 17:26:06 ID:???
ここ1年くらいで始めた人は大変だろうねえ。

382 :nobodyさん:2010/12/14(火) 20:03:45 ID:???
ここ1年内に始めたけど、>>378の言うとおりだったな
なんとかcookbookを見たり、お前らに罵倒されながら覚えたけどw

383 :nobodyさん:2010/12/14(火) 20:48:56 ID:???
Cookbookあてにならんからなぁ、割と間違ってるし。
もっと新しい情報増えないもんかね。
Advent Calendarがずっと続けばいいのに。

384 :350:2010/12/14(火) 20:54:08 ID:???
いい加減php4に足引っ張られてる気がするな

385 :nobodyさん:2010/12/14(火) 20:54:49 ID:???
名前そのままだった恥ずかしい・・・

386 :nobodyさん:2010/12/14(火) 21:09:40 ID:???
Lithiumに期待だな

387 :nobodyさん:2010/12/14(火) 21:11:26 ID:???
プラグインも考えると、もうphp5状態なのになー

388 :nobodyさん:2010/12/14(火) 23:19:50 ID:???
でも、結構PHP4の使用率高いよ。
フリープログラム掲載してるけど、しょっちゅうPHP4で動かないと言われる

389 :nobodyさん:2010/12/15(水) 07:10:35 ID:???
PHP4ってサポート終わってるよね?
セキュリティホールがあっても修正されないんだよね?

390 :nobodyさん:2010/12/15(水) 09:27:53 ID:???
そうだよ

391 :nobodyさん:2010/12/15(水) 12:12:12 ID:???
vendorsに入れているcronで処理するファイルがあるのですが、
これをコントローラーから呼び出して実行したいと思います。
どう書けばよいのでしょうか?

392 :nobodyさん:2010/12/15(水) 16:10:21 ID:???
今日からcakephpじゃー!と思って
iis7.5
php5.3.4
cakephp1.3.6
をそろえて
http://sites.google.com/site/kikineria/cakephp/dlandinstall
ここ見ながらやったんだけど

Warning: include() [function.include]: open_basedir restriction in effect. File(D:\Program Files\cakephp-cakephp-f6748d4\cake\bootstrap.php) is not within the allowed path(s):
(C:/inetpub/wwwroot) in D:\Program Files\cakephp-cakephp-f6748d4\app\webroot\index.php on line 76

Warning: include(D:\Program Files\cakephp-cakephp-f6748d4\cake\bootstrap.php) [function.include]:
failed to open stream: Operation not permitted in D:\Program Files\cakephp-cakephp-f6748d4\app\webroot\index.php on line 76

Warning: include() [function.include]: Failed opening 'cake\bootstrap.php' for inclusion (include_path='D:\Program Files\cakephp-cakephp-f6748d4;D:\Program Files\cakephp-cakephp-f6748d4\app\;.;C:\php\pear')
in D:\Program Files\cakephp-cakephp-f6748d4\app\webroot\index.php on line 76

Fatal error: CakePHP core could not be found. Check the value of CAKE_CORE_INCLUDE_PATH in APP/webroot/index.php.
It should point to the directory containing your \cake core directory and your \vendors root directory. in D:\Program Files\cakephp-cakephp-f6748d4\app\webroot\index.php on line 77

こんなん出てきて死亡。スタートラインにも立てなかったぜ\(^o^)/

393 :nobodyさん:2010/12/15(水) 16:21:33 ID:???
なんでわざわざIISなんだよ。
警告見てググればわかるけど、open_basedirに引っかかってる。

http://www.php.net/manual/ja/ini.core.php#ini.open-basedir

IISでのopen_basedirの解除方法とか知らんけど。

394 :nobodyさん:2010/12/15(水) 16:27:33 ID:???
>>393
やさしー!
もうちょっとがんばっちゃうね!

395 :nobodyさん:2010/12/15(水) 19:11:37 ID:???
>>391
ふつうに子プロセスとして実行すればいいんじゃない?

396 :nobodyさん:2010/12/15(水) 19:24:35 ID:???
>>395
すみません、「子プロセス」の意味がよくわかりません・・・

397 :nobodyさん:2010/12/15(水) 19:52:30 ID:???
>>393
ディレクトリが違うごとに書き換えんのかよー!?やってらんね!
って思ったら、複数指定できんのね!
open_basedirのヒントくれてありがとー\(^o^)/


open_basedir = "C:/inetpub/wwwroot;C:/Windows/Temp;D:/Program Files/cakephp-cakephp-f6748d4"
ってしたら、いつもの黄色と緑の画面出てきたー!
やったぜい

398 :nobodyさん:2010/12/15(水) 21:01:24 ID:???
>>396
ググって解決してるだろうけどいちおー。
http://www.php.net/manual/ja/book.exec.php

399 :nobodyさん:2010/12/15(水) 21:14:07 ID:???
>>398
execの事ですか。それをコントローラ内で実行するんですね。
試してみます。ありがとうございました。

400 :nobodyさん:2010/12/15(水) 23:21:27 ID:???
Cakeはずっと使ってきているが、衝動的に嫌気がさして、
ちょうどLithiumが0.9.9 とかwktk感が出てきたっぽいので、
Lithium / PHP5.3 / MongoDB に挑戦してみたが
(公式)ドキュメントなさ過ぎワロタ状態 & 環境構築だけで一苦労だったでござる
(おまけにPHP5.3系では既存のCakeのコードもうpグレードしないとだし)
やっと見つけたLithium日本語フォーラムも閑古鳥だし
無名関数を使ったフィルタチェインとか面白そうなんだがなー
APIの大変更とか起こりそうな感じではあるので、まだCakeだな

401 :nobodyさん:2010/12/15(水) 23:23:30 ID:???
(追記)だがMongoDBは面白そうだ
Cake + MongoDB で実運用してる人いるのかな

402 :nobodyさん:2010/12/16(木) 00:08:09 ID:???
1.3と1.2 初学者におすすめなのは?

403 :nobodyさん:2010/12/16(木) 00:24:36 ID:???
RDBMS + ORMはとてもキモくて使う気になれなかったが、
MongoDBとやら + CakePHPは面白そうだな。

404 :nobodyさん:2010/12/16(木) 00:27:46 ID:???
ちなみにCakePHPってDBはRDBを想定しているのではないの?
KVSに対応できるもの?

405 :nobodyさん:2010/12/16(木) 02:09:13 ID:???
DataSourceを拡張したものでmemcachedとかTokyo Tyrantとか用のが
公開されてるね(試してない)。JOINがないなら、わざわざActiveRecord通すことも
ないとは思うけど・・・。セッションの保存用としての利用にはMemcachedは
デフォで使えるみたいだね(やっぱり試してない)
>>402
どうせバージョン乗り換え時に相応の学習コストがかかるし、どっちもStableなんだから1.3
>>403
ORM ってRDBの取り回しのために使うもんだと思ってた

406 :nobodyさん:2010/12/16(木) 03:13:07 ID:???
CakePHPとMongoDBでやろうとしたけど、色々ハマってやめた。
CakeはRDBを前提としすぎてると思った。
俺の思った一番のネックはHelper->setEntity()だな。

407 :nobodyさん:2010/12/16(木) 04:26:14 ID:???
>>406
レスどうもです。ちょっとわからなかったので自分なりに考えてみた。
・MongoDBはスキーマレス
・CakeのMongoDBデータソースを使う場合、モデル内にスキーマらしきものを記述する(らしい)
・Cake本体が"Describe"とか発行してテーブル(コレクション)の構造を把握することが出来ないので、
 Helper側でModelName.FieldNameを自動設定する時にはまり所が出来る
・フィールドの中にさらにArrayが入ってたりするともう大変
こういう理解でいいのかな・・・cakephp-mongodbのサンプル見る限りはなんとかなりそうな気がしたが、
いろいろでてくるのか〜。
気力と実力と時間が出来ない限りは、CakePHP + MySQL をおとなしく使い続けるしかないのかな・・
そのへんLithiumはイケてるのかと思うと迷う。

408 :nobodyさん:2010/12/16(木) 10:13:17 ID:???
>>407
FormHelperで配列をPOSTするようなのが、
type=select multiple=trueじゃないと作れないからね。
同じモデルへの送信を複数に出来るから、
[{'name':'foo'},{'name':'bar'},{'name':'buz'}]見たいなのは出来ても、
['foo','bar','baz']みたいなのは出来なかったよ。

でもcakephp-mongodbのコミッタも増えてるし、
そのうち使えるようになるんじゃないのかな。

409 :nobodyさん:2010/12/16(木) 12:33:59 ID:???
コンポーネントを動的にロードする方法ありませんか
今作ってるあるコントローラが、コンポーネント50個ぐらい使ってて、var componentsが長すぎる
デカいアプリ作るのに向かないのかなCakeって

410 :nobodyさん:2010/12/16(木) 12:44:37 ID:???
>>409
ttp://book.cakephp.org/ja/view/933/The-App-Class

Cookbookくらいぜんぶ読んどいて損ないから。
というか、もしチーム開発してたら迷惑だから。

411 :nobodyさん:2010/12/17(金) 06:04:07 ID:???
質問者じゃないけど、ちょっとやってみたけど、
App::import('Component', 'Foo');
しても、initialize()やstartup()を上手い事呼んでくれる訳じゃないのね。

public function index(){
$Foo = App::import('Component', 'Foo');
$Foo->initialize($this);
$Foo->startup($this);
}

こう書けばいいのかとも思ったけど、
beforeRender()やshutdown()も呼ばれないし、これ使えないんじゃないかな?
なんか勘違いしてるんだろうか。

http://book.cakephp.org/ja/view/933/The-App-Class#コンポーネントの読み込み-939
うわ、ChromeがURLコピーした時URLエンコードしてくれなくなってる・・・

412 :nobodyさん:2010/12/17(金) 06:24:46 ID:???
そりゃ当然コールバックは呼ばれないよ

413 :nobodyさん:2010/12/17(金) 09:34:54 ID:???
App::import('Component', 'Foo');
$foo = new Foo();
こうするべきじゃないの?

414 :nobodyさん:2010/12/17(金) 15:52:56 ID:???
App::import('Component', 'Foo');
$foo = new Foo();
$foo->initialize($this);
$foo->startup($this);

こんな感じかね
自前でこういう関数作っとけばいいんじゃね

415 :nobodyさん:2010/12/17(金) 15:57:52 ID:???
もはやパスの解決以外の意味で"require_once"を使わない意味が分からんw

416 :nobodyさん:2010/12/17(金) 16:10:52 ID:???
>>414
ベターだろうけど色々ふぐあいの原因になる。
そもそも設計し直したほうがいい。確実に

417 :nobodyさん:2010/12/17(金) 17:05:13 ID:???
どっちにせよコールバックが動かないならなんの意味も無い気がする

418 :nobodyさん:2010/12/17(金) 17:10:48 ID:???
$html->linkは重いと評判なのでpathで書こうと思います。

しかし、この場合、ローカルとサーバ上で画像のリンクをいちいち
書き換えないといけないのはしょうがないのでしょうか?

419 :nobodyさん:2010/12/17(金) 17:22:51 ID:???
>>416
なんで?
Cakeも中で同じような処理やってんじゃないの?

設計し直しても作らなければならない機能は減らない

420 :nobodyさん:2010/12/17(金) 17:31:16 ID:???
コンポーネント50個ってなんでもかんでもコンポーネントにしてるだけだろ


421 :nobodyさん:2010/12/17(金) 17:58:28 ID:???
411だが、変数名は試した時は$FooComponentだったんだ。
貼る時長いなと思って削っちゃった。
で、結局コールバックが呼ばれないなら、
コンポーネントよりもlibsに置いて素のクラスとして呼んだほうがいい気がする。
コールバックが呼ばれるからこそのコンポーネントだと思うし。

>>409 は50個あるコンポーネント、全部AppControllerで設定してるの?
そんだけコンポーネントあれば、部分的に使うやつもあるんじゃないの?

あと10日ほど前に同じ話題出てたよ。
>>331-333

422 :nobodyさん:2010/12/19(日) 09:44:23 ID:???
modelのdeleteAllのコンディションで、
dateフィールドの日付が一週間以上前のデータを全て消すということはできるでしょうか?

例えば、

bookテーブル (id, name, date)
ここのdateが 2010-11-30 とか 2010-12-10 とかバラバラになり、一週間以上前の
データを全て消したいです。

マニュアルを読んでいると、特定の日付を指定して消すことはできるみたいなのですが、
こういう複雑なことはMySQLで直接書くしかないでしょうか?


423 :422:2010/12/19(日) 10:26:17 ID:???
ネットを参考に試してみたコードはこんな感じです。
でも動かなかった。。

$aWeekBefore = strtotime('-1 week');
$my_datetime = date("Y-m-d",$aWeekBefore);

$conditions = array('created' => '< ' . $my_datetime);
$this->deleteAll($conditions);

424 :422:2010/12/19(日) 10:36:04 ID:???
お騒がせしました。以下のコードで出来ました。

$aWeekBefore = strtotime('-1 week');
$aWeekBefore = date("Y-m-d",$aWeekBefore);

$conditions = array("created < '$aWeekBefore'");
$this->deleteAll($conditions);

425 :nobodyさん:2010/12/19(日) 10:51:22 ID:???
$conditions = array('created <' => $aWeekBefore);
じゃなかったっけ

426 :422:2010/12/19(日) 16:05:07 ID:???
>>425

むむ、一応動いたんですけど、そっちのほうが正しいやり方なんですかね。
マニュアルが見つからないもので。。



427 :nobodyさん:2010/12/19(日) 16:22:35 ID:???
http://book.cakephp.org/ja/view/74/Complex-Find-Conditions
「見つからない」って、Cookbookぐらい一通り読んでおけよマジで

428 :422:2010/12/19(日) 16:55:25 ID:???
すいません、すいません。deleteの項目しか見てませんでした。

そして、ありがとうございます。

429 :nobodyさん:2010/12/19(日) 16:59:53 ID:???
Cookbookは正直分かりにくい。

430 :nobodyさん:2010/12/19(日) 18:41:35 ID:???
bookって言うぐらいだから全部通して読んでおくしかないと思うよ
セクションごとに「全てを1ページで読む」で

431 :nobodyさん:2010/12/19(日) 21:05:11 ID:???
てか、リンク先がおかしい

432 :nobodyさん:2010/12/19(日) 21:22:23 ID:???
わかりにくいと言うより、情報が足りないよね
細かいことが全然わからない

433 :nobodyさん:2010/12/19(日) 21:31:53 ID:???
cookbook全部読んで情報足りないとおもうなら、
http://api.cakephp.org/classes
これでそれぞれの挙動確認したらいいよ。
あと、もっと深くAPIしるには
coreの中に入ってるtestCase読むのがマジオススメ
こんな昨日あるんだって発見が多い

434 :nobodyさん:2010/12/19(日) 23:36:16 ID:???
>>433
testCaseは読んでなかったな。
APIリファレンスは必読っていうか、
最近じゃ疑問が出たらCookbookは読まずにAPIリファレンスに直行だ。

435 :nobodyさん:2010/12/19(日) 23:36:44 ID:???
結局、Cakeにしろ手のフレームワークにしろ
Webアプリを作る奴らの絶対数って減ってるのかな

436 :nobodyさん:2010/12/20(月) 01:44:45 ID:???
>>431
英語版読んだ方がいいよ。
まあ日本語リソースが充実してるのがcakeの利点の一つでもあるから残念な点だけどね。

437 :nobodyさん:2010/12/20(月) 07:27:46 ID:???
>>435
Cakeにしろ手のフレ このあたりの意味がよく分からないけど、
webアプリを作る人数は増えてるんじゃないか?
なんとなくだけど。
何で減ってるっておもうん?

438 :nobodyさん:2010/12/20(月) 07:54:47 ID:???
「オレオレFWを作る人間の数が減っている」と言いたいのだろうと等質の発言をエスパーしてみる

439 :nobodyさん:2010/12/20(月) 09:57:33 ID:???
Zendしか使ったことないけどCakeどう?
使いやすい?

440 :nobodyさん:2010/12/20(月) 10:13:24 ID:DEKQpeb3
cookbookをローカルにDLできるよ。

http://book.cakephp.org/ja/complete/3/The-Manual

441 :nobodyさん:2010/12/20(月) 10:23:13 ID:???
>>439
オレオレ → Ethnaをちょっとだけ使ってがっかり → オレオレ → CakePHP
な俺としては、CakePHPは嫌いです。
2回目のオレオレのとき、php4切りしたから、php4を引きずってるしね。
Cookbookも情報不足だし間違いもあるし、引数が連想配列なのに、
使われるキーがCookbookにもAPIリファレンスにも書いて無いから、
結局ソースを見ることになる。
慣れて覚えるまでは結構イライラするよ。
でも、人口は多いから、ユーザーベースの情報量は多いし、
やっぱりオレオレフレームワークを作るコストや、そこで間違えるリスクを考えると、全然あり。
でもZendとか、他のフレームワーク使ってるなら、あえて乗り換える程良いとこ無い気がする。

442 :nobodyさん:2010/12/20(月) 11:37:33 ID:???
すまん。確かに統質っぽい書き方だw

Cakeの情報が少ない・古くなったと言うレスを見て
「Cakeやこの手のフレームワークを使う人数も少なくなったのかな?」
ってのが言いたかった。


443 :nobodyさん:2010/12/20(月) 11:54:19 ID:???
つっても実際1.3になってからの情報はすくないし

444 :nobodyさん:2010/12/20(月) 12:38:34 ID:???
ModelのafterFind()の第2引数の$primaryって、
どういう場合にtrueになって、どういう場合はfalseなんだろ?
APIリファレンス見ても、いまいち意図がわからない。

http://api13.cakephp.org/class/model#method-ModelafterFind
Whether this model is being queried directly (vs. being queried as an association)

445 :nobodyさん:2010/12/20(月) 15:44:35 ID:???
上にも書いてたけど、情報多いといっても古いものばかり。
新しい情報ほど少ないってことは実は使ってる人減ってたりして?

446 :nobodyさん:2010/12/20(月) 16:18:34 ID:???
無いわけじゃないんだけどね。
ただ、検索結果には古いエントリばっかりって感じだと思う。
俺も、単にこれどうやっていいかわかんねぇってのから、
一応Tipsみたいなのまで、ちょいちょい書いてるけど、
CakePHPで検索されてくるのはかなり少ないよ。

447 :nobodyさん:2010/12/20(月) 16:41:04 ID:???
プログラムの重いところを探すのは、みなさんどうやっていますか?

自分はこんな感じで、もっといい方法あるんじゃないかなあと妄想しています。

$time_start = microtime(true);

for( $i=0; $i<1000; $i++ ){
$str .="$i回";
}

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "$time秒掛かりました。";


448 :nobodyさん:2010/12/20(月) 16:50:04 ID:???
スレチ

449 :nobodyさん:2010/12/20(月) 17:01:09 ID:???
まぁ業界的にはxDebugを使ったプロファイリングだろうな。
俺はそんな要件が厳しくないので、めんどくさくてめったに使わないから、
あんま説明はしてやれんが。
xdebugがphp拡張モジュールだから結構準備が面倒だけど、興味があるなら下記でググってくれ。

xdebug プロファイリング

スレに合わせるためにじゃないが、たまたまさっき見かけたのはこれ。
http://blog.restartr.com/2010/10/10/the-xhprofpanel-debugkit-custom-panel-cakephp/

XHProfの出力をDebugKitで見せてくれる、DebugKitのカスタマイズみたいだ。
俺は使ったことは無いから、別にオススメしてるわけじゃないぞ。
XHProfもphp拡張モジュールだから、導入が面倒なのは同じかね。

450 :nobodyさん:2010/12/20(月) 17:12:56 ID:???
コード数行〜数十行単位であたりがつくんだったらそれでもいいと思われ
どのクラスの呼び出しで時間食ってるのか、とかの視点でみたいんだったらプロファイラ

451 :nobodyさん:2010/12/20(月) 17:14:59 ID:???
450です。
ごめんかぶった

452 :nobodyさん:2010/12/20(月) 18:06:14 ID:???
>>449 >>450

どうもありがとうございます。

cakePHP独自のやり方があるのかなとも思ったのですが、
特にそんなことはないのですね。

453 :nobodyさん:2010/12/21(火) 00:26:27 ID:???
お前らさぁ
いつまでORMとかキモいことやってんだよ。

454 :nobodyさん:2010/12/21(火) 00:47:24 ID:???
そこにデータがある限り

455 :nobodyさん:2010/12/21(火) 02:43:02 ID:???
OOPとRDBを採用するのをやめるまで

456 :nobodyさん:2010/12/21(火) 15:24:33 ID:???
actionを自動で作るって無理ですよね?

やりたいことはビューのテンプレート(アクション)をプログラムで作成して
それにアクセスしたいんです。Pagesを使うとURLが変わるし・・。

457 :nobodyさん:2010/12/21(火) 15:30:28 ID:???
本気で何言ってっかわかんね

458 :nobodyさん:2010/12/21(火) 15:43:01 ID:???
等質の発言を俺がエスパーしてみる
Pages -> = PagesController
URLが変わるし・・・ -> 同一のURL内で複数の内容を表示させたい
テンプレート(アクション) -> View TemplateなのかController Actionなのかわからん
actionを自動で作る -> ????????

CakePHPにエスパーしてもらうって無理ですよね?と等質が言ってると思われます。

459 :nobodyさん:2010/12/21(火) 15:48:10 ID:???
データベースにViewテンプレートを格納する
改造かプラグインか何かを見かけた事あるし、
出来なくはないんじゃない?
なにしたいのかよく分からんから、
勝手に受け取った印象でだけど。

460 :nobodyさん:2010/12/21(火) 16:06:49 ID:???
俺も出来ると思う。

でも何がしたいのかよく分からないし言ってることが分からないので、
俺も印象でだけど。

461 :nobodyさん:2010/12/21(火) 16:49:48 ID:???
/controllers/test_controller.phpのindexアクションはURLだと
http://example.com/test/index

になりますよね?対象となるビューは/views/test/index.ctpにあるわけです。
では、/views/test/aaa.ctpというファイルを作ったとします。
当然、コントローラーに
function aaa(){}
と書かないと、http://example.com/test/aaa でアクセスできませんよね?

コントローラーにアクションを書かなくてもアクセスできる方法ってないですか?
と言うのが質問です。本気で何したいかわからないレベルの質問で済みません。

462 :nobodyさん:2010/12/21(火) 16:52:01 ID:???
pages_controllerをコピーしてきて
名前変えればいい。
それだけだろ

463 :nobodyさん:2010/12/21(火) 16:59:47 ID:???
>>461
いくつかヒントな
> 対象となるビューは/views/test/index.ctpにあるわけです。
コントローラアクションとビューは、必ずしも同じ名前である必要はないよ。
どのビューを使うかはコントローラアクション内で指定できる。だから条件分岐でビューを切り替えることも出来る。
> 当然、コントローラーに
> function aaa(){}
> と書かないと、http://example.com/test/aaa でアクセスできませんよね?
ConfigのRoutes.php の設定方法(ルーティング)をよく調べれ。
URLの操作もそこでできる。

あとはどう実装したいのか次第。

464 :nobodyさん:2010/12/21(火) 17:09:24 ID:???
コントローラー通さないならhtmlでも置いとけば?

465 :nobodyさん:2010/12/22(水) 01:01:58 ID:???
質問です。
CakePHP v 1.3.3

時間のかかる処理(a)のビューかルーティングが、
後から実行した処理(b)に奪われる現象に遭遇して困っております。
aのurlにアクセスすると、bのurlで表示されるべき内容が表示されてしまうと言った具合です。
urlはaのままです。

開発時には、そのような現象は発生せず、公開後、多くのユーザが訪れて発生しました。
複数の処理が実行される状況で発生するようです。

ですので、シングルトンが関わっているのかなと考えておりますが、
このような経験をした方は他にいらっしゃいますか?
または、ルーティングの設定ミスでもこのような現象は発生しますでしょうか?

解決方法をご存知でしたらご教示頂ければありがたいですmm


466 :nobodyさん:2010/12/22(水) 03:14:14 ID:???
>>465
そもそもアプリ側にバグはない前提?
ログ見ても見当つかないんなら、応急処置でユーザ毎にある情報
(DBのレコード等)をロックするようにしてからじっくり考えるとか。
遅くなるのを要件が許せばね。
Cake側の機構でありえるのは知らず知らずのうちに
クエリかViewのキャッシュが働いているとかかな。
それもアプリ側の制御ミスだけど。

それとCakeを1.3.3で止めてるのは
最新だとパッチが当たらないくらいにコード改変しまくりなの?

467 :nobodyさん:2010/12/22(水) 13:47:23 ID:???
処理というのはアクションと読み替えても良いんだろうか。
詳しく書いてはあるといえばあるんだけど、
トラブルが複雑そうなだけに、やっぱりよく分からないな。
まぁurlとも書いてあるからアクションで良いんだと思うんだけど、
その場合、routesの処理のところかdispatcherのとこのソースを見るのが良いんじゃないか?
別アクションが動く可能性のある分岐なのかそうじゃないか。

あと、このトラブルの場合、aとbの関係性が気になる。
同じコントローラーの別メソッドなのか、同じメソッド名だけど別コントローラーなのか、
片方がPrefixルーティングなのか、routesでのaとbの書かれ方などなど。

まぁ複雑そうだから、最終的にはソース嫁になりそうだけど。

468 :nobodyさん:2010/12/22(水) 14:31:24 ID:???
>>465
requestActionで、コントローラアクションから別のコントローラアクションを呼びまくったりしてると
もう最悪だな
それと「時間のかかる処理」がなんなのかだろうけど、
>>466 で言及してるキャッシュ周り
>>467 で言及してるルーティング周り
あたりから見ていく感じかな

469 :465:2010/12/22(水) 17:59:15 ID:???
皆様ご意見ありがとうございます。

やはり最初はキャッシュを疑いましたが、
キャッシュ機能を無効にしても同様の現象が続いたので、
ルーティングに原因を求めた次第です。
サーバーの問題も疑いましたが、
aのページキャッシュにbの内容が保存されていたので、やはりアプリの問題だなと考えています。

>466
期待を胸に最新にアップデートしましたがダメでした、、。
少し説明が足りず申し訳なかったですが、
一般で言う、フロント,表側での現象なのでユーザ個別の情報をDBに取りに行くという処理はありません。
セッションやクッキーとは無縁のもっと単純なレベルの問題と考えています。

>467
処理と書かせて頂いたのは、リクエストを受けてからレンダリングまでの間で何が原因か不明なのでそう書きました。
ご指摘の通り、もう少し詳しく確認したところ、
同一コントローラで発生しているようで、コントローラ間を跨いで発生することは無いようです。
そして、それらはroutes.php内で独自のルーティング処理を記述しています。
ですので、やはりこの辺りが怪しいですね、、。

>468
"時間のかかる処理"ですが、単にリクエストからレンダリングが少々重たいページなんですよね、、。


ただやはり現象の発生が100%ではないのが、気持ち悪いです。
再現性、トラッキングが難しく、少々頭が痛いですが、やはりルーティング周りを確認していきたいと思います。
でも、ルーティング設定ミスなら100%再現されそうですよね、、。


470 :nobodyさん:2010/12/22(水) 18:33:59 ID:???
> キャッシュ機能を無効にしても同様の現象が続いたので、
> aのページキャッシュにbの内容が保存されていたので、やはりアプリの問題だなと考えています。

ここ、矛盾して無いか?
ただ、キャッシュという事でひとつ思い出した。

http://dxd8.com/archives/209/

これじゃないか?
CentOS5でパッケージリポジトリからのPCRE使ってると、
確かこれにぶち当たるはずだよ。

471 :465:2010/12/22(水) 19:19:44 ID:???
>470
あっすみません。キャッシュを無効にする前の事です、、。

URLありがとうございます。
ルーティングでも何らかの場面でスラッグ変換処理行っている可能性はありますね。
ちょっと確認してみます。

しかし、発生頻度が数%で、アクセス数に比例して頻度が上がるんですよね、、。
ルーティングが別々のプロセス間で共用されている事を考えています。
シングルトンと言えども、
リクエストa,bに対して、プロセスa,bが実行される中、aとbが互いに干渉し合う事ってあるんでしょうか?


472 :nobodyさん:2010/12/22(水) 19:42:24 ID:???
phpって1HTTP リクエスト毎に独立してんじゃないっけ?

473 :465:2010/12/22(水) 21:27:27 ID:???
ですのよね、、。何も信じられない、、。
今なら新興宗教とか信じられそうです。
年越さないようにがんばります、、。

474 :465:2010/12/22(水) 21:28:37 ID:???
ですのよって、、。おねぇか。
ですよねの間違いでした。

475 :nobodyさん:2010/12/22(水) 21:41:28 ID:???
「ルーティングの設定に穴があった」だったら明るく解決だけど、
そうでない場合、少しイヤなバグだな・・・
Cake使ってる高負荷サイトってどの辺だろう

476 :nobodyさん:2010/12/22(水) 23:51:19 ID:???
もしかして動的にモデルの構造が変更されるようなページ?

477 :nobodyさん:2010/12/23(木) 08:10:42 ID:???
つーか、そんな時こそプロファイラじゃないか?
もしくはステップ実行。
xdebug使ってみては?

478 :nobodyさん:2010/12/23(木) 10:12:06 ID:???
重いと評判のhtmlHelperですが、ローカル環境と本番環境のリンクずれを
気にしなくてよいので、Linkは積極的に使っています。

しかし、<base>でURLを切り替えれば、この問題もクリアされ、
簡潔なhtmlコードを書けばよいだけになる気がします。

リンクずれ以外にはhtmlヘルパーを使うメリットって何があるでしょうか?
教えていただければ幸いです。

479 :nobodyさん:2010/12/23(木) 10:44:37 ID:???
HTTP→HTTPSの切替がしやすいってのがあった。
ま、相対パスだから当たり前なんだけど。

480 :nobodyさん:2010/12/23(木) 10:58:51 ID:???
>>478
Routingを使うならURLの記述はarray()でしたほうが良い
アクション名変えるだけですべてのページ書き直すとか無理

481 :478:2010/12/23(木) 12:05:15 ID:???
>>479
hmhm。 そういう利点もあるのですね。


>>480
なるほど、自分はRouting使っているので、やはりLinkは引き続き使ったほうがよい
気がしてきました。

482 :nobodyさん:2010/12/23(木) 12:21:57 ID:???
というかHtmlHelper重いから使わないほうがいいとか言ってる奴は、
CakePHP重いからピュアなPHPで書いたほうがいいって言ってるのと同じなんだけど。
速度気にするならビューやDBやらをキャッシュすればいいだけだし。
本末転倒もいいところだわ

483 :nobodyさん:2010/12/23(木) 12:47:08 ID:???
こういう、画像に対して、サイト内の画像をリンクするのはヘルパーでどうやるのでしょうか?

<a href="/test/img/sample_mail.jpg" id="sampleMail">
<img src="/test/img/new/sample_mail.png">
</a>


このスレを参考に、こんな感じで試したけど上手くいかない。。
echo $html->image(
"new/sample_mail.png",
array(
'url' => 'sample_mail.jpg',
'id' => 'sampleMail',
)
);

484 :nobodyさん:2010/12/23(木) 13:04:15 ID:???
IDとか付くときはurlだけ使ったほうがいいよ

<a href="<?php echo $html->url('/img/sample_mail.jpg');?>" id="sampleMail">
<?php echo $html->image('sample_mail.jpg');?>
</a>


一応こういう方法があるんだけど。
echo $html->link(
$html->image("sample_mail.jpg"),
"/img/sample_mail.jpg",
array('escape'=>false)
);


ID変えて入れなきゃなんないなら>>483みたいなimage()でやるのは無理

485 :nobodyさん:2010/12/23(木) 13:07:11 ID:???
あーごめんID入れるの忘れてた

echo $html->link(
$html->image("sample_mail.jpg"),
"/img/sample_mail.jpg",
array('escape'=>false, 'id'=>'sampleMail')
);

486 :483:2010/12/23(木) 15:03:20 ID:???
>>484

凄い!
urlだけ使う方法があるとは、考えてみればカンタンだけど盲点でした。

>>485 のやり方で、上手くいったのですが、
id変えて入れなきゃとはどういう意味でしょうか?

なんにせよ、素晴らしいリプライをありがとうございます!

487 :nobodyさん:2010/12/23(木) 15:12:54 ID:???
IMEの予測変換が邪魔したみたいだわ

× ID変えて入れなきゃなんないなら
  ↓
○ ID入れてやんなきゃなんないなら


つまりhtml->image()ではAタグにidやらclassやらを指定できないってことね。

488 :483:2010/12/23(木) 22:17:18 ID:???
>>487

納得。ありがとうございます。

489 :nobodyさん:2010/12/23(木) 22:53:41 ID:???
俺はむしろurlだけ使う方法を採用してるな。
その方がソースも綺麗で分かりやすいし。

490 :nobodyさん:2010/12/27(月) 11:08:36 ID:???
遅いレスだけど $html->link使わないときは
こんな書き方もあります
<?= $html->tag('a',
 $html->image('sample_mail.jpg'),
  array(
   'id' => 'sampleMail',
   'href' => $html->url('/img/sample_mail.jpg')
  )
) ?>
タグ書きたくない病なので$html->tag結構使ってる
(1.1系だったら$html->contentTagだったかな)

491 :nobodyさん:2010/12/27(月) 11:12:50 ID:???
ショートタグ使うなや

492 :nobodyさん:2010/12/27(月) 11:25:34 ID:???
http://bakery.cakephp.org/articles/markstory/2010/12/26/happy_holiday_yule_cake_-_cakephp_2_0-dev_released
Happy Holiday yule cake - CakePHP 2.0-dev released

493 :nobodyさん:2010/12/27(月) 11:36:15 ID:???
>>490書くならタグ書いたほうがましだろ
何のメリットもないww

494 :nobodyさん:2010/12/27(月) 11:38:09 ID:???
>>490
素直にタグ書けよw

495 :nobodyさん:2010/12/27(月) 11:48:25 ID:???
>>492
例外処理がまともになるのかな。予期せぬ例外もきちんとcatchしてくれるならうれしい。

496 :nobodyさん:2010/12/27(月) 14:44:58 ID:???
490です メリットなくはないよ
たとえばこんな感じで繰り返し書くときに見通し考えてタグ書きたくないときとか
<?
/* サブメニュー定義(実際はcontrollerからsetしたり) */
$subMenuList = array(
'テスト1' => array('image' => 'test1.jpg', 'url' => '/hoge/test1', 'id' => 'test1'),
'テスト2' => array('image' => 'test2.jpg', 'url' => '/hoge/test2', 'id' => 'test2'),
);
/* 繰り返し処理でli要素作成 */
$subMenu = '';
foreach($subMenuList as $menuName => $menu) {
$subMenu .= $html->tag('li', $html->tag('a',
$html->image($menu['image'], array('alt' => $menuName)),
array(
'id' => $menu['id'],
'href' => $html->url($menu['url'])
)
));
}
?>
<? /* サブメニュー出力 */
echo $html->div('submenu', $html->tag('dl', $subMenu));
?>
ビューの中でこんな感じでサブメニューを出力させたりするのに使ったりしてるよ
自前のヘルパー作ってもいいんだけど
まあこんなやりようもあるということで

497 :nobodyさん:2010/12/27(月) 15:16:21 ID:???
だから誰もとくしねえコードかいてんじゃねーよ
<li>って書いてたほうが他の人も分かりやすいわ
一人でオナニーやってろ

498 :nobodyさん:2010/12/27(月) 15:57:22 ID:???
へーい すいませんでした

499 :nobodyさん:2010/12/27(月) 16:57:32 ID:???
それで慣れちゃったんだろうけど、
俺はそのコードを触りたくないな

500 :nobodyさん:2010/12/27(月) 17:01:43 ID:???
>>496
>見通し考えてタグ書きたくないときとか
見通しを悪くしたいとは、変わった方もいらっしゃるんですね

501 :nobodyさん:2010/12/27(月) 18:16:04 ID:???
プログラムやる人にまともな人なんかおらんわw

502 :nobodyさん:2010/12/27(月) 18:24:31 ID:???
>>501 なんで論点ずらそうとしてるの?本人なの?

503 :nobodyさん:2010/12/27(月) 18:30:13 ID:???
脇目もふらず一直線に突き進んでたら、
相当見当違いの事やってたってのはよくあることだな。

その書き方は本末転倒だと言わざるをえない。

504 :nobodyさん:2010/12/27(月) 18:50:48 ID:???
まあ、そこまでやればある意味でCake Wayだなw
html全く書かないとかやりとげたら真のBakerだwww

505 :nobodyさん:2010/12/27(月) 18:55:27 ID:???
<?php foreach($items as $k=>$v): ?>
<li>なんちゃらry</li>
<?php endforeach ?>
でよくね?

506 :nobodyさん:2010/12/27(月) 20:25:01 ID:???
Cake2.0が来るのか
胸熱だな

507 :nobodyさん:2010/12/27(月) 22:28:01 ID:???
Zend並に使いやすくなってくれていればいいが

508 :nobodyさん:2010/12/27(月) 23:24:26 ID:???
俺的にはもう少し軽くなる方が良いな。キャッシュ使わなくても。
サーバのモジュールを切るみたいに、必要じゃない機能を使わないようにして欲しい。

509 :nobodyさん:2010/12/28(火) 00:31:21 ID:???
ttp://book.cakephp.org//view/1183/Data-Sanitization
にあるように、
App::import('Sanitize');
class MyController extends AppController {
むにゃむにゃ
}
とやると、エラーになります。

class MyController extends AppController {
MyFunction()
{
App::import('Sanitize');
むにゃむにゃ
}
}
とやるとエラーは出ません。

App::import()
ってどこに書けばいいのでしょ?

510 :nobodyさん:2010/12/28(火) 00:43:55 ID:???
おでこにでも書いてろ

511 :nobodyさん:2010/12/28(火) 01:58:16 ID:???
>>508
>>492 に、Lazy Loading 云々って書いてあるから、期待はしてる。
PHP5.2.6より上のバージョンに最適化するなら速度や何かはどうにかなってくれるといいな(願望)

512 :nobodyさん:2010/12/28(火) 02:55:16 ID:???
>>509
せめてエラーの内容を書いてくれ。
初期化中になんかエラーになってるんじゃないの?

513 :nobodyさん:2010/12/28(火) 09:20:27 ID:???
>>510
現状、おでこは狭いです。
10年後にはおでこと頭頂部が連結される見込みですが…

>>512
Fatal error: Class 'Sanitize' not found in viewのテンプレート on line 65
みたいな感じです。
レンダリングの段階で出てます。

514 :nobodyさん:2010/12/28(火) 12:31:58 ID:???
viewの65行目に何書いてあるか書けよ
言われたことしかしないのか?
学校か?
死ねよ努力しろよ

515 :nobodyさん:2010/12/28(火) 13:48:07 ID:???
>>509
とりあえず分からなかったらAppControllerの前にでも書いておいたらよい。

516 :nobodyさん:2010/12/28(火) 15:14:10 ID:???
俺は使う直前でimportするようにしてる。

517 :nobodyさん:2010/12/29(水) 18:02:39 ID:l8k3UmR3
教えてください。
cakephp 1.3 で、AuthComponents, AclComponents を使っているのですが、ログイン後に、
$this->set('user',$this->Auth->user());で、ユーザー情報は取れるのですが、
$this->set('group',$this->Auth->user('group'));
とやってもグループの情報が取れません。
Userのモデルには、
var $belongsTo = array(
'Group' => array(
'className' => 'Group',
'foreignKey' => 'group_id',
)
);

と記述しているのですが。

どうやったら、Groupのモデルが引っ張ってこれるのでしょうか。



518 :nobodyさん:2010/12/30(木) 12:51:41 ID:???
カテゴリがあってそのサブカテゴリがあって、
サブカテゴリの詳細を出したい時、URLってどうしてます?

カテゴリ:/category/details/1  (CategoryコントローラーのID1の詳細)
サブ:/category/sub/1  (カテゴリID1内にあるサブカテゴリ一覧)
サブ詳細:/category/sub_details/1/1 (上記のサブカテゴリID1の詳細)

categoryというのがコントローラーで2つめがアクションです。
「カテゴリ内のサブカテゴリの詳細」を出す時、上記のようなURLにしているのですが、
いまいちURLが分かりづらくも感じてるので、他の人はどうしてるのか質問しました。


519 :nobodyさん:2010/12/30(木) 13:40:10 ID:???
最近Cakeで作ったWEBサイトを携帯、もしくはIphoneやAndroidに対応したいのですが、
wordpressみたいにプラグインいれてハイ終わりって感じにはならないですよね。

トップページはフラッシュはないけど、動的にフォームを
追加、削除するjavascriptとかも入ってるし。

520 :nobodyさん:2010/12/30(木) 15:30:21 ID:???
1.3.2使ってるんだけどApacheのエラーログ見たら
Fatal error: Call to a member function deleteAll() on a non-object in /apppath/cake/libs/cake_session.php on line 790
てのが出まくってるんだけど、これは何でどうしろってことなの?

521 :nobodyさん:2010/12/31(金) 01:11:49 ID:???
CakePHPは何故失敗したのか

522 :nobodyさん:2010/12/31(金) 13:20:30 ID:???
1.3.6のBakeってなんでVer下がってんだ

523 :nobodyさん:2011/01/01(土) 05:08:55 ID:???
>>521
普及度では大成功だろ
PHPと同じで導入しやすいから普及してしまった

524 :nobodyさん:2011/01/01(土) 14:23:41 ID:???
導入した俺は失敗だよ
バグあるし重いし、別のフレームワーク使って作り直さなきゃどうにもならん

525 :nobodyさん:2011/01/01(土) 16:13:29 ID:???
CodeIgniterが気になって調べてたら殆どの人がcakephpに戻っててワロタ

526 :nobodyさん:2011/01/01(土) 16:59:33 ID:???
Cakeには不満はあるが、他に選択肢がないって感じかな

527 :nobodyさん:2011/01/01(土) 18:01:25 ID:???
俺としては「重い」と「ファイルが多い(FTPアップに時間がかかる)」
を改善してくれたら全く文句ない。

528 :nobodyさん:2011/01/01(土) 18:20:39 ID:???
tarで固めちゃっターらいいよ

529 :nobodyさん:2011/01/01(土) 20:07:37 ID:???
あああ

530 :nobodyさん:2011/01/01(土) 23:35:34 ID:???
初笑いだ

531 :nobodyさん:2011/01/02(日) 00:46:25 ID:???
普及してるか?
使ったことあるって人は多いだろうけど使い続けてる人が少ないような

532 :nobodyさん:2011/01/02(日) 15:48:13 ID:???
なんで?FWに慣れたらやめづらいと思うが

533 :nobodyさん:2011/01/02(日) 16:07:37 ID:???
>>521

>/apppath/cake/libs/cake_session.php on line 790

を見れば?
インスタンスされてない変数のメソッド呼び出し

534 :533:2011/01/02(日) 16:09:32 ID:???
>>520
の間違いだった orz...

535 :nobodyさん:2011/01/02(日) 17:10:40 ID:???
そこはCakeの関数でしょ?
Cakeのバグってことだよね?

536 :nobodyさん:2011/01/04(火) 10:40:40 ID:???
>>520
よく分からんけど、なんかそこで使われてる必要なモデルが無いんじゃないか?

>>519
プラグインってより、layoutの切り替えじゃないか?
スマートフォンも普通にhtmlを解釈するわけだし、
viewやelementを上手く作ってればlayoutの切り替えで何とかなるかもね。

>>518
URLが気に入らなかったらControllerで変な小細工するよりも、
Routesで対処する方がいいんじゃないか?

>>517
AuthComponent::user()の引数はフィールドの指定じゃないか?
ソースコード見てみたけど、アソシエーションを解釈してくれそうには見えない。
User belongsTo Group なら、$this->Auth->user('group_id')は出来そうだけど。

537 :nobodyさん:2011/01/04(火) 11:21:02 ID:???
>>536
無いんじゃないか?って俺に言われても。
Cakeのセッション機能使っただけなんだが。Cakeが直せよ。

セッションまわりは他にも不具合があってかなり怪しい。APC入れたら動かなかったりとか。

538 :nobodyさん:2011/01/04(火) 11:27:39 ID:???
いやそれは当然だと思うが・・・
セッション管理とキャッシュが食い合わせ悪いのはCakeに限らないだろ

539 :nobodyさん:2011/01/04(火) 11:39:09 ID:???
>>537
それこそ俺にそう言われても。
1.3.2なんて古いの使って無いから790行目がどういうコードかわからんし、
どこでどんな原因があるのか分からんよ。
ただ、Coreのコード中でも、そこでModelのメソッドを呼んでるぽいから、
そのModel作り忘れとかもありえるんじゃないかと思っただけだ。

540 :nobodyさん:2011/01/04(火) 14:29:06 ID:???
1.3系のAuthを使ったログインのサンプルって無いですかね?
cookbookを見ながらログインを作ったのですが、
なぜか、
ログイン時間が切れる→ログインフォームに戻る→再ログイン→エラー
になります。

エラー後に同じIDとパスワードでログインすると、ログインできるので
セッションエラーか何かだと思いますが、原因が掴めません。

541 :nobodyさん:2011/01/04(火) 20:12:48 ID:???
cookbookのACLの開発例にログイン・ログアウトが含まれていたよ。
あれではだめですかね

542 :nobodyさん:2011/01/05(水) 03:42:32 ID:???
cookbook面白いなーつい夢中になる

543 :nobodyさん:2011/01/06(木) 03:35:43 ID:???
でもリンク切れが多い。>>541が言ってるACLの開発例もリンクおかしいし

544 :nobodyさん:2011/01/06(木) 04:44:02 ID:???
リンク切れは、データベースのslugカラムがVARCHAR(45)で短すぎるかららしい。
一旦フッターのリンクから英語に移動して、見たいページ開いてから、
URLに自分で/jaを継ぎ足す事で見れる・・・

545 :nobodyさん:2011/01/06(木) 05:04:44 ID:???
リンク切れているときはenのページを探してみて、jaへのリンクがあるか調べること多いですね

ところで、cookbookはcakephp製みたいですけど、ソース公開されてるんですか?見てみたい

546 :nobodyさん:2011/01/06(木) 06:47:11 ID:???
https://github.com/cakephp/cookbook/

たぶんこれだと思うけど。

547 :nobodyさん:2011/01/06(木) 10:27:47 ID:???
>>546
おお、ありがとうございます。
ローカルで動かしてみようといろいろやってますが、けっこう大変そう
入れろといわれたヘルパーは一通り用意しましたが、Zendのモジュールがどうとか
のエラーで心折れました

548 :nobodyさん:2011/01/06(木) 14:34:07 ID:???
>>544
なるほどなー。ってそれがわかってるなら直してくれればいいのに。

549 :nobodyさん:2011/01/06(木) 14:42:37 ID:???
そういうの多いよね。tinyint使っちゃ駄目とか。

550 :nobodyさん:2011/01/06(木) 15:06:26 ID:???
つうかcakeのマニュアルにstringの時はvarchar(255)って自分で書いてるのにねw

551 :nobodyさん:2011/01/06(木) 17:17:19 ID:???
CakePHPでPostgresって怖くて使えない。
そういう細かいはまり所がちらばってそうな気がしてなぁ。
海外じゃMySQLが主流だから、目玉の数も十分じゃないだろうし、
野良プラグイン使う事を考えるとなぁ。
Postgresのほうが好きなんだけど。

552 :nobodyさん:2011/01/07(金) 22:34:13 ID:???
Web屋とかの制作実績見るとPostgresばっかりな気がする
MySQLのライセンスの問題?

553 :nobodyさん:2011/01/08(土) 01:34:02 ID:???
Perlが主流の頃はPostgreSQLが主流だったんだよ
PHPが流行し始めてMySQLと組み合わせて解説本書かれるようになって10年くらいか?
今じゃすっかりPHP+MySQLが主流みたいになってるな

554 :nobodyさん:2011/01/09(日) 11:14:02 ID:???
CakePHP以前の初歩かもしれないですが・・・、
たとえば「都道府県」→「市区町村」をフォーム上で両方ドロップダウンにして
都道府県で選択した値で市区町村を動的に変えようと思ったとき、
CakePHPならどういう方法をとるのが適切でしょうか?

ざっくりした処理の流れ程度でいいので、みなさんのやりかたをご教授
いただければありがたいです。

555 :nobodyさん:2011/01/09(日) 12:23:33 ID:???
「CakePHPなら」ってのが良く分からない。
単にXHRで呼ばれるアクションを別に1個用意しましょう、ってんじゃ足りない?
それともJavaScriptが分かってない?

556 :nobodyさん:2011/01/09(日) 12:56:06 ID:???
>>554
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=443&forum=12

557 :nobodyさん:2011/01/09(日) 20:56:38 ID:???
book.cakephp.orgを見ながらcakephpの勉強をしているのだけど
バリデーションの定数(やエラーメッセージ)をどこかにまとめたい場合はどこにまとめるのが作法ですか?

http://book.cakephp.org/ja/view/150/
この「独自のバリデーションルール」だとマジックナンバーになってるけど、
実際の開発ではどういう方法があるかを知りたくて。

app/config/bootstrap.phpにまとめるものですか?

558 :nobodyさん:2011/01/10(月) 00:55:02 ID:???
>>557
自分はvalidation.phpとか作ってConfigure::load()してる。
bootstrapにゴリゴリ設定詰めてもそりゃ動くけどね。

559 :557:2011/01/10(月) 02:26:32 ID:???
>>558
app/config/validation.phpにずらずら定数を書いておいて
app/models/<使いたいmodel>.phpの先頭でConfigure::load('validation');
という意味であってます?

bootstrapだとvalidation.phpが必要ないmodelでも読み込んじゃうから良くないという感じでしょうか?

560 :nobodyさん:2011/01/10(月) 04:57:04 ID:???
app_model.phpじゃだめなん

561 :nobodyさん:2011/01/10(月) 12:16:49 ID:???
>>559
bootstrapで常時読み込むよ。モデルごとに分けたりなんかしない。
配列の階層構造とかデフォルトのメッセージとかは面倒なのでビヘイビアで処理させてる。

562 :nobodyさん:2011/01/10(月) 12:31:41 ID:???
bootstrapに全定数とかテーブルとか全部書くと便利だけど
全体の動作が重くならない?

563 :nobodyさん:2011/01/10(月) 13:51:26 ID:???
>>562
プロファイリングすれば分かるけど250行ぐらいの設定ファイルで0.4msしかかかってないぐらいには軽い

564 :nobodyさん:2011/01/10(月) 14:10:59 ID:???
0.4msってだいぶ重いんじゃね・・・?

565 :563:2011/01/10(月) 15:22:42 ID:???
どんだけシビアな世界に生きてるか知らんが1リクエスト100msかかってる環境でこれなんだ
がなー
これが重いと言われるとどうしようもない

566 :nobodyさん:2011/01/10(月) 17:30:16 ID:???
CakePHPのApp::import()を1回分や、
無駄に発行するSQLの処理コストで吹き飛ぶ
誤差程度だと思うよ。0.4msなんて
bootstrapにある設定のコスト気にするより、
recursiveや取得するフィールドをきっちり調整した方がいいと思う。

567 :nobodyさん:2011/01/10(月) 17:45:15 ID:???
久々にすごいハマってるんだけど知恵貸してくだしあ

Session.startは true
Security.levelは medium

のときに、
ログインページがSSLなんだけど、

非SSLページを遷移してる時は当然セッションIDのCookieは「あらゆる接続・・」で維持され読み取れるんだけど、
SSLのログインページを開いた時点で「セキュリティーで保護された接続・・」に限定されてしまい、
非SSLに移るとセッションは消えるという現象が起きまして。。

Security.levelが medium以下であればSSL・非SSLでのセッションは維持されるとあるのにおかしいなとソースを読みまくり、
一日かけてやっとたどり着いた原因が
SSLページでrequestActionしていると、セキュアのみのセッション(セッションID保存Cookie)に変更されてしまうというものでして、

で、回避するには、
Coreをいじるか、requestActionを使わないしかないように思うんですが、
同じような問題にぶち当たって解決された人いませんか?

568 :557:2011/01/10(月) 20:13:38 ID:???
おぉ。レスが増えてた。
>>560
モデルってわけでもないからapp_model.phpじゃないのかな?という疑問もあり質問して聞いてみたくて。
作法みたいなのがあればそれに倣おうと。
>>561
常時読み込んでも対して違わないんですね。参考になります。

app_model.phpかbootstrap.phpで常時読み込んでみてパフォーマンスが気になるレベルになったら次を考えてみます。
みなさんありがとうございます。

569 :nobodyさん:2011/01/10(月) 20:16:23 ID:???
>recursiveや取得するフィールドをきっちり調整した方がいいと思う。

実際これってかなり大事だけど忘れがちだよね。
めんどくさいってのもあるもんな。

570 :nobodyさん:2011/01/10(月) 20:38:05 ID:???
Containable使えばいい

571 :nobodyさん:2011/01/10(月) 20:39:10 ID:???
LazyModelも忘れずにね。

572 :nobodyさん:2011/01/10(月) 21:33:48 ID:???
567です。自己レスです。

どこかでparams['requested']を調べてSessionを開始しないようにすればいいと思いつつも
beforeFilterでは時既に遅し、__constructではparams[request]は取得できないとなやんだんですが、

http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1847&forum=8
こんなページを見つけて、ConstructClassesってメソッドを初めて知った。

ここに↓でどうやら意図したとおりに動いてる模様。
public function constructClasses(){
if(!empty($this->params['requested'])){
//Sessionを使わない
Configure::write('Session.start', false);
}
parent::constructClasses();
}

汚しましたーさーせん。

573 :nobodyさん:2011/01/12(水) 12:17:20 ID:???
結構Cake使っているサイト増えたきたね。
会員数が数万単位でも違和感なく使える。
だから、Cakeが重いと感じるのは
ソースの書き方やキャッシュの使い方が悪いのかな・・。

574 :nobodyさん:2011/01/12(水) 16:36:48 ID:???
コントローラからモデル名を取得しようとした時の方法が知りたいです。
cookbookには$this->ModelNameと書いてありますが実際にやってみるとそれでは取れず。
http://book.cakephp.org/ja/view/53

で、thisを覗いた所、
$this->modelNames[0]
$this->modelClass
の2つがあったのでどっちがいいのかなと思って気になりました。

575 :nobodyさん:2011/01/12(水) 16:38:52 ID:???
$this->modelClass

576 :nobodyさん:2011/01/12(水) 18:08:05 ID:???
Cakeって1モデル1コントローラーを前提としてるの?
そんな簡単にいくことってほとんどなくね?

577 :nobodyさん:2011/01/12(水) 18:29:16 ID:???
そうか?半数以上は1モデル1コントローラーで問題ないよ。経験上。
複数モデル使うときは明示すればいいだけだし

578 :nobodyさん:2011/01/12(水) 22:06:01 ID:???
俺の場合はほとんど、1コントローラー複数モデルだけど、
配列で複数指定できるんだし、全く問題ないぞ。

579 :nobodyさん:2011/01/12(水) 23:23:24 ID:???
>>575
ありがとう。それでいきます

580 :nobodyさん:2011/01/13(木) 00:09:54 ID:???
CakePHP:1.3.6
DB:Firebird 2.5

にて、下記を参考にBLOB型のカラムに画像を登録しようとしています。
http://c-brains.jp/blog/wsg/10/06/05-074544.php

viewとcontrollerのソースはこのサイトのままにmodelを自分で追加。
テーブルはcontentsカラムの型をBLOBに変更しています。
(Firebirdにmediumblob型が無いため)

この状態でファイルのアップロードをするとimages_controller.phpの33行目
$this->Image->save($image);
の実行時に下記エラーがでてしまいます。

Dynamic SQL Error SQL error code = -104 Unexpected end of command
SQL:INSERT INTO "image" ("filename","contents") VALUES ("filename.jpg","?????????")

※?????????は画像ファイルのバイナリの文字列(と思われる)が入っています。

contentsの登録部分(30行目)を削除すると成功するため、BLOB型の部分が
うまくいっていないのは確かだと思うのですが、どなたか解決策をご存知の方はいませんでしょうか。

581 :nobodyさん:2011/01/13(木) 01:29:47 ID:???
ひとつ聞きたいんだが、他者のソースやプラグインを例題に出されたら
回答者がそれを設置してみないと答えられないんじゃないか?

そしてあんた、自分の中で答え出てるじゃん。BLOB型の部分がおかしいって。
それなら、元のソースに問題があるんだろ。作者に聞けよ。

582 :nobodyさん:2011/01/13(木) 12:11:03 ID:???
その参考にしたサイトで使ってるのはMySQLかな?
よくわからんがMySQL以外のRDBMSをCakeのDataSourceとして使うには覚悟が必要だな
あとFirebirdは知らんけど画像はDBに格納するよりファイルとして保存するのが一番だな

583 :nobodyさん:2011/01/14(金) 14:38:02 ID:???
ViewのテンプレートをデザイナーやPHPプログラマー以外に
触らせるのって無茶だと思うけど、どう思う?

584 :nobodyさん:2011/01/14(金) 14:39:20 ID:???
>>583
どういうこと?営業とか?

585 :nobodyさん:2011/01/14(金) 14:45:30 ID:???
>>584
いやそうじゃなくて、テンプレ内に専用コードが入って複雑にならない?
MVCの考え方から、Viewで処理する物はテンプレート内に書くけど
CakeのコードやらPHPのコードやら入るこむから
テンプレが複雑になって、Cakeに詳しくない人間は編集できないと思う。


586 :nobodyさん:2011/01/14(金) 14:45:56 ID:???
ctpそのまま使うってこと?ありえないw
普通何らかのテンプレート使うだろ

587 :nobodyさん:2011/01/14(金) 14:47:37 ID:???
そうなのか?Smartyを間に入れるとか?
あんたの言う「普通」ってはじめて聞いたな。
みんなctpに処理を書いていると思ってたよ。

588 :nobodyさん:2011/01/14(金) 14:51:43 ID:???
ctpよりSmartyがいいときってどういう時?
Smarty使ってたら逆に複雑になると思うんだけど。

589 :nobodyさん:2011/01/14(金) 14:53:46 ID:???
じゃ、「何らかのテンプレート」ってどういう意味?

590 :nobodyさん:2011/01/14(金) 15:00:10 ID:???
扱うデータが多すぎて、1つのコントローラにモデル20個ぐらい使うんだけど
これって設計がおかしいのだろうか
しかしテーブル最適化するとそのくらいに増えてしまうのだよな…とにかくデータが多すぎて
1つのテーブルにまとめるとカラム数が凄いことになるし

591 :nobodyさん:2011/01/14(金) 15:00:20 ID:???
なんにしても、デザイナーでもプログラマーでもない人間が
ビューを触るケースというのが想像できない

592 :nobodyさん:2011/01/14(金) 15:06:09 ID:???
デザイナーがPHPわからないケースもあるんじゃない?
知り合いがデザイナーにctpいじらせて不具合起こされまくってた

593 :nobodyさん:2011/01/14(金) 15:06:11 ID:???
>>583-589,591

運用スタッフにコンテンツを更新させるなら何らかのCMS的な仕組み作っとけ

594 :nobodyさん:2011/01/14(金) 15:08:37 ID:???
文言変更や画像差し替えぐらいならそれでいけるけど
html編集まで必要だと厳しくないか?

595 :nobodyさん:2011/01/14(金) 15:29:30 ID:???
Wordpressなんかのテンプレートぐらい作れる程度のPHPの知識がある
デザイナーはいっぱいいるとは思うけど、
でもcakeのviewファイル自体はプログラマーがいじるもんだと思ってる。

596 :588:2011/01/14(金) 15:30:13 ID:???
>>589
だからctpで十分じゃないかなって意味だった。
ウチで開発した時はコーダの作ったHTMLをテンプレートに当てはめる係がいたな。
その人はctpもHTMLやCSSやJavaScriptのコーディングもどっちも面倒見れる人

597 :nobodyさん:2011/01/14(金) 16:33:54 ID:???
>>596
ああ、あんたは>>586じゃないんだな。それなら俺も同じ意見だな。
>>594
html編集が必要な場面って結構あるからな。
ページ内に説明文追加する時とか。追加じゃなくても変更とか。
その時、どうやったってctpを変更しなくちゃいけないけど、
CakeやPHPの知識がない人間が触るのは厳しい。
「あれ?そうすると、デザインとプログラムの分業って出来ないんじゃねぇ?」
って思ったんだよ。

598 :nobodyさん:2011/01/14(金) 16:52:49 ID:???
やっぱ業務だと作業進行中にデザインの変更とか入ること多いの?


599 :nobodyさん:2011/01/14(金) 17:14:20 ID:???
>>598
いざデザインを適用してみて動かしてみると色々変えたくなる
1枚ペラで見てたのとページ遷移した流れで見たデザインのイメージって結構違うものだなって感じる

600 :nobodyさん:2011/01/14(金) 17:26:57 ID:???
フレームワーク使ってない時は、

DBからデータ取得→foreachで該当するデータを処理→ビューに出力

ってやってた。そうすれば極力、ビューにPHPのコードを書かなくて済むし。
でも二度手間だし、コントローラーでビューの内容を変更するのも違和感があって止めた。

601 :nobodyさん:2011/01/14(金) 17:49:38 ID:???
何言いたいのかわからんけど
フレームワーク使ってるとそれと同じような事やってるじゃん
モデル、コントローラでぐるぐるデータ回して、
最後にビューでも回してるよ

602 :nobodyさん:2011/01/14(金) 18:02:52 ID:???
>>601
説明不足ですまん。

$list = $this->Member->find('all');
$output_list = array();
foreach ($list as $i => $col) {
 $output_list[$i] = $col;
 $output_list[$i]['Member']['body'] = nl2br($col['Member']['body']);

 if ($col['Member']['image'] != "") {
  $output_list[$i]['Member']['image_url'] = Router::url('/img/') . $col['Member']['image'];
 }
}

みたいなことをコントローラーでやって、
ビューでは最小限のコードでforeachして出力するってこと。

603 :nobodyさん:2011/01/14(金) 19:00:07 ID:???
すみません、CakeDCで公開してる、usersプラグイン使ってみた人いますか?
README見てもさっぱり使い方がわからない。
いい参考ページあったらおしえてください。。。

604 :nobodyさん:2011/01/14(金) 19:08:10 ID:???
>>602
それちょっといじりたいときにコントローラ弄らなくちゃダメじゃない?って思ったら>>600に書いてあったw
フレームワーク使ってる場合はどっちみちビューでforeachするから$listの時点で十分扱いやすい形になってるなと思う

605 :nobodyさん:2011/01/14(金) 20:10:12 ID:???
>>604
そもそもの話のネタが「デザイナーにテンプレいじらせるのって無理じゃない?」
って事だからね。ビューに手を加えるよりも、コントローラーに手を加える方が
プログラマーとしてはやりやすいし、デザイン変更も対応しやすいから。
ま、MVCに反するから今は>>602みたいに書いてないけどね。

606 :nobodyさん:2011/01/17(月) 11:39:15 ID:???
お問い合わせフォームのメールアドレスに
空白入れて送信される場合があるんだけど、save前に

$this->data['Inquiry']['email'] = trim($this->data['Inquiry']['email']);

ってする以外にお手軽な方法無いですかね?

607 :nobodyさん:2011/01/17(月) 11:50:52 ID:???
$('form').submit(
 function() { $('#email').val($.trim($('#email').val()); }
);

検証してないから動かなかったらごめんね

608 :nobodyさん:2011/01/17(月) 13:57:08 ID:???
つまりjQueryで対処するんですね。
Cakeのモデル処理で出来るかな?と思ったのですが、
>>606みたいなやり方以外無さそうですね。

609 :nobodyさん:2011/01/17(月) 15:06:42 ID:???
はぁ?
なんでバリデーションしないの?
アホなの?死ねよ屑が

610 :nobodyさん:2011/01/17(月) 15:24:13 ID:???
酷い言われようでワロタww

611 :nobodyさん:2011/01/18(火) 00:57:16 ID:???
>>606
つ beforeValidate()

612 :nobodyさん:2011/01/18(火) 01:57:53 ID:???
は?
beforeValidate?
普通にバリデーションルール書けばいいだけだろうが
アホしかいないのかよここは。

613 :nobodyさん:2011/01/18(火) 06:22:24 ID:???
適当に書いておけば顕示欲の強いバカが勝手に答えてくれるから楽で仕方ない
>>609=>>612
あざーっす^^^^

614 :nobodyさん:2011/01/18(火) 07:47:03 ID:???
何が起きてるんだ……

615 :nobodyさん:2011/01/18(火) 08:17:12 ID:???
trimで余計な空白消して対応しようってのがやろうとしてることじゃないのか?
validationで弾いてどうすんだよ

616 :nobodyさん:2011/01/18(火) 10:30:08 ID:???
>>606 がなにをしたいのか書いて無いからなぁ。
trim()使ってるところを見ると、半角スペースだけのデータになるのが嫌なのか、
それともメールアドレスのカラムに半角スペースだけで問い合わせされるのがダメなのか、
どっちなんだ。

まぁ、コントローラーのbeforeFilter()でtrim()して、
モデルのバリデートでrule => email, allowEmpty => false を使うのが良いと思うが。
beforeFilter() ではちゃんとアクション名の確認や、$this->data['Inquiry']['email']の有無は調べてからな。

617 :nobodyさん:2011/01/18(火) 13:36:46 ID:???
だから!!
rule=>emailの時点で半角スペースだけの入力は弾かれるだろ
アホはシネ
答えるな

618 :nobodyさん:2011/01/18(火) 14:02:09 ID:???
お前な、サイト運営したこと無いのかよ。
素人がスペース認識できずに「なんでエラーになるの!」って
クレーム言ってくる場合があるんだよ。もう少し頭使えよ。

619 :nobodyさん:2011/01/18(火) 14:13:29 ID:???
おいおい

emailアドレスに半角スペース入れる
rule=>emailのエラー文として「正しいEmailアドレスを入力してください」

なにが問題あるんだ?素人もクソも関係あるかよ

620 :nobodyさん:2011/01/18(火) 14:16:26 ID:???
emailの前後に空白入れられるってことか。
Email欄に空白だけで登録してくるんだと思ってたわ
だったらbeforeValidateでtrimでいいや
そんなケース聞いたことないわ

それかもう一個ルール追加してemailルール検査前に空白が入ってないか調べてそれ用のエラー文はく

621 :nobodyさん:2011/01/18(火) 15:06:02 ID:???
質問の内容に嘆くのは勝手だけどみっともないから黙っててほしいわ

622 :nobodyさん:2011/01/18(火) 15:07:53 ID:???
入力に対してtrim()は基本だろ。
まぁ全角スペースもあるからほんとはもう一工夫必要だけど。

623 :nobodyさん:2011/01/18(火) 15:57:16 ID:???
>>616
controllerで$this->dataをいじるとユーザーの入力値をいじることになるから
なるべくmodelで対応したほうがトラブりにくい
このケースはどっちでも良いけど
でもなるべくmodelでやるべきことはmodelほうがベターかと

624 :nobodyさん:2011/01/18(火) 18:41:15 ID:???
>>623
俺はコントローラーの仕事だと思うけどなぁ。
もしかしたらコントローラーじゃないかもしれないけど、
モデルだと遅いと思うんだが。
コントローラー内でNULLバイト攻撃されないように、
なるべく早い段階で、入力値からNULLなどを削るようにしてるんだ。
trimは実はbeforeValidateと迷ったけど、
まぁ似たような処理なのでついでにやってる感じ。
コントローラーで入力値をいじるとトラブルになるかな?

625 :nobodyさん:2011/01/18(火) 20:23:47 ID:???
お知らせをトップページでは5件表示して「一覧」を押すと
ページネーション出来る表示の仕方ってあると思います。

自分はコントローラーのアクション毎に分けて
function top_news() // トップページに表示させるお知らせ。find()で取得
function news_list() // 「お知らせ一覧」ページで表示。paginate()で取得

としているのですが、みなさんはどうしてますか?
findでデータを取得するだけだから、1つの関数内にまとめて、
件数で分岐したりしているのでしょうか?

626 :nobodyさん:2011/01/18(火) 20:37:24 ID:???
トップページはrequestActionで取得。キャッシュして
一覧は普通にnews/indexで。

627 :nobodyさん:2011/01/18(火) 20:58:26 ID:???
>>626
自分もトップページでrequestActionして取得しているのですが、
その時、取得するアクションって>>625に書いたように分けていますよね?
つまり、

■トップページの「お知らせ」箇所のビュー
$list = $this->requestAction('/top/news');
■トップページ一覧
コントローラーのfunction indexでpaginateしてデータを取得して、ビューに出力。

628 :nobodyさん:2011/01/18(火) 20:59:47 ID:???
↑すみません、書き間違えました。

■トップページの「お知らせ」箇所のビュー
$list = $this->requestAction('/top/news');
■お知らせ一覧
Newsコントローラーのfunction indexでpaginateでデータを取得して、ビューに出力。


629 :nobodyさん:2011/01/18(火) 21:21:44 ID:???
わけてないよ
paginateで取得させれば
requestActionのURLにlimit:10とかつければその数取得できるじゃん

630 :nobodyさん:2011/01/18(火) 21:24:20 ID:???
あ、indexとは分けてるよ

function indexはほぼbakeしたままを
requestAction用には別のメソッドつくってそこでpaginateしてる

てか、本当はindex()アクションで
if ($this->params['requested']) {
return $this->paginate();
}
ってやるのがベストかな

631 :nobodyさん:2011/01/18(火) 21:26:37 ID:???
ああ、627さんの言ってる意味がわかりました。
トップページの一覧では
$list = $this->requestAction('/news/index/limit:3');
みたいにするんですね。fieldの指定を変えたい場合は、ifで分岐させると。

自分はトップページならTopコントローラーですべてをまとめていたのですが、
やり方が間違っていたようです。参考になりました。ありがとうございます。


632 :nobodyさん:2011/01/18(火) 21:29:49 ID:???
そうそう。

あと>>630はたぶんエラーでるな
if ($this->params['requested']) {

if (!empty($this->params['requested'])) {
こうじゃないとrequestActionじゃないときにエラー吐くと思うわ

633 :nobodyさん:2011/01/20(木) 02:41:53 ID:???
ClassRegistryで取得したモデルからpaginateに繋げる方法って無いですかね?
findの場合、こんな感じで行けるのですが・・・
$User = ClassRegistry::init('User');
$data = $User->find('all');

634 :nobodyさん:2011/01/20(木) 03:38:21 ID:???
うん。設計しなおせ

635 :nobodyさん:2011/01/20(木) 04:24:58 ID:???
ぐぐったら必ず1.2の情報ばかり出てくるのにいい加減ムカついてきた
今みんな1.3使ってるのではないの?

636 :nobodyさん:2011/01/20(木) 13:21:05 ID:???
互換な点が多いから、わざわざ1.3で書き直してないだけ。1.2の情報はほとんど使える。

637 :nobodyさん:2011/01/20(木) 14:06:58 ID:???
素朴な疑問だけど、ポータルサイト(例えばトピックイットみたいな)
の場合のキャッシュってどういう考え方したらいいの?

動的サイトだから定期的に表示される内容が変わるよね?
だからビューキャッシュしても意味ない気がするんだが。
「○○一覧」とか出来るだけ動的ではない箇所をelementキャッシュするとか?

自分の認識が間違っていると思うので、どなたか駄目出ししてください。

638 :nobodyさん:2011/01/20(木) 16:24:13 ID:???
更新処理は知ったら消せばいいと思ったりしないのか?お前の脳みそは

639 :nobodyさん:2011/01/20(木) 17:35:30 ID:???
ビューじゃなくてデータをキャッシュするのは駄目なん?

640 :nobodyさん:2011/01/20(木) 17:41:50 ID:???
データというかモデル

641 :nobodyさん:2011/01/20(木) 18:17:57 ID:???
モデルキャッシュは良いですね。
ポータルサイトの場合、ログインして表示・非表示と切り替えることは多いし。

と言うわけでモデルキャッシュのやり方を調べます。

642 :nobodyさん:2011/01/20(木) 20:16:03 ID:???
ビヘイビア誰か作ってるよ
てかモデルのキャッシュならmysqlのqueryCache有効にしたらほとんど恩恵なくない?

643 :nobodyさん:2011/01/21(金) 10:51:57 ID:???
レンサバだとMySQLの設定はほとんど触れないからね

644 :nobodyさん:2011/01/21(金) 11:08:22 ID:0or6NBGg
>>633
$this->paginate['User']

645 :nobodyさん:2011/01/21(金) 11:30:38 ID:???
queryCacheはデフォで有効じゃね
普通

646 :nobodyさん:2011/01/21(金) 13:49:06 ID:???
おれはrequestAction結構使うからなぁ
モデルのキャッシュとかqueryCacheじゃ不十分。
エレメントをキャッシュせんことには始まらん

647 :nobodyさん:2011/01/21(金) 15:51:15 ID:???
>>644
そうじゃなくて、$this->paginate($User) こうじゃね?

648 :nobodyさん:2011/01/21(金) 16:05:11 ID:???
appを管理用と公開用とで分けてるんだけど、
管理画面で更新したら、公開用のキャッシュを削除したり出来る?
やっぱ、普通にulink(キャッシュまでのパス) 書くしかないの?

649 :nobodyさん:2011/01/21(金) 22:30:15 ID:???
>>648
bootstrap.php に定数のCACHEを定義してみたら。
やったことないけど。

650 :nobodyさん:2011/01/21(金) 22:37:20 ID:???
app_controllerわけてるだけならキャッシュの場所同じじゃないの?
cacheClear関数だっけ?で消せるんじゃないの?
つーかやってみろよ

651 :nobodyさん:2011/01/21(金) 23:55:41 ID:???
>>650
clearCacheですね。
あと、app分けるとtmpの場所も別ですね。
キャッシュされるファイルも別だから、別の方が良いし。

自分がググった範囲では結局、ulinkでファイル指定して削除する方法を
取っている人が多い印象を受けました。clearCacheは万能でないみたいだし。

652 :nobodyさん:2011/01/22(土) 00:02:13 ID:???
そこまでわかったなら勝手にしろよ

653 :nobodyさん:2011/01/22(土) 00:03:28 ID:???
APP分けるとかアホじゃないのとしか思えんからどうでもいいわマジで。

654 :nobodyさん:2011/01/22(土) 00:11:09 ID:???
横だけど、どうしてアホなの?

655 :nobodyさん:2011/01/22(土) 00:25:46 ID:???
定数、変数、その他共通のを持てない
キャッシュディレクトリもわかれてるww
くそ
あほ

656 :nobodyさん:2011/01/22(土) 01:00:32 ID:???
やたら煽るようなレスしてるのはリアルで惨めだから?
どうでもいいけど

657 :nobodyさん:2011/01/22(土) 01:16:48 ID:???
> 定数、変数、その他共通のを持てない

え?ネタだよね?

658 :nobodyさん:2011/01/22(土) 01:21:34 ID:???
キャッシュディレクトリ別って時点で
普通にやったら定数共通じゃないってことだろうがw
あほかお前
しねよくず

659 :nobodyさん:2011/01/22(土) 01:33:26 ID:???
なぜadminルーティングじゃだめなのか

660 :nobodyさん:2011/01/22(土) 01:43:27 ID:???
ファイル数が増えすぎるから

661 :nobodyさん:2011/01/22(土) 01:45:37 ID:???
まーた、一人はファビョってる馬鹿がいるな。
こいつ、このスレずっと常駐してるよね。前から。
リアルで惨めだからここで吠えるしかないんだろうね。可哀想。

662 :nobodyさん:2011/01/22(土) 01:48:31 ID:???
ファイル数は同じじゃないの?
その整理に問題があるってこと?

663 :nobodyさん:2011/01/22(土) 14:04:08 ID:???
それよりおまいら、Securityコンポーネントとか、
$Form->scure() とか、使ってる?

なんというか、「帯に短したすきに長し」なんだよな

まあ、何の目的を達成するかによるんだろうけど、

・CSRF攻撃対策
・(Cake特有だが)$data['Post']['hoge']フィールドのデータぶち込み攻撃に対する対策
 (いちいちwhitelist記述すれば防げるが)
・簡単にワンタイムトークンを発行したい
・機械的なスパムに対するシンプルな防御(完全ではないが)

みたいな話が入り交じってるからややこしいが

みんなそこらへんどうしてる?自前実装?

664 :nobodyさん:2011/01/22(土) 14:28:24 ID:???
基本的にCakeで用意されている機能なんて
業務用には使えないと思うが
よって普通自前でしょ、少なくとも改造

665 :nobodyさん:2011/01/22(土) 16:21:41 ID:???
>>664
レスどうもです。
まあ、その辺はみんな自前か。

しかし、
> 基本的にCakeで用意されている機能なんて
> 業務用には使えない

コレ言っちゃうとCake使う意味がかなり希薄になるなw

666 :nobodyさん:2011/01/22(土) 16:46:18 ID:???
セキュリティコンポーネントは使い物にならないとは思うけど、
業務用に耐えうるものかとかいう議論はそもそもPHPがということになってくるから
ナンセンスじゃないかなー

667 :nobodyさん:2011/01/23(日) 00:35:40 ID:???
業務用って言いたかっただけでしょ。

668 :nobodyさん:2011/01/23(日) 17:28:31 ID:???
SessionとかCookieもぶっちゃけ、PHPの関数そのまま使えばいいもんな。
Cakeの機能で便利なのはAuthとFormヘルパーぐらい。
メール送信とかファイルアップロードとか自作してる。

669 :nobodyさん:2011/01/23(日) 19:08:19 ID:???
1つのフィールドに複数のバリデーションがあった場合のrequiredは
全てのバリデーションに書くものなの?
http://book.cakephp.org/ja/view/129/required
を見ると、フィールドが1つの例だからrequiredを一つ書けば良いけど、

複数のルールを書く場合の例の
http://book.cakephp.org/ja/view/133/
を見るとそれぞれに
// like on, required, 等、他のキーをここに書く...
と書いてあってrequiredの意味がよくわからなくなった。

670 :669:2011/01/23(日) 19:24:17 ID:???
必須なフィールドの場合は始めのルールをnotEmptyにしておいてその中だけrequiredを書けばいいですよね?
全部のルールにrequiredを書かなければいけないケースがわからない

671 :nobodyさん:2011/01/23(日) 20:57:47 ID:???
自分が正しいと思うやり方でおk

672 :nobodyさん:2011/01/23(日) 22:32:32 ID:???
またCakeの不可解な行動を見つけてしまったので共有
1.3.2
http://book.cakephp.org/view/999/Using-other-Components-in-your-Component
コンポーネントAから別のコンポーネントBを使っていたのだが動作がおかしいので調べてみたら
Bのstartupが実行されてなかった
Aのstartup内で$this->B->startup($controller);としたら期待通り動いた
こういうもんなの?
なんでこうなの?
なんでマニュアルにこういうこと書いてないの?
なんで誰も文句言わないの?

673 :nobodyさん:2011/01/23(日) 23:48:08 ID:???
BというコンポーネントでAというコンポートネントが動いていたら、
どうなるんだろうと思ってしまった。

674 :nobodyさん:2011/01/24(月) 01:56:53 ID:???
Authの認証モデルが「User」で、UserはProfileとhasOneの関係だとします。
ログイン後に、$this->Auth->user()でログイン情報を取得しようとしたのですが、
Profileの内容が返り値に含まれていません。
アソシエーションをしている情報は取得できないのでしょうか?

675 :nobodyさん:2011/01/24(月) 15:47:44 ID:???
COOKBOOKの開発例「11.2 ACL を制御するシンプルなアプリケーション」どおりにやれば取得できるよ

676 :nobodyさん:2011/01/24(月) 22:02:29 ID:???
1.3.7が来てるな
日本語の方は更新されてないけど

677 :nobodyさん:2011/01/24(月) 22:09:20 ID:???
>>675
そこを見てるのですが、>>674に該当する箇所が見あたりません・・・

678 :nobodyさん:2011/01/25(火) 14:23:31 ID:???
COOKBOOKってモモの使い魔かとおもた

679 :nobodyさん:2011/01/25(火) 15:27:57 ID:???
$html->metaを使って
<meta http-equiv="REFRESH" content="5;url=http://google.co.jp/">
を置き換えたいのですが、どういう書き方をすればいいのでしょうか?

680 :nobodyさん:2011/01/25(火) 16:49:55 ID:???
>>679
質問の答えになっていないけど、直接タグ打ちじゃいけないの?
URLの部分だけを動的にしたい場合は $html->url() を使えばいいわけだし

681 :nobodyさん:2011/01/25(火) 16:59:59 ID:???
$html->meta(array('http-equiv=>'REFLESH', 'content'=>'5;url=http://google.co.jp/'))
とかでいいんじゃないの?

682 :nobodyさん:2011/01/25(火) 19:32:08 ID:???
>>680
ビューからレイアウトに挿入したいと思いまして、
$html->meta使うのかと思っていました。

調べたところ、$html->addScriptを使うようですね。こちらを使用します。

683 :nobodyさん:2011/01/26(水) 15:13:15 ID:???
$data = $this->User->findById($id);
if (empty($data)) {
 Configure::write('debug', 0);
 $this->autoLayout = false;
 $this->layout = "";
 $this->cakeError('error404');
}

と言うコードを書いて、Userモデルに$idの値が無いと、
404のエラーページを出したいと思っています。

上記のコードをapp_controllerのbeforeFilterに書いてるのですが、
404にはなるものの、レイアウトが維持されています。
単なるブラウザが吐き出す404の表示にするにはどうすればいいのでしょうか?

684 :nobodyさん:2011/01/26(水) 16:19:14 ID:???
redirect()してexit()か_stop()すればおk

685 :nobodyさん:2011/01/26(水) 18:10:59 ID:???
>>684
$this->redirect($this->cakeError('error404'));
$this->_stop();

こうでしょうか?特に>>683の状態と変化ありません。

686 :nobodyさん:2011/01/26(水) 18:42:15 ID:???
cakeErrorから離れろよ。あとAPIよく読め。

687 :nobodyさん:2011/01/26(水) 18:46:08 ID:???
>>683
単なるブラウザがはき出す404というのが、よくわからん。
404 Not Found でも、サーバーから 404 Not Found のページをはき出すと思うが

688 :nobodyさん:2011/01/26(水) 23:08:01 ID:???
今から勉強すれば
しばらくは、これで食っていけますか?


689 :nobodyさん:2011/01/27(木) 01:08:25 ID:???
何を作るかが重要だけど

690 :nobodyさん:2011/01/27(木) 13:53:36 ID:???
勉強しただけで食えるなら誰でもやってるだろう

691 :nobodyさん:2011/01/27(木) 14:03:44 ID:???
十分条件じゃなくて必要条件だろ

692 :nobodyさん:2011/01/27(木) 18:20:00 ID:???
前に「Cakeの使い方教えてください」的な仕事の依頼をどこかで見た気がするw

以外と使いこなしている人少ないから、
勉強して覚えれば講師業が出来るかも??

693 :nobodyさん:2011/01/27(木) 21:42:07 ID:???
CakePHPで運営されてる大手サービスってありますか?

CakePHPで儲かるシステム作れますか?

694 :nobodyさん:2011/01/27(木) 21:48:50 ID:???
あります
作れます

695 :nobodyさん:2011/01/27(木) 22:29:11 ID:???
トピックイットとFirefoxのアドオンサイト以外で
有名な大手サービスってどこ?

696 :nobodyさん:2011/01/27(木) 23:01:46 ID:???
book.cakephp.orgのサイトが重すぎるんだけど
これはCakePHPの使えなさを表していると見てOK?

697 :nobodyさん:2011/01/27(木) 23:07:24 ID:???
実はcookbookはCakePHPを使ってなかったりして

698 :nobodyさん:2011/01/28(金) 00:40:18 ID:???
>>694
CakePHPで運営されてる大手サービスって何があるよ?

699 :nobodyさん:2011/01/28(金) 00:44:07 ID:???
大手と言えるのかは知らんがnanapiとか

700 :nobodyさん:2011/01/28(金) 00:56:22 ID:???
CakePHPで運営ってなによ
運営の意味も分からないの?氏ねばいいのに

701 :nobodyさん:2011/01/28(金) 01:49:29 ID:???
>>699
他には何かあるのかな?
そもそもCakePHPって世界で盛り上げて行こう!って動きなのかな?

セキュリティー関連とかの対策プラグインとかも次々更新されてたり、新しいプラグインも作られてるのかな?

世界で有名なサイトとか、これで構築されてたら感動する。

702 :nobodyさん:2011/01/28(金) 01:52:03 ID:???
10万人規模の会員サイトには耐えられないんじゃないかな

703 :nobodyさん:2011/01/28(金) 02:01:22 ID:???
ttp://puyo2.upper.jp/cake/files/cakestudy20080220_remora.pdf

704 :nobodyさん:2011/01/28(金) 02:50:50 ID:???
nanapiの開発日記?かなにかの資料見たけど、
動的な部分は素のPHPや別のシステムを使ってるっぽかった。
キャッシュもmemcacheを使ったり。

ま、それが普通だよな。Cakeだけでこなすにも重いもんな。

705 :nobodyさん:2011/01/28(金) 03:17:15 ID:???
cakeでmemcacheつかえんじゃん

706 :nobodyさん:2011/01/28(金) 12:33:42 ID:???
フィールド「open_time」がMySQLのフィールドタイプでtimeなんだけど、
モデル内で
function getTime(){
return $this->data['Shop']['open_time']['hour'].':'.$this->data['Shop']['open_time']['min'].':00';
}
としたら、配列hour内に格納されている値は10なのに
1に変更されてしまうのは仕様?

707 :nobodyさん:2011/01/28(金) 12:47:02 ID:???
>>706
それは知らないけど。
なぜsecに0を入れないのか。

708 :nobodyさん:2011/01/28(金) 13:22:11 ID:???
>>707
secの配列は用意してないんで。
もしかしてそれが原因とかあるのかな?

709 :nobodyさん:2011/01/28(金) 15:22:25 ID:???
サイトがCakeで作られてるかどうかなんて
表示されてなきゃわからないよね?

710 :nobodyさん:2011/01/28(金) 16:21:34 ID:???
自己申告からしか分からないだろJK
(サイト内での表示や言及を含めて)

まあ食わされるCookieのキーがデフォルト"CakePHP"だったりとか
Routingがあきらかに(Railsではなく)Cake風それだったりとか
DOMの構造があからさまにBakeした「それ」だったりとか
そういうことはあるかもしれんが、ちゃんと作ってあるものからは分からない

711 :nobodyさん:2011/01/28(金) 17:09:30 ID:???
paginateとかが出力するnamedパラメータとか。

712 :nobodyさん:2011/01/28(金) 17:39:44 ID:???
フォームのnameが data['User'['name']]
とかだったら一発で分かるんだけどな

713 :nobodyさん:2011/01/28(金) 17:41:06 ID:???
打ち間違えた・・・data[User][name]こうだった・・・

ソース見ると大体分かるパターンが多い気がする。

714 :nobodyさん:2011/01/28(金) 18:34:31 ID:???
ページネーションとかフォームとかだとこの詐欺オクサイトもそれっぽい
http://www.world-auctions.org/

715 :nobodyさん:2011/01/28(金) 18:41:16 ID:???
cakeで作ったことをできるかぎり隠すっていう良エントリあったはず。
どこだったか忘れたけど。

716 :nobodyさん:2011/01/28(金) 19:00:34 ID:???
>>715
去年のadvent calenderかな。そういうのあったね。

つか、〜というフレームワークだから大規模サイトが作れないっていうのはほとんどありえないと思うけどな
大抵のフレームワークは拡張できるようになってるからそこに自分らの手を加えるでしょ。

717 :nobodyさん:2011/01/28(金) 19:27:25 ID:???
>>715
http://d.hatena.ne.jp/k1LoW/20101202/1291262612
これか
良エントリだな

718 :nobodyさん:2011/01/28(金) 19:48:17 ID:???
?url=/ を付けてトップページが出たらCakePHPの可能性大
ってどうしようもない?
index.phpかどこか書き換えればよさそうだが

719 :nobodyさん:2011/01/28(金) 20:02:02 ID:???
恥ずかしがらずにトップページにCAKEPHPとポップアップ表示させるべき

720 :nobodyさん:2011/01/28(金) 20:13:08 ID:???
逆にCake使ってないのをCakeに見せかけることは簡単そうだな

721 :nobodyさん:2011/01/28(金) 20:19:51 ID:???
オレオレフレームワークでそうしてるわw

722 :nobodyさん:2011/01/28(金) 20:27:10 ID:???
>>720的な発想で、cakeっぽい部分を隠すんじゃなくて、symfonyやzendやethnaやrailsやdjangoっぽい要素を
ふんだんに盛り込めば、フレームワークが特定されにくくね?

723 :nobodyさん:2011/01/28(金) 20:35:27 ID:???
そうすると仕様がまとまらずに、開発しづらくなるな

724 :nobodyさん:2011/01/28(金) 20:50:26 ID:???
逆転の発想で、ちいたん風にすれば

725 :nobodyさん:2011/01/28(金) 21:21:01 ID:???
初心に返って、URLをなんたら.cgiにすれば

726 :nobodyさん:2011/01/28(金) 21:41:35 ID:???
くっだらねーどうでもいいことをうだうだと

727 :nobodyさん:2011/01/28(金) 23:17:34 ID:???
と、一番どうでもいい人が言いました

728 :nobodyさん:2011/01/29(土) 00:32:20 ID:???
xampp cakephp qdmail の組み合わせで
ローカルホストから、メール発信しようとしてもメールが送られません。
一応画面遷移などは行って、正常にうごいてる様には見えるのですが
肝心のメールが送られていないようです。

環境はcakephp1.3. qdmail1.2.6です。
どなたか分かる方いらっしゃいませんでしょうか?

729 :nobodyさん:2011/01/29(土) 00:37:11 ID:???
メール遅れるかどうかはどう考えてもスレ違い

730 :nobodyさん:2011/01/29(土) 02:43:01 ID:???
>>714
もろCakeだな
しかし、リアルタイムに入札状況を(1秒毎とかに)取得する際に、
サーバ側でレスポンスする部分はCakeじゃないんだろうな。
入札状況一覧の静的ファイルを置いて読みに行ってるとかかな

ま、どう考えてもシステムがユーザの名を騙って入札してるな
そんで屍の山を築いた後落札するのはシステム側のユーザと・・・よくできてるな

731 :nobodyさん:2011/01/29(土) 02:59:12 ID:???
akiyanのペニオクも知らないんだな
どうりでアホばっかだ

732 :nobodyさん:2011/01/29(土) 03:07:12 ID:???
>>731
何それ
俺はアホで知らないから説明してくれよ

733 :nobodyさん:2011/01/29(土) 03:18:19 ID:???
ggrbkks

734 :nobodyさん:2011/01/29(土) 04:08:26 ID:???
お呼びじゃないよお前

735 :nobodyさん:2011/01/29(土) 12:12:46 ID:???
>>717
頑張りは認めるんだけど、「攻撃者への攻撃の糸口として利用されてしまう」から
Webサーバやフレームワークに何使ってるか隠蔽しましょうって言われても
お前アホかとしか思えない。
労力注ぎ込む方向性が間違ってるだろ。

736 :730:2011/01/29(土) 12:51:51 ID:???
730です。

>>731
レスありがとう。

ペニオク自体は知ってたが、正直胡散臭いし、
俺の興味の方向性(お金を儲けるより面白い物を作る)と違ったので、
いままで完全スルーで来ていました。
ペニオクみたいなリアルタイム性の高いシステムにCakeのような重めのレスポンスの
システムが(一部であれ)使われているという一点に興味を持って、
しばらく入札の傾向とか出てくるユーザ名とか眺めてみたり、
無料コインで入札してみたり、ソース眺めて静的ファイルと思われる入札状況のXMLを見てみたり
してみた。まあ、自分でやる気はないが、少しは勉強になったよ。

akiyanもググってみたが、まあこういう人もいるだろうよ。ネットには。
コレに関してはほぼスレ違いだろ。

737 :nobodyさん:2011/01/29(土) 13:01:07 ID:???
cakaPHPのコンポーネントとしてqdmailを使ってhtmlメールを送りたいです。

メールを表示した時に、目次からページ内にジャンプするように

<a href="#hereis">ABCの位置へジャンプ</a>
<br><br><br><br><br><br><br><br>
<span id="hereis">ここがABC</span>

このように書いたのですが、なぜかメール内では

<a href="#12dcfd6116a82cf6_hereis">ABCの位置へジャンプ</a>

と#の後に変な文字列が追加され上手くいきません。
もし原因が分かる方いましたら教えてもらえないでしょうか?

ちなみに、上記のコードはすべてmodel内で書いています。

738 :nobodyさん:2011/01/29(土) 16:27:24 ID:???
http://www.akiyan.com/blog/archives/2010/09/penny-auction.html
前にもこのスレで話題になってた気がするけど、>>731はこれかなあ?
>定価7万の商品に対して、最終的に参加者全員が投入した合計手数料は35万
とか書いてるし、ペニオク推奨しているとも思えないんだが

739 :nobodyさん:2011/01/29(土) 16:54:25 ID:???
前はリンクがアフィになってたけどいつの間にか消えてるな

740 :nobodyさん:2011/01/29(土) 17:28:00 ID:???
突込みどころ満載

741 :nobodyさん:2011/01/29(土) 17:58:51 ID:???
ペニオクが話題だな。と思ったら、さくっとCakeで2〜3日で作ってみる。
クーポンサイトにしてもソーシャルゲームにしてもそんな感じで遊びで作ってれば
後々で応用が利くよ。

742 :nobodyさん:2011/01/29(土) 18:20:26 ID:???
そういうオークションの運営って違法にはならないの?

743 :nobodyさん:2011/01/29(土) 18:38:06 ID:???
>>742
作れますっつうのと運営できますつうのはまた別の話。
法律家だのコネだのをちゃんと付けておくべし。

大手の激ヤスなんかはその辺しっかりしてる。
早々と拠点を香港に移し、世間の風あたりが強くなってきたと思ったらとっとと閉鎖。
逃げ足の速さはさすがだわ。

744 :nobodyさん:2011/01/29(土) 19:46:41 ID:???
ペニオクは海外で販売されていたシステムがcakeだったような

745 :nobodyさん:2011/01/29(土) 20:03:31 ID:???
マジ?仕様書とか見てみたいな

746 :730:2011/01/29(土) 21:22:36 ID:???
プラグインでBot入札のアルゴリズムとか入れられるなら胸熱だな

747 :nobodyさん:2011/01/29(土) 21:47:07 ID:???
通常パッケージ \50,000
BOT拡張パッケージ \500,0000

748 :nobodyさん:2011/01/30(日) 13:49:39 ID:???
どなたかCakePHP1.3でHello worldを表示するまでのMVCをソースで提供していただけませんか?

749 :nobodyさん:2011/01/30(日) 15:05:51 ID:???
50000円でどうだ?

750 :nobodyさん:2011/01/30(日) 16:44:06 ID:???
マジで金くれるなら1000円でもやってやるわw

751 :nobodyさん:2011/01/30(日) 17:09:03 ID:???
既存DBの設計がcakephpに合ってないと使えないね
X a.user_cd = b.user_cd
○ a.id = b.a_id

まったくだめだね

752 :nobodyさん:2011/01/30(日) 17:15:25 ID:???
俺は120円でいいぞ

753 :nobodyさん:2011/01/30(日) 17:16:24 ID:???
>>751
それぐらいのDB設計の違いだったら、CakePHP内で吸収できると思うが

754 :nobodyさん:2011/01/30(日) 17:20:31 ID:???
>>753
sql直書きなしではできないでしょ?

755 :nobodyさん:2011/01/30(日) 17:37:29 ID:???
>>750
webmoneyでよければ1000円でお願いします

756 :nobodyさん:2011/01/30(日) 18:20:56 ID:???
早くしろ!!!!!!!!!!!!!!!!!!

757 :nobodyさん:2011/01/30(日) 18:36:16 ID:???
>>754 みたいな理解の浅いやつばっかなんだろうな

758 :nobodyさん:2011/01/30(日) 18:56:34 ID:???
>>754
ヒント foreignKey

759 :nobodyさん:2011/01/31(月) 00:12:36 ID:???
教えすぎw

760 :nobodyさん:2011/01/31(月) 01:31:57 ID:???
せいかい foriegnKey

761 :nobodyさん:2011/01/31(月) 10:56:41 ID:???
テスト

762 :nobodyさん:2011/01/31(月) 10:58:06 ID:???
HtmlHelperのlink()でhttpsなURLってどうやって生成するんですか?

763 :nobodyさん:2011/01/31(月) 11:04:27 ID:???
俺はcakephpでHello worldを表示する方法を聞いておるのだ

764 :nobodyさん:2011/01/31(月) 14:08:21 ID:???
超マジレス。↓のようにファイル作成すれば出来る。

// app/controllers/test_controller.php
class TestController extends AppController{
var $name = 'Test';
var $uses = array();
function index(){
$this->set('message', 'Hellow world');
}
}

// app/views/test/index.ctp
<?php echo $message; ?>


教えたから1000円くれよ。マジで。

765 :nobodyさん:2011/01/31(月) 14:49:03 ID:???
マニュアルにチュートリアルあんだろが・・・

766 :nobodyさん:2011/01/31(月) 15:05:54 ID:???
>>762
$html->link('https', 'https://example.com/');

767 :nobodyさん:2011/01/31(月) 15:38:21 ID:???
>>764
温かい思いやりに感謝する

768 :nobodyさん:2011/01/31(月) 19:45:54 ID:???
>>754
既存DBとの接続には同じテーブルであっても取得したいデータに応じて
primaryKeyだけを変更したモデルを必要数つくればいいよ。

769 :nobodyさん:2011/01/31(月) 21:37:02 ID:???
>>764
せっかくなら model も使おうぜ

770 :nobodyさん:2011/01/31(月) 22:47:22 ID:???
マジレスするとAPP/werbroot/index.phpの中身をhello worldにすればよい

771 :nobodyさん:2011/01/31(月) 23:05:12 ID:???
debug('heloo world');
じゃだめ?

772 :nobodyさん:2011/01/31(月) 23:26:01 ID:???
フレームワークを使う意味からはずれてますね

773 :nobodyさん:2011/02/01(火) 00:12:31 ID:???
しかしほんとCakePHPはググっても古い記事ばっかりだな。
おまいらはブログ書いたりしてないの?

774 :nobodyさん:2011/02/01(火) 00:13:33 ID:???
俺ももう誰も使ってないのかと思うぐらい、古い記事しか出なくて困った。
使ってないのか?

775 :nobodyさん:2011/02/01(火) 00:21:29 ID:???
昔は書いていたが・・・
・書こうと思った記事がすでに書かれていた
・cakeが安定してきたので書くことが無くなった
・書いてもあんまり反応が無いので寂しい
という感じで、1年くらいは書いてないな
古い記事ばかりだというのなら、それを1.3で検証する企画とかやればウケるかな?

でも、最近ならアドベントカレンダーやってたし、知的好奇心をくすぐられるような記事もあったんでは?

776 :nobodyさん:2011/02/01(火) 01:42:48 ID:???
とりあえずfindAllの説明をしている記事はもう全部消して欲しいw

777 :nobodyさん:2011/02/01(火) 01:52:28 ID:???
自分用の備忘録も兼ねてブログに書いてたけど、
使いこなしちゃうと面倒で書かなくなっちゃったごめんね。

778 :nobodyさん:2011/02/01(火) 09:41:14 ID:???
俺も最初はtwitterで適当につぶやいてたが、
そのうち表現したい事が140文字で書けなくて止めた。
かといってブログ書くのは怠いし、面倒だから断念した。

779 :nobodyさん:2011/02/01(火) 12:06:37 ID:???
1.3のページングで質問です。

ビューに
if ($paginator->prev()) {
echo $paginator->prev('戻る');
}

と書いて、戻り先がある場合はリンクが貼られる事を想定していたのですが、
実際は上記のようなコードの場合、リンク無しの「戻る」が表示されます。
true/falseだけ返り値を受け取る事は出来ないのでしょうか?

780 :nobodyさん:2011/02/01(火) 12:32:52 ID:???
俺は使ったことないけど
hasPrev($model = null) hasNext($model = null) hasPage($model = null, $page = 1)
があるぞ。

https://github.com/cakephp/cakephp/blob/1.3.7/cake/libs/view/helpers/paginator.php#L435

781 :nobodyさん:2011/02/01(火) 13:17:51 ID:???
>>780
ありがとうございます。hasPrevやhasNextを使って
前/次のリンクがあるか調べます。

782 :nobodyさん:2011/02/02(水) 16:07:14 ID:???
簡単な企業サイトをcakephpでどうやって構築するのか知りたいのでzipでください

783 :nobodyさん:2011/02/02(水) 16:21:15 ID:???
BaserCMSで作ればいいんじゃないか
zipはココttp://basercms.net/packages/download/basercms/latest

784 :nobodyさん:2011/02/02(水) 18:15:26 ID:???
ライセンスがアレかな

785 :nobodyさん:2011/02/02(水) 19:33:43 ID:???
簡単な企業サイトがどういうのをイメージしてるのか知らないけど、
俺にとって簡単な企業サイトには、CakePHPは出番がないな。

786 :nobodyさん:2011/02/02(水) 19:58:41 ID:???
確かに単なる企業紹介だと使うまでもない

787 :nobodyさん:2011/02/02(水) 20:00:59 ID:???
cakephp使って構築したいというくらいだし、問い合わせフォームとかニュース更新とかの機能をつけてCMSっぽい作りにしたいんだろう
というわけで>>783を使うか、それを参考にして構築するのがいいと思う

788 :nobodyさん:2011/02/02(水) 20:09:42 ID:???
CakePHP 1.3.6のSanitizeについての質問です。

CakePHP 1.3.6なんですが、
formで送信するときにSanitizeを使わなくてもSanitizeされているんですが、
これってformで送信するときに自動的にSanitizeされているという解釈で良いのでしょうか?

789 :nobodyさん:2011/02/02(水) 20:14:19 ID:???
BaserCMSの重さは異常

設置してみたけど、内部処理が多すぎ。もう少し分けられるのに。

790 :nobodyさん:2011/02/02(水) 21:01:51 ID:???
企業サイト作るときは普通何を使うんですか?

791 :nobodyさん:2011/02/02(水) 21:27:03 ID:???
HTML

792 :nobodyさん:2011/02/02(水) 21:38:40 ID:???
携帯対応も初めから出来ていることを考えると、BaserCMSもなかなか良いね

793 :nobodyさん:2011/02/02(水) 23:05:43 ID:???
使わないけどソースを参考にさせてもらおう

794 :nobodyさん:2011/02/02(水) 23:38:51 ID:???
>>788
ちょっとなにを言ってるのかよくわからない。
HTMLで構成するフォームの事だったら、そこはCakePHPの領域じゃないな。

795 :nobodyさん:2011/02/03(木) 00:06:31 ID:???
>>788
されてる
>>794
お前がなに言ってるかわかんねーよ

796 :nobodyさん:2011/02/03(木) 00:21:49 ID:???
>>795
お前>>788の日本語でよく断言できたな
わからないってほどじゃないけどサニタイズの意味が曖昧過ぎるから
>>794の皮肉もわかるわと思いながらスルーしてた

サニタイズがSanitizeクラスのこと言ってんのか入出力のエスケープを言ってんのか
とか色々考えてしまったわ

797 :nobodyさん:2011/02/03(木) 00:26:10 ID:???
Sanitizeの意味は消毒って意味でしか無い
エスケープとサニタイズは違う。

>>788の文章の中には
消毒するクラスであるSanitizeクラスのことも、
消毒するっていう意味でのサニタイズという単語も混在してる

798 :nobodyさん:2011/02/03(木) 01:04:19 ID:???
横レスだが、
>>788
については、Formヘルパーから自動生成されたHTMLを利用してPOST送信された、
$this->data[Hoge][hage] に渡ったデータが
・文字列の先頭やケツの空白文字を「勝手に」trimしてくれてるのかどうか
・htmlエンティティのエスケープを「勝手に」してくれてるのかどうか
という意味なのではないかと俺は解釈してた
で、めんどくせえからスルーしてた。

どちらにしろ、
> これってformで送信するときに自動的にSanitizeされているという解釈
というのは質問として違うよな・・・と思っていたが、
>>795 がエスパー回答してるんで、いいんじゃね?と思ってた。

要するに>>794>>795 も悪くない。
みんな仲良くしようぜってことで。
あと、言ってることがよく分からん質問はスルーでいいんじゃね?

799 :nobodyさん:2011/02/03(木) 01:15:15 ID:???
スルーで良いし、「わからない」って余計な事言う必要もないな。
分かる奴だけが教えればいい。
質問者が可哀想に思っても、それは自身の伝え方が悪いと言う事を
自覚させる意味でも、わざわざ教えてやる必要はない。

800 :nobodyさん:2011/02/03(木) 01:20:33 ID:???
まぁ送信される時じゃなくて受け取った時なんだけどな

801 :nobodyさん:2011/02/03(木) 11:10:23 ID:???
PCRE入れずに日本語をslugしてくれるパッチってありますか?
>>365 を使うと、日本語をごっそり削られてしまいます。


802 :nobodyさん:2011/02/03(木) 12:41:38 ID:???
向こうの家族に挨拶しにいき、
元カノの実家へはじめて泊まった時に
いつもどおりエッチした(その時は測位)

そのまま精液の入ったゴムごとティッシュにくるみ、元カノの部屋にかけたジャンパーのポケットに入れてたのを忘れてて、

元カノに
部屋のゴミ箱にそのままポイしちゃってたかも。。。と言ったらこっぴどく怒られたな。。。

そんな彼女に今mixiでメッセージしても
足跡だけ残されて返信なしという有様。

今は今で彼女いるけど
昔はもっと幸せだったのかもしれない

803 :nobodyさん:2011/02/03(木) 12:43:36 ID:???
会員が5万人規模のゲームサイトを運営しています。

cakephp
symfony
ruby on rails

のいずれかに変えたいのですが
どれが一番いい?開発していくのも自分でやることになります。

804 :nobodyさん:2011/02/03(木) 12:45:39 ID:???
>>795
>>798
横だけど、CakePHPってPOST送信されたデータのサニタイズってする?
前コード読んだとき、そういう記述見当たらなくって、
Cakeはそういう事しないんだって思ってたんだけど。

>>797
あと、この用語っておれよくわかんなくってさ。
POST送信されたデータをサニタイズする方法として、
trimやエスケープがあるって理解で良いのかな?

805 :nobodyさん:2011/02/03(木) 13:11:09 ID:???
>>803
5万程度の中ぐらいならどれでも一緒

806 :nobodyさん:2011/02/03(木) 13:20:42 ID:???
うちは会員200万なんだけど、それならどれがいい?

807 :nobodyさん:2011/02/03(木) 13:33:16 ID:???
質問です。
例えば2つのモデルがあって、その2つで使いたいような共通のメソッド(バリデーションとかでも何でも)があったとして、
その場合ってどういう風に作るのがベターですか?
2つのモデルの親になるようなモデルを作ってそこから継承しようかなと思ったのだけど、
ググってもAppModel以外から継承するってモデルってみんな作ってないような感じ。
そういう作り方はしないものですか?

AppModelに書くのは影響範囲でかすぎるし、2つのモデルに依存した機能だからビヘイビアもおかしい気がする。
あと考えたのがApp::import('Model', '2つの共通する機能をまとめたモデル');という書き方くらい。


808 :nobodyさん:2011/02/03(木) 13:59:33 ID:???
ビヘイビアでいいんだよ。
汎用じゃない処理でも複数のモデルで使いまわしたい場合はビヘイビア。
コントローラやビューやシェルでも使いたいならlibsでライブラリクラス作って使いまわせば
いい。

809 :nobodyさん:2011/02/03(木) 14:02:31 ID:???
俺もその場合はビヘイビアに一票。ていうかビヘイビア一択。

よくわからないのは、モデルとコントローラー共通に必要な処理はどこに置くかということ。
今の所ビヘイビアとコンポーネントに同じコード書いてる。もっと良い方法ない?

810 :nobodyさん:2011/02/03(木) 14:11:10 ID:???
モデルとコントローラの両方で必要な処理がどういう処理かわからん

811 :nobodyさん:2011/02/03(木) 14:24:25 ID:???
設計みなおしたほうがいいし、
仮にそう言うのがあれば普通にクラス書いてVender

812 :nobodyさん:2011/02/03(木) 14:37:48 ID:???
>>810
最近あったのは、携帯サイトで、絵文字の変換処理とか。
DB前後で変換かますからモデルでやるんだけど、DBに入れなくて良い時はコントローラーでやる必要があったり。
全部コントローラーで処理することもできるがそれだとあちこちのコントローラーに同じコードが要るので、モデルでやりたい。

813 :nobodyさん:2011/02/03(木) 14:41:13 ID:???
>>808,809
ありがとうございます。
なるほど、ビヘイビアってそういうものなのか。
振る舞いって言葉の通り、どのモデルでも使えるような、特定のモデルとは切り離された抽象的な「振る舞いを変えてくれるもの」と思ってた。

814 :nobodyさん:2011/02/03(木) 14:46:21 ID:???
>>812
>DBに入れなくて良い時はコントローラーでやる必要があったり。
ここが良くわからないんだけど、
DBに入れる入れない関係なく、ロジックならモデルでやっちゃわない?
もしかしてモデルでやらない方がいい理由があったりする?

815 :nobodyさん:2011/02/03(木) 14:48:18 ID:???
>>812
MVCを厳密に守るとコード最適化に反してしまう例の一つに見えるな
MVCを守るなら、コントローラーだけでやるのが正解ぽい

816 :nobodyさん:2011/02/03(木) 14:52:35 ID:???
>>814
そのモデルを使わないコントローラーもあるんだけど、
そのためにモデルをusesに追加すべき?
違和感があるんだけど、モデルをDBと結びつけて考え杉なのかな

817 :nobodyさん:2011/02/03(木) 15:01:28 ID:???
なんでモデルなんだ
コンポーネントでやればいいじゃん
helperのbiforeVenderとかでもいいか

818 :nobodyさん:2011/02/03(木) 15:07:08 ID:???
内部的には実体参照で保有して、DBにも実体参照で保持。
表示の際にPCなら画像に変えるとか、SBは変換かけるとかする。

あとformから入力があるサイトなら入力データの絵文字も考慮しなきゃならん。
なんかライブラリでも使ったほうが速い

819 :nobodyさん:2011/02/03(木) 15:26:07 ID:???
絵文字を扱うコントローラーが
絵文字を扱うモデルを使わないってどういうこっちゃ


820 :nobodyさん:2011/02/03(木) 16:34:24 ID:???
絵文字を扱うモデルの意味がわからん。
ブログの記事内に絵文字埋め込んでるから、
findで受け取る際にキャリア毎に変換したいとかか?

いずれにせよ、コントローラで俺は書くな。
<select>のoptionsをDBから生成したい時はモデルに書いてるけど

821 :nobodyさん:2011/02/03(木) 16:44:54 ID:???
>>808 だけど、MVCにまたがる処理はlibsにライブラリクラス作れって言ってるだろう
外部ライブラリならvendorでいいけど。

822 :nobodyさん:2011/02/03(木) 18:08:13 ID:???
マニュアル変わったの最近?
きれいになったのはいいけどやたら重いな。

823 :nobodyさん:2011/02/03(木) 23:26:56 ID:???
どうでもいいけどサニタイズとかエスケープとかって言葉は
文脈(どこに出力するか)が決まらなきゃその内容も決まらないんじゃないのか

824 :nobodyさん:2011/02/03(木) 23:39:37 ID:???
どうでもいいならわざわざ書くなよ

825 :nobodyさん:2011/02/03(木) 23:46:43 ID:???
2chで何言ってんだお前

826 :nobodyさん:2011/02/04(金) 00:11:13 ID:???
>>823
ここはCakeのスレで、Cakeがサニタイズって命名してるだろ。
ならそれに従うまでだ。

827 :nobodyさん:2011/02/04(金) 01:25:00 ID:???
http://book.cakephp.org/view/1183/Data-Sanitization
この囲みの文も日本語訳の方に載せといてくれればいいのにね。
一応cake使う上では基本なんだから。

828 :nobodyさん:2011/02/04(金) 03:21:44 ID:???
ああそうか、SQLインジェクション対策もあったな
CakeのActiveRecordに投げっぱなしだったから存在を忘れてた

XSSについては出力段階でエスケープって言うのはCake以外でも基本じゃね?

829 :nobodyさん:2011/02/04(金) 10:18:51 ID:???
2ちゃんで質問して解決したことが一度もねえよ

830 :nobodyさん:2011/02/04(金) 10:42:48 ID:???
それはお前の質問の仕方が悪い。
俺は何度もこのスレに助けられた

831 :nobodyさん:2011/02/04(金) 11:06:21 ID:???
このスレで役に立ってる情報なんてねえよw

832 :nobodyさん:2011/02/04(金) 11:35:40 ID:???
お前がそう思うんならそうなんだろう お前ん中ではな

833 :nobodyさん:2011/02/04(金) 15:12:57 ID:???
公式のフォーラムにあった
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=2021&forum=3

と同じ部分で詰まっているのですが、
誰も回答していない事を見ると、argSeparatorを指定したら
逆ルーティング出来ないのでしょうか?

834 :nobodyさん:2011/02/04(金) 17:33:25 ID:???
debugを0にしてても存在しないコントローラーでアクセスした際にCakeのエラーが表示されて
Cakeであることがバレてしまうのですが、エラー用の特定のページを表示させるには
どうするのが一番良いでしょうか?
dispatcher.phpを書き換えるという手段を思いつきましたがもっと良い方法ないでしょうか

835 :nobodyさん:2011/02/04(金) 17:37:36 ID:???
htaccessでエラーページに飛ばすとかは?

836 :nobodyさん:2011/02/04(金) 17:43:17 ID:???
ん?
missing controllerとかmissing viewとか書いてない?
このページを編集するにはこういうファイルをAPPに作れって書いてない?

837 :nobodyさん:2011/02/04(金) 17:49:00 ID:???
>>834
俺の場合は、AppErrorを作ってやっている

838 :nobodyさん:2011/02/04(金) 17:51:13 ID:???
>>836
書いてないです
layoutsが中途半端に反映されたページの残骸みたいなものが出てきて、
ソースを見るとCakeのクレジットのコメント部分が出ていて、Cakeだとわかります
cake/libs/error.php内でvar_dumpするとmissingControllerと出てきます

>>837
それでやってみます

839 :nobodyさん:2011/02/04(金) 20:02:31 ID:???
>>838
404にもctpファイルがあるんだぜ
作ってなければデフォルトなんだぜ

840 :nobodyさん:2011/02/04(金) 22:39:54 ID:???
DBクエリ情報のTookで一部、259(ms)とか物凄く時間がかかっている
クエリがあるんだけど、インデックスも指定してあるし、特におかしなSQLでもない。

体感的にもそれほど長い時間待たされている感じはないんだけど、
クエリ情報が間違っているのかな?

841 :nobodyさん:2011/02/04(金) 22:46:59 ID:???
スレチってことも分からんのか?

842 :nobodyさん:2011/02/04(金) 23:00:23 ID:???
Cakeで出力されるクエリ情報が正しいか否かの質問なんですが、
スレチなんですね。わかりました。

843 :nobodyさん:2011/02/04(金) 23:14:40 ID:???
お魔のその質問でクエリがただしいかどうかどうやって解決するんだ?
自分で発行されたクエリ調べて、正しいか読んでろ
質問あるならそのクエリもってSQLの質問受け付けてるようなところ行って来いよ
嫌ならすぐ死ね

844 :nobodyさん:2011/02/04(金) 23:18:30 ID:???
クエリ情報ってSQLから引っ張ったの直接表示してるだろ。どう間違えるの

845 :nobodyさん:2011/02/04(金) 23:40:18 ID:???
cake通さないで実行時間計測してみればいいのに
1000msとかならともかく259msなら、体感差はそこまではっきりとは出ないだろうし

846 :nobodyさん:2011/02/05(土) 00:22:01 ID:???
この際、実際のSQLはどうだって良いんだよ。
phpMyAdminとかで実行しても259msもかかんないんだし。

それよりも、「Cakeのクエリ情報は正しいのか?」という
ただ1点のみの問いかけなんです。

847 :nobodyさん:2011/02/05(土) 00:25:25 ID:???
し ら ね ー よ

ソース嫁

848 :nobodyさん:2011/02/05(土) 00:36:53 ID:???
>>846
CakeのログではかれたSQLをそのまま実行したら、キャッシュの結果を返さないか?

849 :nobodyさん:2011/02/05(土) 05:01:31 ID:???
最近のRDBMSは優秀だからね。
直近のSQLの結果は、キャッシュされる可能性があるね

850 :akiyan:2011/02/05(土) 10:50:42 ID:???
いやクエリキャッシュは明示的に設定してやらないと発動しませんから
いい加減なこと書いて初心者を惑わせるのはどうかと

851 :nobodyさん:2011/02/05(土) 11:27:12 ID:???
>>850
自分の環境を理解してないほうが悪い。

852 :nobodyさん:2011/02/05(土) 12:13:48 ID:???
authComponentで強制的にログイン画面に
リダイレクトされるのを防ぐにはどうしたらいいですか?

非ログイン状態だと右上にずっとログイン用のフォームが出てる
イメージです

853 :nobodyさん:2011/02/05(土) 12:53:42 ID:???
そのページをallowにしてやらんと。
てか根本的に理解が足らんと思うわ
マニュアルやチュート何度も読み返してこい

854 :nobodyさん:2011/02/05(土) 13:01:50 ID:???
$this->Auth->allow('*');
でいけたわ
必要なアクションのみdenyで登録ってことか

855 :nobodyさん:2011/02/05(土) 13:20:32 ID:???
聞くなしらべろ

856 :nobodyさん:2011/02/05(土) 13:58:50 ID:???
うるせえ。偉そうすぎるんだよ

857 :nobodyさん:2011/02/05(土) 14:29:17 ID:???
cakeスレなのにみんな辛口だよな

858 :akiyan:2011/02/05(土) 15:24:41 ID:???
>>851
RDBMSが優秀だからクエリキャッシュするなんて見当違いも甚だしいレスをつけておいて責任転嫁はいかがなものかと

859 :akiyan:2011/02/05(土) 15:30:22 ID:???
曖昧な知識で適当なアドバイスするくらいなら、何もしない方がマシですよ

860 :nobodyさん:2011/02/05(土) 15:40:40 ID:???
akiyanの名前を騙って書き込むくらいなら、何もしない方がマシですよ

861 :nobodyさん:2011/02/05(土) 16:37:26 ID:???
切羽詰まりすぎな人が多いから、イライラしている人が多いと思う

862 :nobodyさん:2011/02/05(土) 16:43:50 ID:???
違う。わからないくせに質問者を恫喝するから荒れるんだよ。
分かっている人はきちんと答えてるし。

863 :nobodyさん:2011/02/06(日) 04:12:11 ID:???
ググるときに1年以内とか絞りこむとだいぶ1.2の情報消えるな

864 :nobodyさん:2011/02/06(日) 07:22:03 ID:???
期間指定ってかなり便利だよな。サイドバーも使いやすいし

865 :akiyan:2011/02/06(日) 15:01:09 ID:???
>>862
同感です
全体的に口調が荒すぎてスレの雰囲気悪くなってますよね

866 :nobodyさん:2011/02/06(日) 16:41:08 ID:???
他のスレでもいるけど、1人の粘着が荒らしてるだけだけどね。

867 :nobodyさん:2011/02/06(日) 17:11:49 ID:???
お前らまだこんなの使ってたのかw

868 :akiyan:2011/02/06(日) 17:18:07 ID:???
使ってないならこのスレ来なきゃいいのに

869 :nobodyさん:2011/02/06(日) 20:49:55 ID:???
気になって仕方ないんだろうなw

870 :nobodyさん:2011/02/06(日) 21:39:44 ID:???
app\vendors\thumbnail.php

APP::import('Vender','Thumbnail');
$Thumbnail = new Thumbnail();

最新版です。
なぜ読み込めないのでしょうか?

871 :nobodyさん:2011/02/06(日) 21:47:28 ID:???
app\vendors\thumbnail.php

APP::import('Vender','thumbnail');
$Thumbnail = new Thumbnail();


なんだ小文字にするのか、、、、

こういう所が腐ってるところ
複数形とかウザすぎ

872 :nobodyさん:2011/02/06(日) 21:51:21 ID:???
違った。終わってるね。

873 :nobodyさん:2011/02/06(日) 21:58:42 ID:???
Vendor
Vender
お前酷いな

874 :akiyan:2011/02/06(日) 23:25:34 ID:???
>>871
webフレームワークの潮流も知らないでよくそんな偉そうな事言えますね
Railsとか勉強されてはどうですか?
自分の知識の無さを棚に上げてフレームワークのせいにするなんて幼稚園児の発想ですよ
どうせ自分の年収が低いのは日本経済の責任だとか愚痴ってるんでしょ新橋の立ち飲みやで
どうしようもない人間ですね カス クズ 人間のゴミ

875 :nobodyさん:2011/02/06(日) 23:28:07 ID:???
まぁ落ち着け
できないやつは文句ばっかりなのは実感するところだけどさ。

876 :nobodyさん:2011/02/06(日) 23:30:24 ID:???
>>874
何で自分のこと言ってるの?

877 :nobodyさん:2011/02/06(日) 23:51:46 ID:???
858 :akiyan:2010/10/20(水) 00:32:48 ID:???
いやホントに
改めて言うのも照れてしまうけれど花金明け土曜日0時なら俺は言える
「CakePHPこそフレームワークの完成形だと」
The Standard Languageの座を揺るぎないものとしたPHP
20世紀エンジニア達の知の結晶とも言うべきMVC
ここにRuby on Railsというスパイスが加わってCakeは生まれた
全くこれは何だっていうんだい 奇跡なんて陳腐なもんじゃない
おそらくはCOBOLが生まれた時点でPHPの誕生は決定済みであったろうし
Rubyは図らずもCakeの為に作られたと言っていいんじゃないか
RubistやDHH、それに20世紀を生きた全てのエンジニア達が費やした途方もない時間
それらはすべてCakeに繋がった Cakeのために彼らの汗が流された
逆じゃないんだ Cakeは結果じゃない
Cakeが始まりであって、Cakeの生誕のためにRailsがあり、Rubyがあった
20世紀を生き、そして21世紀に歩を進める全てのwebに関わるエンジニアのための心臓、それがCake
俺はCakeの時代に現役でいられたという事を誇りに思うだろう
死ぬ間際に息子と娘と孫と妻、そしてCakeの事を思うだろう
あぁCakeよCake お前は俺の中にあるし、Cake内部にも俺がいる
うまく言葉にできねぇな、とにかくCakeはもう21世紀エンジニアの魂だ
そして最後に
最愛の妻と友人、そしてペニーオークションに幸あれ

878 :nobodyさん:2011/02/07(月) 00:19:49 ID:Y103Gns6
>>874
気にするなよ、Webの仕事では、
PHPを使う仕事ではPHP(CakePHP)を使うし、
Ruby使う仕事ではRuby(Rails)を使うでいいんじゃね。
書き方の細かなことはいいじゃねか、普通はCakePHPもRailsもどっちも使えるだろ。

879 :nobodyさん:2011/02/07(月) 00:32:57 ID:???
モデルの仕組みが全くわからん

880 :nobodyさん:2011/02/07(月) 01:17:13 ID:???
Cakeは便利だけど、そりゃだめなところもいっぱいあるさ。
好みの問題もあるけど、誰もが首をかしげるものもある。
Cakeは万能じゃない。

作りたい物が小規模で、Cakeを使ってて回りくどいと感じてるなら、
CodeIgnighterは良い選択肢かもしれない。
Cakeよりもっと厳格なスタイルで開発がしたいなら、
Symfonyを試してみると良いかもしれないぞ。
ZendFrameworkはシラネ

881 :nobodyさん:2011/02/07(月) 10:55:24 ID:???
そこで俺はCakeの命名規則に沿った
オレオレフレームワークを作ったのだった

882 :nobodyさん:2011/02/07(月) 15:01:26 ID:???
で、それをオープンソースにすると

883 :nobodyさん:2011/02/07(月) 15:32:20 ID:???
どんなときにCakePHPで作ってどんなときにDrupalやxoopsなどのCMSでサイトを作りますか?
そこの判断基準を教えてください

884 :nobodyさん:2011/02/07(月) 16:13:13 ID:???
吊るしでいいときはCMS
オーダーメードのときはCake

885 :nobodyさん:2011/02/07(月) 16:24:23 ID:???
CMSで納得する客って今まで会った事無いな。
依頼時は「オープンソースでも結構です」とか言いつつ、
結局は、あれして・これしてってなるのが目に見えてるし。

886 :nobodyさん:2011/02/07(月) 18:15:12 ID:???
まあそこを納得して頂くのがプロの営業マン

887 :nobodyさん:2011/02/07(月) 18:37:23 ID:???
CMSのカスタマイズはCakeより面倒だからなぁ。
プラグイン・モジュールで対応できないなら、Cakeかな。

888 :nobodyさん:2011/02/07(月) 18:47:22 ID:???
昔CakePHPで挫折してCIに移ったものです
CIはセッションがなんちゃらとPHP4とPHP5をサポートしているのが気に食わなくなりZend Frameworkの勉強を始めました
なんかやっぱりCakePHPってやっぱり難しいですね

889 :nobodyさん:2011/02/07(月) 19:31:03 ID:???
だってなんだか♪だってだってなんだもん♪

890 :nobodyさん:2011/02/07(月) 19:32:01 ID:???
cakephpの命名規則に従ってサイト作ると
URLがなにかイマイチな感じになる。
/items/
とか日本語の感覚だったら
/item/
になると思うんだけど
命名規則に従って作ってますか?

891 :nobodyさん:2011/02/07(月) 19:36:03 ID:???
routes書けよ

892 :nobodyさん:2011/02/07(月) 19:42:35 ID:???
Zend FrameworkではaaaBbbって書くとaaa-bbbでアクセスできる

893 :nobodyさん:2011/02/07(月) 20:08:31 ID:???
>>890
そこは別にitemで良いじゃん。Cakeで変えられるんだし。

894 :nobodyさん:2011/02/07(月) 22:25:53 ID:???
私はcakephpの勉強をするために参考になるサンプルを探しています。
1.3.x系ですでに出来上がっているECサイトの礎になるようなものは無いでしょうか?
分類マスタやアイテムの登録ができ、お買い物カート等のコンポーネントや二重登録防止
ajax時と通常時での認証やエラー出力が合理的に分離されているソースコードが見たいです。
BakeSaleはバージョンが古いようでした。
大変お手数ですが、どなたかご教示願います☆

895 :nobodyさん:2011/02/08(火) 01:35:20 ID:???
Cakeって自動で不規則な複数形も面倒見てくれるの?
historiesとかchildrenとか

896 :nobodyさん:2011/02/08(火) 03:15:55 ID:???
最後の1文字は余計だったと思うよ

897 :nobodyさん:2011/02/08(火) 03:27:28 ID:???
>>895
正直そこまでやらんでもって思うが、特殊な複数形のやつとかは、
Inflectorクラスのプロパティに色々書いてあるぞ。
https://github.com/cakephp/cakephp/blob/master/cake/libs/inflector.php#L40

898 :nobodyさん:2011/02/08(火) 13:21:05 ID:???
不規則な複数形は完全に英語ネイティブな人向けの機能だよね
personsでもいいじゃん!

とか思ってるから全然英語が上達しないんだろうか・・・

899 :nobodyさん:2011/02/08(火) 13:42:54 ID:???
cakephpのcookbookはどうしてあんなに重いんですか?


900 :nobodyさん:2011/02/08(火) 13:56:14 ID:???
ページ数が多い本だからかな

901 :nobodyさん:2011/02/08(火) 15:10:54 ID:???
hasManyとbelongsToでアソシエーションしたテーブルのデータを1ページで複数レコードをsaveAllを使って一括更新しようとしています。

更新時に外部キーに設定したフィールドのレコードに空の値が送られてしまいます。
それ以外は正常に更新されています。

$form->hiddenで値を渡そうとしても、発行されているSQLの値は空になり、リレーションが壊れてしまいます。

どなたか回避策をご教授願います。

902 :nobodyさん:2011/02/08(火) 15:19:09 ID:???
>>899
ほとんど静的ページなんだから、ビューキャッシュしたらいいのにな

903 :nobodyさん:2011/02/08(火) 15:31:21 ID:???
>>901
formはとりあえず置いといて、
ShellでModelだけ扱うコード書いていけるか試す。

904 :nobodyさん:2011/02/08(火) 16:52:25 ID:???
新しいCookbookはブラウザにキャッシュしてるよ

905 :nobodyさん:2011/02/08(火) 17:38:00 ID:???
あほですわ

906 :nobodyさん:2011/02/08(火) 18:21:33 ID:???
>>899
なんかクソ重いフレームワーク使ってるんじゃないかな

907 :nobodyさん:2011/02/08(火) 18:52:39 ID:???
けしからんな
CakePHPで組み直してやれよ

908 :nobodyさん:2011/02/08(火) 19:15:53 ID:???
公式サイト重くてよく落ちてるよね。
Cakeはローカルで使えるヘルプを用意するべき。

ヘルプをオンラインでしか提供しないのは、googleの広告収入目当てなのかね。
せこいな・・・

>>906
本家のサイトが重いと「駄目なフレームワークなんだな」という印象を与える。


>>904
特定のサイトを明示的に永久キャッシュさせるのってどうやるの?
普通はキャッシュはいつの間にか消えちゃうと思うけど

909 :nobodyさん:2011/02/08(火) 19:46:17 ID:???
駄目とまでは言わないけど、実際あまりよくできたフレームワークじゃないよね、これ

910 :nobodyさん:2011/02/08(火) 19:50:16 ID:???
どのへんが?

911 :nobodyさん:2011/02/08(火) 20:15:12 ID:???
てか、Cookbook新しくなって、めちゃくちゃ軽くなったぞ?
まえはページ切り替えるとそこそこ反応遅かったけど、
今は即切り替わる。
キャッシュされてないページはちょっともたつくけど、
2回目以降はほんとはやいぞ。

912 :nobodyさん:2011/02/08(火) 20:19:56 ID:???
アホはだまっとけって↑

913 :894:2011/02/08(火) 20:50:30 ID:???
>>896大変失礼しました。
1.3系で作成されたECサイトのサンプルがありましたら、ぜひ教えてください。

914 :nobodyさん:2011/02/08(火) 21:47:30 ID:???
>>911
ああだいぶ早くなった。俺が見たときはキャッシュクリア直後だったのかもな。

915 :nobodyさん:2011/02/09(水) 11:03:49 ID:???
みなさんはページ数がどれくらいまでならCakePHPでサイト構築しますか?

916 :nobodyさん:2011/02/09(水) 11:50:06 ID:???
ページ数ww

917 :nobodyさん:2011/02/09(水) 12:46:52 ID:???
>>915
15ページくらいかな


皆さんに質問です
cakephpをものにしたら仕事に困らないですか?月給30万円も夢じゃない??

918 :nobodyさん:2011/02/09(水) 12:56:20 ID:???
30万でいいの?

919 :nobodyさん:2011/02/09(水) 12:57:27 ID:???
板違い

920 :nobodyさん:2011/02/09(水) 13:34:19 ID:???
>>917
15ページでもシステム使わないかしょなら面倒じゃないか?

なにせアップロードする時はCakeのファイル数が多いから、
会社概要的な小規模サイトの場合、Cake使うのが煩わしいんだよな

921 :nobodyさん:2011/02/09(水) 13:59:41 ID:???
CGIなら月給35万可能だにょ

922 :nobodyさん:2011/02/09(水) 19:27:04 ID:???
cakephpとmysqlをモノにしたら

月給50マンは可能なはず

923 :nobodyさん:2011/02/09(水) 19:28:04 ID:???
>>917
ほれ自信が付いたらやってごらん
ttp://hp.submit.ne.jp/request/detail/20329

924 :nobodyさん:2011/02/09(水) 20:24:52 ID:???
>>923
何作るか具体的に書いてないところを見ると、奴隷が欲しいんだな

925 :nobodyさん:2011/02/09(水) 20:53:26 ID:???
モノにしてる度合いにもよるけどなw
CakePHPより、MySQLの方にかなり精通してるなら、
高給もありえると思うが。

926 :nobodyさん:2011/02/09(水) 21:04:54 ID:???
「精通」ってどの程度?

927 :nobodyさん:2011/02/09(水) 21:27:15 ID:???
CakePHPは終わコン

928 :nobodyさん:2011/02/09(水) 21:32:26 ID:???
ではCakePHPにとって替わるのは何かね?

929 :nobodyさん:2011/02/09(水) 22:51:31 ID:???
app配下にあるxxx.pngを、controllerのactionから呼び出して、viewに表示させたい。

controller側
<?php
class hoge extends AppController{
function piyo(){
$this->layout = null;
$img = APP . DS . "data/image1.png";
header("Content-Type: image/png");
echo file_get_contents($img);
}
}
?>

view側
<?php
echo $html->image('/hoge/piyo', array(
class' => 'class_icon',
'alt'=>'noImage',
'name'=>'profile_image'
)
);
?>

実行をすると、
画像ファイル "http://xxxx/hoge/piyoは" は壊れているため、表示できませんでした。
とでます。

解決方法を知っている方は、教えてください。
ちなみに、.php,.ctpはutf-8で保存されてます。BOMなしです。


930 :nobodyさん:2011/02/09(水) 22:52:34 ID:???
お前、根本的に間違ってる

931 :nobodyさん:2011/02/09(水) 22:58:39 ID:???
app配下にある画像をphp

932 :nobodyさん:2011/02/09(水) 23:31:22 ID:???
errorというコントローラー名って使えないの?
アクセスしたらApacheが/var/www/errorにファイル取りにいって404になる

933 :nobodyさん:2011/02/10(木) 00:21:38 ID:???
>>929 viewの出力やめれ

934 :nobodyさん:2011/02/10(木) 00:46:20 ID:???
>>926
ボトルネックになっている問い合わせを調べて、SQLチューニング等で解決できるくらい

935 :nobodyさん:2011/02/10(木) 00:54:08 ID:eN2QEGlj
>>930
間違っているなら、そこを指摘してあげないと。

936 :nobodyさん:2011/02/10(木) 01:07:36 ID:???
>>934
それくらいだとMySQL触ったばっかでもやるからダメじゃないかな?
サービス担当したときにSQL全然わからないままググりながらやった覚えがある

937 :nobodyさん:2011/02/10(木) 01:19:17 ID:???
Amazonやgoogleで高給貰いながらエンジニアやりたい

高卒未経験の俺でもCakePHPをモノにして
大器晩成なるかな?

938 :akiyan:2011/02/10(木) 01:33:01 ID:???
>>937
無理ですね
googleは院卒が最低限
あなたみたいな人はペニーオークションで稼ぐといいよ

939 :nobodyさん:2011/02/10(木) 01:36:11 ID:???
>>938
仮に僕がペニーオークションみたいなのをやって成功したらGoogleは雇ってくれますか?


ペニーオークションみたいな運営方法って違法にはなりませんか?

940 :nobodyさん:2011/02/10(木) 01:58:44 ID:???
公式に現在置いてある1.3.6って
この脆弱性の問題はクリアしてんのかな?

http://co3k.org/diary/12

941 :nobodyさん:2011/02/10(木) 02:07:08 ID:???
>>936
やると出来るは違うと思う。
まぁスレチだしそろそろやめる。

942 :nobodyさん:2011/02/10(木) 02:46:38 ID:???
どなたか教えて頂けないでしょうか?
まず私についてですが、プログラム歴1年 php歴3ヶ月です。
cakephpを始めて1週間になります。

今回お尋ねしたいことは既存DBとの結合についてです。
グーグル検索いたしましたし、過去スレもひと通り目を通しました。
自身でもいろいろと試してみたのですが、未熟故にどうしてもできないため
質問させて頂きます。

モデル「User」はDB「既存 」にあるTABLE「users」に接続するようdbconfigを設定しています。
primaryKeyは「user_cd」で「group_cd」がフィールドにあります。
モデル「Group」はDB「既存」にあるTABLE「groups」に接続するようdbconfigを設定しています。
primaryKeyは「group_cd」です。
モデル「Auth」はDB「新規」にあるTABLE「auth」に接続するようdbconfigを設定しています。
primaryKeyは「id」で「user_cd」がフィールドにあります。

私が実現したい事はモデル「Auth」のメソッド「find」で
hasOne形式で「User」を結びつけさらにその結び付いた「User」に対して
hasMany形式で「Group」を結びつける事です。

「User」と「Group」を結びつける際には、
一時的に「User」のprimaryKeyを「group_cd」へ変更する事でできました。
「Auth」「User」と「Group」を結びつける事ができなかったので
「users」と「groups」を結合したビュー用のモデル「Usergroup」を作成し、
「User」のprimaryKeyを「group_cd」へ変更する事でできました。
※ただし、同一「auth」&「users」が複数取得されてしまう。

Auth →[hasOne]→User→[hasMany]→Group
primaryKeyを変更せず、ビューを作る等余分な事をせずに結合する方法を
ご教示ください。お願いします。

943 :942:2011/02/10(木) 02:49:13 ID:???
訂正です。
>「Auth」「User」と「Group」を結びつける事ができなかったので
>「users」と「groups」を結合したビュー用のモデル「Usergroup」を作成し、
>「User」のprimaryKeyを「group_cd」へ変更する事でできました。

「Auth」からfindメソッドで「User」と「Group」を結びつける事ができなかったので
「users」と「groups」を結合したビュー用のモデル「Usergroup」を作成し、
「Auth」のprimaryKeyを「user_cd」へ変更する事でできました。

944 :nobodyさん:2011/02/10(木) 04:12:27 ID:???
うるさい黙れ

945 :nobodyさん:2011/02/10(木) 11:14:08 ID:???
cakephpでsqlite3を使ってみようと思い、接続まではうまくいったのですが
$scaffold で見てみると
sqlite3で直接入れたデータは読み込めたが、
$scaffold上でデータ追加しようとしたら Please correct errors below. 出て追加されませんでした。
なぜでしょうか?

cakephpのバージョンは1.3.6です

Nr Query Error Affected Num. rows Took (ms)
1 INSERT INTO "hoges" ("data", "modified", "created") VALUES ('aaaa', '1297303126', '1297303126')

946 :945:2011/02/10(木) 12:09:02 ID:???
自己解決しました
データベースファイルだけじゃなくてディレクトリにも書き込み権限を与えないとだめだったようです
失礼しました

947 :nobodyさん:2011/02/10(木) 18:33:29 ID:???
ふと訪れた著作権ガン無視エロサイトのfaviconがcakeだった
それだけ

948 :nobodyさん:2011/02/11(金) 16:09:07 ID:???
cakephpでwebサイトつくると時間かかるな

949 :nobodyさん:2011/02/11(金) 16:51:08 ID:???
作った後のバグ修正などで、時間短縮できるはずさ

950 :nobodyさん:2011/02/11(金) 17:11:28 ID:???
作るのはすぐできる。動かないんだよ。

951 :nobodyさん:2011/02/11(金) 18:01:22 ID:???
まあがんばれw

952 :nobodyさん:2011/02/11(金) 18:34:58 ID:???
>>948
水銀灯のように動き出すまでに時間がかかるんだよ

953 :nobodyさん:2011/02/11(金) 18:40:48 ID:???
がんばるのは俺じゃなくて、Cakeの中の人だと思うんだが…

954 :nobodyさん:2011/02/11(金) 20:05:15 ID:???
>>948
俺もそう感じるけど、Cakeは命名規則が決まってるから
無駄な部分(名前の付け方に悩む)が省けて精神的には良い

955 :akiyan:2011/02/11(金) 23:05:43 ID:???
フレームワークの恩恵を受けられない人は何を使っても上手くいきませんよ
本質を学び直すことをお勧めします

956 :akiyan:2011/02/12(土) 03:15:14 ID:???
フレームワークを使いこなすにはまずフレームワークに使われなくてはなりません

フレームワークの制約を受け入れ、なぜ制約があるのかその意味を考えて見てください

制約こそがフレームワークの価値でもあるのです

957 :akiyan:2011/02/12(土) 04:34:43 ID:???
フレームワークけっしてみゅめのような道具だと思われないで女子いーー

958 :nobodyさん:2011/02/12(土) 05:11:03 ID:???
フレームワーク依存して始めて見えてくる世界がある
太陽が眩しい世界だ

959 :nobodyさん:2011/02/12(土) 11:03:40 ID:???
引き篭もりですか

960 :nobodyさん:2011/02/12(土) 12:06:14 ID:???
太陽が黄色く見える世界だ

961 :nobodyさん:2011/02/12(土) 15:07:18 ID:???
CakePHP使ってる超大手サイトって
佐川急便、ペニオク、他に何かある?

962 :nobodyさん:2011/02/12(土) 15:30:18 ID:???
ペニオクって超大手サイトなのか?

Mozilla Addons。
ソーシャルゲームでも、CakePHP使ってるところはあったな。
普通のサイトとは桁違いのPV数を捌いている。
CakePHPがそこに貢献してるかどうかはわからんけど。

あとここにいくつか書かれてる。超大手に入るのかしらんけど。
http://d.hatena.ne.jp/otome_pw/20110104/1294098484

963 :nobodyさん:2011/02/12(土) 15:34:17 ID:???
CakePHP使ってることを隠蔽するメリットってあるの???

そして、どうして松田聖子は未だにあんなに可愛いの?ヤりたくなる可愛さ!

964 :nobodyさん:2011/02/12(土) 16:52:13 ID:???
>>963
恥ずかしい

965 :nobodyさん:2011/02/12(土) 16:53:57 ID:???
CIで作ってクッキー名をCAKEPHPにしてる

966 :akiyan:2011/02/12(土) 17:58:59 ID:???
セキュリティのこと考えると隠遁したほうがいいよね

967 :nobodyさん:2011/02/12(土) 18:24:28 ID:???
隠蔽しなくて被害を受けるなら、Cake使わなくて受けてるだろ。

968 :akiyan:2011/02/12(土) 21:12:13 ID:???
え?ソフトウェア名を公開するとピンポイントで脆弱性を突かれる可能性が生まれるから極力隠遁したほうがいいという考えはおかしいですかね

969 :nobodyさん:2011/02/12(土) 22:55:35 ID:???
でもさCakePHPで作ってるサイトだと、htmlソースみたらフィールド名が
hoge[Model名][Field名]って出てるから一目瞭然なんだけど?

970 :nobodyさん:2011/02/12(土) 22:59:51 ID:???
Cookieは簡単に変えられるんだから変えとけ。そんは無い。
たけど、CakePHPは隠しにくいものだから諦めろ。
あと標準のfaviconも消せよ。

971 :nobodyさん:2011/02/13(日) 00:03:08 ID:???
>>970
無知で申し訳ないんだけど、>>969を簡単に変えられるの?
フォームヘルパーやバリデーション使うの止めるとかじゃなくて?

972 :nobodyさん:2011/02/13(日) 00:19:00 ID:???
>>971
無理

973 :nobodyさん:2011/02/13(日) 00:24:31 ID:???
Cookieは簡単に変えられるんだから変えとけ
 を
CakePHPは簡単に変えられるんだから変えとけ

に読み違えていた・・・勘違いすまん

974 :nobodyさん:2011/02/13(日) 01:11:26 ID:???
htmlソース覗くと参照先がが/cake/hoge/css/hoge.css

とかになってるから一発で分かるw


975 :nobodyさん:2011/02/13(日) 01:14:43 ID:???
それはない。

976 :nobodyさん:2011/02/13(日) 01:16:31 ID:???
は?

977 :nobodyさん:2011/02/13(日) 01:31:44 ID:???
まぁ分かりやすい箇所ではあるけど、そのパスはねーよ

978 :nobodyさん:2011/02/13(日) 01:49:17 ID:???
ソートのかかったリンク先とかも

hoge/list/page:1/sort:id/direction:asc

とかなるから、CakePHP坊やだと、すぐ分かるw

979 :akiyan:2011/02/13(日) 04:18:40 ID:???
まあ隠せるものは隠したほうがいいね
たまにご丁寧にフッターにバージョンまで書いてるサイトがあって失笑しちゃう

980 :nobodyさん:2011/02/13(日) 06:30:29 ID:???
>>979
まぁおまいさんの名前も失笑だけどな

981 :nobodyさん:2011/02/13(日) 18:18:43 ID:???
-------------------------------------board.php-------------------------------------

public $belongsTo = array(
"User" => array(
'className' => 'User',
'conditions' => '',
'order' => '',
'dependent' => false,
'foreignKey' => 'user_id'
)
);



-------------------------------------boards_controller.php-------------------------------------

$res = $this->User->find('all')
echo $res;

↓↓↓↓↓↓↓↓↓↓↓↓↓


Userテーブルにはレコードが入っているはずなのに
$resは空っぽ

982 :akiyan:2011/02/13(日) 18:24:34 ID:???
今perlやってますよ ちょっとはまったわ

983 :nobodyさん:2011/02/13(日) 18:27:40 ID:???
ソートのひっくり返しのときの↓をもっとスマートにやる方法ないかなぁ

<?php
if(@$this->passedArgs['sort'] === 'id' && @$this->passedArgs['direction'] === 'desc') {
// urlのオプションを変える
$paginator->options(array('url' => array('page' => '1')));
echo $paginator->sort('IDで並び替え▼', 'id');
} else {
// urlのオプションを変える
$paginator->options(array('url' => array('page' => '1')));
echo $paginator->sort('IDで並び替え▲', 'id');
}
?>

984 :nobodyさん:2011/02/13(日) 18:48:12 ID:???
>>981
debugしてればページにSQLの結果出てると思うけどそれは行数0ではないわけ?

>>983
その部分だけ見たら最後の2行をif文の外に出せばいい気がするけどそれじゃダメなの?

985 :nobodyさん:2011/02/13(日) 18:50:16 ID:???
@って何の意味だろうと思ったらエラー制御演算子か。
推奨されないってのを見て今まで使ったことなかったから一瞬perlのスレ見てたのかと勘違いした

986 :nobodyさん:2011/02/13(日) 21:11:41 ID:???
>>984さん

$res[0]['User']['username']には「9」が入っており、
下記を実行したところboardsテーブルにレコードが出来るのに
なぜかuser_idには「0」が入ってしまいます


$this->data['Board']['user_id'] = $res[0]['User']['username'];
$this->Board->save($this->data);
if($this->Board->validates()){
$this->redirect('.');
}


987 :nobodyさん:2011/02/13(日) 21:16:17 ID:???
誰か頼む
kcaptchaの導入方法を懇切丁寧に教えてください。
コンポネントの作り方さえ、ままならないので手取り足取りでお願いします

988 :akiyan:2011/02/13(日) 22:55:32 ID:???
さすがにそんな頼み方で教える人はいませんよ

989 :nobodyさん:2011/02/13(日) 23:02:37 ID:???
zfからフレームワークに入ったんだけどcakephpってコントローラの設定が気持ち悪い
zfがpythonならcakephpはperlみたいな

990 :nobodyさん:2011/02/13(日) 23:42:01 ID:???
質問させてください。

messagesというテーブルとモデルがあって
フィールドは

id
user_id(送信元のユーザーID)
title
body
idto(送信先のユーザーID)

があります。user_idだけでなく
idtoもusersという会員データのテーブルを参照します。
アソシエーション利用時の命名規則として
どういった名前にするのが、それぞれ適切でしょうか?

また
http://hoge.com/cake/users/mailsend/1536
というusers_controller.php のmailsendというアクションからメール入力フォームにデータを渡す時、

上のuser_idとidtoは、どのようにしてviewへ渡せばいいでしょうか?ちなみに ID:1536が送信先になります。

Authでログインしているものとして、教えていただければ幸いです。

991 :nobodyさん:2011/02/14(月) 00:05:47 ID:???
>>990
UserMessage じゃないかな。

一旦、findでUserデータを取得してそのIDが正しいか検査し、
問題なければ、setで渡せばいいんじゃないかな。

992 :nobodyさん:2011/02/14(月) 00:46:01 ID:???
>>990 の現在の実装にはまるかわからんが、Cookbookにはこう言うのがある。
http://book.cakephp.org/ja/view/1046/Multiple-relations-to-the-same-model
以前は日本語訳があった気がするけど、なぜか英語になってた。

993 :nobodyさん:2011/02/14(月) 00:52:23 ID:???
>>991
レスありがとうございます。
UserMessageへテーブル名を変更ということですか?user_idとidtoの二つのフィールド名は変更なしということでしょうか?


それとコントローラーからビューへのデータの受け渡しの件で、
user_idについてはビューで$dataで取り出せますが、
idtoにあたる1536(urlのパラメータ部分)を
取り出す方法ってありますか?

メッセージ送信時に渡すので、このidtoやuser_idはおそらくhiddenにするのでしょうか?(メール入力フォームではタイトルと本文だけ入力するものとして)

idtoの部分をphpの$_GET()を使わないで、cakephp独自の方法がありますでしょうか?

994 :nobodyさん:2011/02/14(月) 00:54:29 ID:???
>>992
まさに、それですね(笑)
わざわざ、ありがとうございます!

995 :nobodyさん:2011/02/14(月) 00:59:42 ID:???
基本中の基本だろクズども

996 :nobodyさん:2011/02/14(月) 01:37:32 ID:???
等と供述しており・・・

997 :nobodyさん:2011/02/14(月) 01:43:36 ID:???
ここで書くより先に手を動かして試せばいいのに。

998 :nobodyさん:2011/02/14(月) 02:07:22 ID:???
もっともな話だけど、試した結果困ってる人とか、
試す前にどう書けば良いのか分からないって話もあるみたいだが?

999 :nobodyさん:2011/02/14(月) 02:18:17 ID:???
↓こんな時間に1000とったやつはニートか明日遅刻

1000 :nobodyさん:2011/02/14(月) 02:30:16 ID:???
1000なら999が変わりに遅刻

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

235 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)