トップページ⇒php
1001コメント303KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2010/11/01(月) 21:43:26ID:???
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
0002nobodyさん2010/11/01(月) 21:44:22ID:???
■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/
0003nobodyさん2010/11/01(月) 21:45:16ID:???
■過去スレ
【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/
0004nobodyさん2010/11/01(月) 21:45:57ID:???
■関連スレ

【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/
0005nobodyさん2010/11/01(月) 21:46:39ID:???
■その他いろいろ
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
0006nobodyさん2010/11/01(月) 21:48:51ID:???
■関連書籍
・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
0007nobodyさん2010/11/01(月) 22:08:23ID:???
>>1
俺、乙・・・。
0008nobodyさん2010/11/01(月) 23:29:53ID:vnR/i9a6
>>1-7
乙
0009nobodyさん2010/11/02(火) 06:12:53ID:???
CakePHPをこれから学習する者です。

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

ご存知の方、所在を教えてください。
0010nobodyさん2010/11/02(火) 13:20:57ID:???
ありません。だから貴方が作りましょう。
0011nobodyさん2010/11/02(火) 14:03:23ID:???
http://book.cakephp.org/ja/complete/876
このページ保存しとけばいい
0012nobodyさん2010/11/02(火) 14:10:09ID:???
$form->datetime('Model.item1');
で作成したフィールドに、必須入力項目のValidationをかけたいのです。
Validation ruleにnotEmptyを設定したのですが、きちんと入力しているにも関わらず
エラーが発生してしまします。どう書けばよいものでしょうか?
0013nobodyさん2010/11/02(火) 14:10:41ID:???
CakePHP初心者です。
何か質問があった場合、どこで聞くのが一番解決に近そうでしょうか?
公式の掲示板は過疎ってそうな感じなので
0014nobodyさん2010/11/02(火) 14:13:48ID:???
なんだよ俺たちじゃダメなのかよ。寂しいなおい。
0015nobodyさん2010/11/02(火) 14:25:47ID:???
>>12
datetimeのような連想配列にnotEmptyは出来ない。
beforeValidateで事前に調べて、1つの配列に代入してからチェックしろ。
0016nobodyさん2010/11/02(火) 16:49:23ID:???
俺たちはまるで無力だチンカスだ
0017nobodyさん2010/11/02(火) 17:48:52ID:???
>>13
公式というか、例の掲示板はわりとみんな優しいぞ!?
他のコミュニティに比べて特に過疎ってるとも思えん。
0018nobodyさん2010/11/02(火) 18:22:19ID:???
ただし、返答が遅い
0019nobodyさん2010/11/02(火) 18:37:52ID:???
2ちゃんも返答遅いでしょ
変な煽りとかは早いけど
0020nobodyさん2010/11/03(水) 06:30:28ID:4NSD+GsH

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

そんなんだからいつまでたっても子供のオモチャなんだよwwwwwwwwwwwwwww
0021nobodyさん2010/11/03(水) 17:58:56ID:???
複数の主キーが使えれば、大人のオモチャ並によくなるのか・・・
大人のオモチャは複数の主キーが使えるのか・・・
0022nobodyさん2010/11/03(水) 23:14:10ID:???
モデルでコントローラで言う$this->actionの値を取得できないのでしょうか?
モデルのバリデーションで、アクションによって分岐したい時に
使いたいと思いますが、マニュアルを見る限り、アクションが取得できません。
0023nobodyさん2010/11/04(木) 00:09:12ID:???
/cake/tests

ってテスト用のファイルが入ってるから、
bakeでテストしない場合は必要ないですよね?
0024nobodyさん2010/11/04(木) 03:21:53ID:???
>>22
モデルに独自メソッド(action渡してvalidateみたいな)を設けるのが素直でいいよ。
実際は取得できるけどhackじみてる。
0025nobodyさん2010/11/04(木) 10:31:06ID:???
>>24
なるほど。コントローラのbeforeFilterに書いて渡す事にします。
0026nobodyさん2010/11/04(木) 14:05:36ID:???
AlertモデルとUserモデル、2つのモデルがあります。

Alertモデル内で、

$this->User->findDataFromDatabase();

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

コントローラに書いているように、 public $uses = 'User'; としてみましたが、
エラーが出てしまいました。
0027262010/11/04(木) 14:54:17ID:???
どうやら、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);
0028262010/11/04(木) 15:05:14ID:???
下記のようにやると上手くいきました!

public function saveAlerts($alert) {

$this->User = ClassRegistry::init('User');
$user = $this->User->findDataFromDatabase('email',$data);
0029nobodyさん2010/11/04(木) 23:08:41ID:???
Ajaxの処理がモッサリなのは仕方ないのかな?
Configure::write("debug" , 0);
は書いてるけど。
0030nobodyさん2010/11/05(金) 09:01:55ID:???
鯖でAPC有効にするとCakeのセッション処理がPHP fatal errorを吐くんだけど、解決策知ってる人いますか?
0031nobodyさん2010/11/05(金) 13:04:12ID:???
APCのバグなのであきらめてください。
0032nobodyさん2010/11/05(金) 17:06:29ID:???
/user
└/diary
 └add.ctp

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

こういう表示の仕方って出来るのでしょうか?
0033nobodyさん2010/11/05(金) 17:32:18ID:???
>>32
http://api.cakephp.org/class/controller#method-Controllerrender
render()の引数fileをつかうとか、actionかbeforeRender()で。
やったことないけど。
0034nobodyさん2010/11/05(金) 17:33:08ID:???
Routes使ってできるんじゃないか

cakephp routesで検索してみて
0035322010/11/05(金) 17:45:48ID:???
>>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,
);

と書けば動きました。アドバイスありがとうございます。
0036nobodyさん2010/11/06(土) 18:34:51ID:???
CakePHP 1.3.2
MySQL 5.1.50
モデルを普通に更新してsaveしてもmodifiedが更新されない。
ぐぐって、default NULLにするとかをやっても駄目。modifiedをnullにしてsaveしても駄目。
誰か知恵を貸してくれ。
特に変わったことなどはしてません。
0037nobodyさん2010/11/06(土) 21:31:47ID:???
スペルは間違いなくあってる?
createdはinsert時にちゃんと入る?
modifiedを適当な日時に指定して更新したらどうよ?
あと更新するSQLを$this->Foo->save('id'=>1);とか適当なシンプルなものにしてみてどうなるか
0038nobodyさん2010/11/07(日) 02:31:33ID:???
updatedを使おうぜ
0039nobodyさん2010/11/07(日) 11:04:33ID:???
コントローラのファンクションの名前の付け方は、みなさんどうしてますか?

※コントローラ

1 function addAlerts

or

2 function add_alerts


1のやり方はPHPの規約通りですが、URLに大文字が混ざってしまうので
悩んでおります。
0040nobodyさん2010/11/07(日) 11:25:58ID:???
アクション名なら2
それ以外なら1
0041nobodyさん2010/11/07(日) 12:05:01ID:???
welcomeページでのみ、画像が出ずCSSも適用されない状態で詰まっています。
バージョンはApache2.2 + cake1.2.8です。

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

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

0042nobodyさん2010/11/08(月) 10:55:16ID:???
出力されたHTMLのソースはあってるの?
CSS,IMGのパスが間違っているんじゃないかとエスパー。
0043nobodyさん2010/11/08(月) 21:38:00ID:???
年齢選択用に1から100のセレクトボックスとかって、formヘルパーで出せる?
form->year使って、それっぽいことはできたんだけど、そもそもyearヘルパーって
挙動がちょっと(値が入る配列とかが)特殊なので、普通にセレクトボックスで出力したいんだけど
0044nobodyさん2010/11/08(月) 21:50:56ID:???
yearの何が不満なのかも書かないでどうしたらいいの?

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

あとこのへん読んで自分で決めてくれ
http://api.cakephp.org/class/form-helper
0045nobodyさん2010/11/08(月) 22:20:54ID:???
またビヘイビアの第一引数にmodel書き忘れて30分無駄にした
わかりにくいんだよ!
0046432010/11/08(月) 22:25:37ID:???
>>44
値が入る配列とかが特殊って書いてるんだけど…
具体的に言うとUser.ageって名前でセレクトボックス作ると、data['User']['age']['year']に値が入る
他にもIDの付き方とか、最後にYearがついたりして、微妙に使いづらい
(monthとかdayとセットで使う前提で作られてる感じ)

そういう力業の解決方法はあるんだろうけど、標準で用意されてないのかな、と。
0047nobodyさん2010/11/08(月) 22:31:10ID:???
phpのrange()使うと1〜100の配列とかすぐ作れるよ
0048432010/11/08(月) 23:22:02ID:???
>>47
ありがとうございます!
0049nobodyさん2010/11/09(火) 00:37:29ID:???
>>47
ほんとだ・・・今までfor使って自作関数作ってたぜw
0050nobodyさん2010/11/09(火) 00:38:40ID:???
彼氏がfor文使ってた…
0051nobodyさん2010/11/09(火) 00:49:02ID:???
$options = rang(1, 100);
$options = array_combine($options, $options);
ってよくやる
0052nobodyさん2010/11/09(火) 01:42:44ID:???
皆すごいな。話についていけない・・・。
0053nobodyさん2010/11/09(火) 12:25:52ID:???
コントローラ内で、リダイレクトする時に変数のデータもつけたいのですが、
どうすればよいでしょうか?  1.3です。

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

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

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


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

http://cakephp.1045679.n5.nabble.com/Does-redirect-clear-variables-td1274496.html
0055nobodyさん2010/11/09(火) 12:36:19ID:???
>>53
こういうことがしたいん?
$this->redirect('/hoge/edit/' . $id));
0056532010/11/09(火) 12:56:38ID:???
>>55

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

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

おそらくセッションの問題とは思うのですが、
この現象を解決する方法はないでしょうか?
0058nobodyさん2010/11/09(火) 16:30:27ID:???
>>57
Auth使ってるあたりのコードを書いてみて
login() , logout() とか beforeFilter() とか
0059nobodyさん2010/11/09(火) 20:47:00ID:???
>>58
Cookbookの内容と同じです。
http://book.cakephp.org/ja/view/1250/Authentication

他の人は>>57の症状にならないんですか?
割と頻繁に発生するんですが。
0060nobodyさん2010/11/09(火) 21:18:33ID:???
Aのモデル内でBのモデルのメソッドを呼び出したいです。

function get() {

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

}

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

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

もしくは、一括で適用させると重くなるので、今まで通り毎回使う時だけ
呼び出したほうが件名なのでしょうか?
0061nobodyさん2010/11/09(火) 21:28:34ID:???
>>60
>しかし、一つのモデル内で一括して適用させるには
>どうすればよいのでしょうか?
なにいってっかわかんね。

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

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

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

つまり、

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

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

その時、Bのモデル内で

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

このようにしてます。 でも、毎回 $this->A = ClassRegistry::init('A');  を呼び出すのはめんどくさいなあ、
でも、全体に適用すると重くなるのかなあと悩んでます。
0063nobodyさん2010/11/09(火) 22:34:45ID:???
だからそのsetAlerts()がそのモデルにあるのがおかしいんじゃないのか
0064nobodyさん2010/11/10(水) 14:28:56ID:???
cakePHP 1.3 になりましたが、 以前 htmlHelperは重くなるから使わないほうがよいのでしょうか?

FormHelperは積極的に使ってるんですが。
0065nobodyさん2010/11/10(水) 14:42:58ID:???
ソースを見て、無駄が多いなーと感じないのであれば使えば良いではないでしょうか。
0066nobodyさん2010/11/10(水) 15:21:21ID:???
>>64
linkは重くなるってのはググったら良く出てくるな。

ま、プログラムをかますという事はそれなりの処理を入れているわけで
必然的に、素のHTMLよりも重くなるのは当たり前。
0067nobodyさん2010/11/10(水) 15:57:05ID:???
テーブル名を変更した際に、Cakeのソースのモデル名を一括で変更してくれるツールはないでしょうか?
0068nobodyさん2010/11/10(水) 16:07:28ID:???
>>67
ツールは知らんけど、そんな大量にあるの?
0069nobodyさん2010/11/10(水) 18:12:22ID:???
>>67
grep
0070nobodyさん2010/11/10(水) 20:16:10ID:???
>>67
Dreamweaver
0071nobodyさん2010/11/10(水) 23:42:27ID:???
>>67
perl -pi -e 's/Before/After/g' app/*
0072nobodyさん2010/11/11(木) 03:35:51ID:???
1つのコントローラにモデルが20個ぐらい必要になった
usesが長くてウゼー
0073nobodyさん2010/11/11(木) 11:37:02ID:???
>>72
適切にアソシエーション貼ればそんなにならなくない?
あとuses使うより、ClassRegistry::init()使った方が良いよ
0074nobodyさん2010/11/11(木) 11:41:50ID:???
トップページかなんらかのインデックスページじゃないの?
0075nobodyさん2010/11/11(木) 11:57:51ID:???
ユーザーのトップ画面とかだと情報が集約されてるから
多くなりがちだね
0076nobodyさん2010/11/11(木) 12:18:59ID:???
ソーシャルゲームの初回チュートリアルのコントローラなんだけど、
そこで名前登録したり、試合したり、初期アイテムやお金を与えたり全部入ってるから
モデルをたくさん使うんだが、モデル同士は普段から関連付けるほどでもなかったりする
ユーザーのマイページでも、各種パラメータを表示するため使用モデルがアホみたいに増える
パラメータが多いので、モデルはできるだけ分けないと100カラムぐらいのテーブルができてしまう

>>73
usesだとコントローラが問答無用に全部初期化するけど、各アクション内で使うものだけ自分でinitしろってこと?
0077nobodyさん2010/11/11(木) 13:00:43ID:???
>>76
そう、usesよりCR::initのほうが推奨されてるから書いたけど
その使い方でController内に少数のアクションしかないならどっちでも良いかも
0078nobodyさん2010/11/11(木) 16:14:29ID:???
>>77
なるほど。そういうやり方があるんだな。勉強になった。
0079nobodyさん2010/11/11(木) 20:33:51ID:???
このスレもたまには役に立つな
0080nobodyさん2010/11/11(木) 22:30:25ID:???
最近cakePHPを始めた初心者です。

同一のプログラムで全く弄っておらず、設定も変えておらず、
それなのにMissing Controllerというエラーが出る時と出ない時があるのですが、
これは何故ですか?
バージョンはcakePHP1.35で
プログラムは「cakePHP1.3によるアプリケーション開発」のP49~
フォームの利用というところのコードです。
0081nobodyさん2010/11/11(木) 22:51:56ID:???
ルーティングに/: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
のようになってしまいます。
0082nobodyさん2010/11/11(木) 23:23:27ID:???
$paginator->options(array('url'=>array('action'=>'add', 'id'=>1)));
でよくなかったっけ?タメシテない
0083nobodyさん2010/11/11(木) 23:37:16ID:???
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で
一括してもよいでしょうか?

これは重くなる原因だからやってはいけない方法か不安なので
アドバイスいただければ幸いです。
0084812010/11/11(木) 23:39:22ID:???
>>82
出来ました!あなたは神だ!!本当にありがとう!!!
0085nobodyさん2010/11/12(金) 00:01:51ID:???
>>84
慣れてきたらソース読んだほうがいいよ
http://api.cakephp.org/classes
ここからクラス探して読めばいい
0086nobodyさん2010/11/12(金) 00:03:36ID:???
>>83
毎回DBに取りに行くわけじゃなく、Session読みに行くだけだから
それほど重くない処理だと思う。
あとはDebugKitなり入れて、負荷確かめながらやってみて
0087802010/11/12(金) 03:20:40ID:???
自己解決?しました

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

何故こうなるか意味が分からないんですが、一応、報告まで^^;
0088nobodyさん2010/11/12(金) 03:52:21ID:???
んー
apacheの設定でそういうのあったっけ?どのhttpdかしらんが
0089nobodyさん2010/11/12(金) 04:01:22ID:???
apacheじゃなくて、Cake自体に合った気がする。
自作CMS作っていた時に同じような症状に出くわした。
0090nobodyさん2010/11/12(金) 13:49:56ID:???
>>77
loadModelってのもあるみたいだけどどっちがいいの?
loadModelはコントローラでしか使えないんだっけ?
0091nobodyさん2010/11/12(金) 14:29:32ID:???
>>90
そだし、そのコントローラで使えるモデルしか読み込めないぞ
0092nobodyさん2010/11/12(金) 14:30:37ID:???
そのコントローラで使えないモデルって例えばどんなん?
0093nobodyさん2010/11/12(金) 14:40:37ID:???
いや$usesにセットしたモデルって意味
0094nobodyさん2010/11/12(金) 15:02:03ID:???
>>90
ClassRegistryって比較的新しいのよ
で、それができていろいろ不要になった感じ
loadModelもそう。というかloadModelが、かな
0095nobodyさん2010/11/12(金) 20:40:46ID:???
>>94
App::import('model', 'User');
$User = new User;
よりいいかんじ?
0096nobodyさん2010/11/12(金) 20:52:41ID:???
>>95
いい感じ
$User = ClassRegistry::init('User'); で終了だし
0097nobodyさん2010/11/12(金) 22:52:31ID:???
実際のコントローラーはUserCommentControllerなんだけど
URL上はhttp://example.com/comment/で表示させたいと思っています。

prefixとは逆の処理のイメージなのですが、その様な事は可能なのでしょうか?
可能な場合、ルーティングの書き方を教えてください。
0098nobodyさん2010/11/13(土) 00:52:58ID:???
>>97
Routerクラスを調べてみれ
0099nobodyさん2010/11/13(土) 13:08:07ID:???
>>98
調べてみたのですが、コントローラーに文字列を付与して
指定とは別のコントローラーを実行するような設定箇所がありません。

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

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

Router::connect('/:controller/*',array('controller' => $controller));
0100nobodyさん2010/11/13(土) 13:32:07ID:???
>>99
http://book.cakephp.org/ja/view/542/Defining-Routes

これ読んで理解できないって言うなら、諦めた方がいいと思う。
0101nobodyさん2010/11/13(土) 14:14:22ID:???
じゃ諦めます
0102nobodyさん2010/11/13(土) 14:28:26ID:???
>>86

アドバイスありがとうございます!
DBを取りに行くものは注意ということですね。
0103nobodyさん2010/11/13(土) 14:29:27ID:???
redirectをモデル内で行いたいのですが、
いい方法はあるでしょうか?

本来、コントローラで書くものだとは思うのですが、
モデルに書けるとすごくシンプルになるもので、
0104底辺2010/11/13(土) 17:32:20ID:???
>>103
それはやめたほうがいい。
0105nobodyさん2010/11/13(土) 17:53:52ID:???
>>95
俺はこの書き方してる。PDT使うと、この書き方だとコード補完が効くんだよな。
0106nobodyさん2010/11/13(土) 18:09:10ID:???
>>105
でもコードが増えないか?1行だけど。
0107nobodyさん2010/11/13(土) 18:19:48ID:???
>>104

やはり、redirectはコントローラに書くものですか。
ありがとうございます。
0108nobodyさん2010/11/13(土) 18:26:12ID:???
1行増える代わりにコード補完が効くなら、俺ならコード補完を取るな。
まぁこれは人それぞれなところだな。
0109nobodyさん2010/11/13(土) 19:16:12ID:???
俺のEclipseは保管してくれないから、短い方を書くな。
0110nobodyさん2010/11/13(土) 21:06:50ID:???
みなさん、レイアウト使ってます?
使ってる場合、CSSやJSファイルがページ毎に違うって事が
多々あると思うんですけど、どうしてます?
ifで分岐して読み込むファイル決めるとか。
0111nobodyさん2010/11/13(土) 21:09:31ID:???
>>110
viewに書けばいいじゃん
0112nobodyさん2010/11/13(土) 21:27:29ID:???
さすがにheadに読み込むファイルをビューに書くのは・・・
0113nobodyさん2010/11/13(土) 21:41:39ID:???
>>110
変える必要のあるコントローラでのみ、レイアウト切り替えてるけど
それじゃだめなん?
0114nobodyさん2010/11/13(土) 22:13:39ID:???
>>112
headに入れるように指定できるよ
0115nobodyさん2010/11/13(土) 22:48:16ID:???
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.
と書いてるけど、どうもログアウトがうまくいかない。。
0116nobodyさん2010/11/14(日) 13:19:26ID:???
>>115
外してたらすまんが、CookieComponent::del()が廃止されて使うべきなのはCookieComponent::delete()だよ。destory()は全部消えちゃうんじゃなかったかな?
0117nobodyさん2010/11/14(日) 14:34:47ID:???
>>116

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

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

function logout() {

$this->Auth->logout();

//wanna fix it inside auto_login component
if ($this->Cookie->read('autoLogin')) {
$this->Cookie->delete('autoLogin');
}
}
0118nobodyさん2010/11/14(日) 14:37:01ID:???
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
0119nobodyさん2010/11/14(日) 14:42:45ID:???
>>117
Cookie操作より前になにか出力してるんだろ
0120nobodyさん2010/11/14(日) 14:47:10ID:???
>>118
暗号化してる(とおぼしきところ)でログ吐いて処理を追ってみたら?
0121nobodyさん2010/11/14(日) 15:12:59ID:???
>>119 >>120

ありがとうございます。

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

どうも、App_contorllerでの書き方が問題のようです。もうちょっと調べてみます!
0122nobodyさん2010/11/14(日) 22:13:51ID:???
APIでとってきた情報を使って、 and検索をしたいのですが、
cakephpでオススメのコンポーネントがあれば教えてもらえないでしょうか?

検索対象 : APIで取得した文章 (毎回取得して、データベースに保存はしない)
検索ワード: 「新宿 スポーツ」 など、データベースに登録したキーワード
0123nobodyさん2010/11/14(日) 22:18:02ID:???
候補として、この検索プラグインを使ってみようかと思っています。

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

http://blog.fusic.co.jp/archives/156
0124nobodyさん2010/11/14(日) 22:56:18ID:???
APIってなんだ?
WebAPI?
なんのWebAPIかもわからんのにどうしろと?
アホなの?
0125nobodyさん2010/11/15(月) 00:49:36ID:???
XMLの事じゃないの?
0126nobodyさん2010/11/15(月) 01:10:23ID:???
API=XMLww
しねよw
0127nobodyさん2010/11/15(月) 02:54:57ID:???
全部説明してやらないといけないのか・・。

APIを使って生成されるXMLを取得して、リスト形式にし、
DBに保存してある検索ワードを利用したいって事だろ。
用はアフィサイトのデータを使った検索エンジンみたいな物だ。
0128nobodyさん2010/11/15(月) 03:17:54ID:???
何をバカが偉そうに
お前が質問者ならもうちょっと勉強しろ
違うならお前が答えてやれ

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

MVCで考えると本来、モデル・Datasourceでやるべきだな大半を
0129nobodyさん2010/11/15(月) 10:53:39ID:???
>>127
XMLとかDBに保存してあるワードとか、どこにも書いてませんが?
0130nobodyさん2010/11/15(月) 14:34:57ID:???
パスワード自動暗号化を無効化とかいうバッドノウハウを覚えてもしようがないと思うんだが
定期的に現れるよね
0131底辺2010/11/15(月) 20:30:14ID:???
>>130
暗号化しておけば仮にデータベースの情報が漏れてもログインできないからいいね。
0132nobodyさん2010/11/15(月) 20:44:12ID:???
パスワード暗号化しても個人情報が暗号化されてないんじゃダダ漏れですがな
0133nobodyさん2010/11/15(月) 20:48:24ID:???
暗号化を無効にしたいって、たぶんテスト段階でDBの中を見るからだと思うぞ
0134nobodyさん2010/11/15(月) 21:00:12ID:???
>>133
それは暗号化するメソッドを変えて対応するべきでしょ
テストの目的で使ったことないけどさ
0135nobodyさん2010/11/15(月) 21:07:20ID:???
でも>>118が出してるURLは両方とも「暗号化方式を変える」やり方だよね
その先の選択肢として「暗号化しない」とか「暗号方式を強化する」とかがあるわけで
0136nobodyさん2010/11/15(月) 21:09:38ID:???
そもそも暗号化してないサイトは糞ほどあるけどな。大手サイトでも。
普通にパスワード申請したら、メールで届くし。
0137nobodyさん2010/11/15(月) 21:11:56ID:???
復号できる暗号化かもしれんわな
0138nobodyさん2010/11/15(月) 21:15:56ID:???
それは暗号化とは言わない
0139nobodyさん2010/11/15(月) 21:27:07ID:???
は?w
0140nobodyさん2010/11/15(月) 21:28:01ID:???
http://labs.unoh.net/2007/11/php_de_crypt.html
0141nobodyさん2010/11/15(月) 21:55:22ID:???
>>135
誰も>>118限定で話してないよ?
用途は分からないけどDB云々のケースならバッドノウハウで解決を図ることはないって話
0142nobodyさん2010/11/15(月) 22:00:48ID:???
>>138
>>138
>>138
0143nobodyさん2010/11/15(月) 22:02:36ID:???
いや俺も>>118限定では話してないよ。
そのDB云々のケースのために暗号化方式を変えて、一時的に
「暗号化(正確にはハッシュ化だけど)しない」ようにする、ってのは
一概にバッドノウハウとは言えないんじゃね、って話をしてる。
0144nobodyさん2010/11/15(月) 22:10:47ID:???
要するに暗号化とハッシュの差が分からない厨房がいる、と
0145nobodyさん2010/11/15(月) 22:14:00ID:???
>>143
俺が言ってるバッドノウハウはcomponentが用意した方法ではなく、beforeFilterとかで無理矢理やろうとしていることを言ってる
そういうことを覚えても何の得にもならんよと
ま、いずれにせよ必要性を感じたことないけど
0146nobodyさん2010/11/15(月) 22:20:09ID:???
ハッシュ化の方式を変えるために変更したことはあるけどね、複合化を目的にしたことはないな
0147nobodyさん2010/11/15(月) 22:32:58ID:???
>beforeFilterとかで無理矢理やろうとしている

え、そんなことしたがるアホいるの? ……いるか。。
なんか話がずれてた気がしたが納得した。
0148nobodyさん2010/11/15(月) 22:40:35ID:???
お前ら待て。煽り愛せずに冷静に考えよう。

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

そして、暗号化とハッシュ化があって、それぞれ微妙に意味合いも違うんだ。
だから、まずは>>118が何をしたいか詳しく聞いてから回答を述べようではないか。
0149nobodyさん2010/11/15(月) 22:49:59ID:???
>>148
暗号化とハッシュ化の違いを教えてくれるか?
0150nobodyさん2010/11/15(月) 23:08:33ID:???
ハッシュ化はそのまんまハッシュ値を計算すること
「暗号化」は「復号化」という言葉と対になっていることからも分かるように
 ・情報が失われず
 ・アルゴリズムと鍵を知っていれば元の情報を取り出せる
のが基本

とはいえハッシュ値を取り出すことを「暗号化」と呼んだりcrypt()みたいな
関数名を付けることもあるので、
実際上は「暗号化⊃ハッシュ化」ということになるんだろうね
0151nobodyさん2010/11/15(月) 23:18:03ID:???
不可逆暗号は暗号ではないのか。
復号化って言葉にも違和感。化はいらない。

>>144にも聞きたいな
0152nobodyさん2010/11/15(月) 23:23:26ID:???
なるほど
http://oshiete.goo.ne.jp/qa/3429975.html
0153nobodyさん2010/11/16(火) 00:07:31ID:???
てか、PHPのくだ質だと馬鹿にされるレベルだな。
暗号化・ハッシュ化を一緒にして質問していたら。
0154nobodyさん2010/11/16(火) 03:10:19ID:???
先生!MD5で暗号化したのでAES256で復号してください
0155nobodyさん2010/11/16(火) 10:55:47ID:???
http://vocafes-staging.vocafes.com/

cake使う人ってアホが多いのかな?
0156nobodyさん2010/11/16(火) 12:14:42ID:???
人数が多いからアホが紛れ込んだだけだろ
0157nobodyさん2010/11/16(火) 12:27:50ID:???
PS3みたいだな
0158nobodyさん2010/11/16(火) 13:03:43ID:???
>>137 復号できる暗号化かもしれんわな
>>138 それは暗号化とは言わない
を受けての
>>151 不可逆暗号は暗号ではないのか。
だからな
もうどうしようもないくらいバカ
0159nobodyさん2010/11/16(火) 14:28:02ID:???
その前にお前の返信の仕方がバカなのは無視か。
0160nobodyさん2010/11/16(火) 14:32:27ID:???
>>158
>>151は>>150に向けてだろjk
お前がバカにみえるけど?
0161nobodyさん2010/11/16(火) 16:20:59ID:???
>>159-160
死ね糞野郎
0162nobodyさん2010/11/16(火) 16:34:57ID:???
>>160
馬鹿乙
0163nobodyさん2010/11/16(火) 17:11:22ID:???
>>155のURLは何なの?
0164nobodyさん2010/11/16(火) 17:17:37ID:???
>>163
debugが有効で下にSQLがタレ流れてた

アクセス制限かけたみたいだね
0165nobodyさん2010/11/16(火) 17:40:29ID:???
twitterで指摘されたの17時間も前じゃないか
もっと前もいたのかもしれないけど
0166nobodyさん2010/11/16(火) 19:27:53ID:???
renderの出力をファイル以外にしたいのですが、
カスタマイズしなければ出来ませんかね?

DBやCakeのテンプレート以外のファイルを取得し、
変数に入れて出力したいです。
0167nobodyさん2010/11/16(火) 19:31:49ID:???
なにいってんのかわかんね
変数に入れて出力?なにそれ
0168nobodyさん2010/11/16(火) 19:47:50ID:???
>>167
ファイルテンプレート取得して、それに値を埋め込んでファイル出力とか、そんな感じだろう。
察してやれ。
0169nobodyさん2010/11/16(火) 19:51:39ID:???
オレもそれくらい分かったわ
0170nobodyさん2010/11/16(火) 20:25:39ID:???
>>168
166の一行目読めよ
0171nobodyさん2010/11/16(火) 20:32:28ID:???
俺が補完してやろう

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

DB(の格納値)や(、)Cakeのテンプレート以外のファイルを(テンプレートとして)取得し、
変数(をそれ)に入れて出力したいです。
01721662010/11/16(火) 20:36:51ID:???
自分の考えた方法は

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のようなことが出来るのかと思い、質問しました。
0173nobodyさん2010/11/16(火) 20:39:55ID:???
>>172
できる。
0174nobodyさん2010/11/16(火) 20:41:21ID:???
>>171
よろしい
ならば答えよう

他の形式で出力することは機能として備わっている
呼び出した拡張子に寄って出力フォーマットを切り替えるなんてことも可能
マニュアルでリクエストハンドリングとか調べてみて
0175nobodyさん2010/11/16(火) 20:57:17ID:???
>>172
<?php echo $content_for_layout; ?>
だけのlayutファイル、
<?php echo $content?>
だけのviewファイルを用意しておき、コントローラで最終的に
$this->set('content',$data);
を呼びさえすれば、「$data」をどう作るかなんて自由にやりたい放題だと思うが。
01761662010/11/16(火) 21:00:37ID:???
>>175
ほんとですね・・。難しく考えすぎました。ありがとうございます。
0177nobodyさん2010/11/16(火) 22:23:01ID:???
>>175
それなら $this->autoRender =false; return $data; でいいような
0178nobodyさん2010/11/16(火) 22:29:44ID:???
>>177
こう書けるんだ、勉強になりました。
0179nobodyさん2010/11/17(水) 00:08:32ID:???
そうか。アクションは関数だから、returnで良いのか。勉強になるなー
0180nobodyさん2010/11/17(水) 00:16:05ID:???
バッドノウハウだな
0181nobodyさん2010/11/17(水) 00:39:16ID:???
画像やCSSのコントローラー分けってどうしてる?

/webroot
└/images
  └/top

みたいにするか、

/webroot
└/top
  └/images

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

とりあえず、Cakeの作法に合わせたいので、前者にします。
0184nobodyさん2010/11/17(水) 01:30:20ID:???
>普通のWebサイトは後者が多く、自分も今までは後者で作っていました。
どこ統計?圧倒的に前者が多い印象だけど
0185nobodyさん2010/11/17(水) 01:53:13ID:???
統計は取ってないですが、自分の印象では後者ですね。
0186nobodyさん2010/11/17(水) 13:29:15ID:???
181のレス見て思い出したけど、prefixを使った場合のディレクトリ構成も
悩む時あるよな。webrootにprefix用のディレクトリ作成するとエラーになるし。
$html->linkやRouter::urlでの表示とか
0187nobodyさん2010/11/17(水) 15:15:11ID:???
1.3を使っています。

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

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

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

この場合、formHelperを使っているので、Jqueryと連携するにはどうすればよいものでしょうか?
0188nobodyさん2010/11/17(水) 15:52:34ID:???
>>187
手順のヒントを書くと

1)ボタンを押す
2)jQueryのajax機能で、指定コントローラーのアクションにPOST
3)そのアクション内で>>187のビューを出力
4)ajaxで受け取ったデータをページの指定箇所に反映
 var add_form_fields = $("addFormFields").html();// 以前のHTMLを保存
 $("addFormFields").html(add_form_fields + data);// 3を結合して出力
 (試してないからコードはおかしい可能性有り)
0189nobodyさん2010/11/18(木) 17:15:13ID:???
携帯サイトを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にされている方は
設置に対するヒントを教えていただけないでしょうか?よろしくお願いします
0190nobodyさん2010/11/18(木) 17:24:42ID:???
DBは何で作成した?
0191nobodyさん2010/11/18(木) 17:38:13ID:???
MySQLで文字コードはUTF-8です
0192nobodyさん2010/11/18(木) 17:39:21ID:???
ただ、DB使ってないコントローラーでも>>189の現象になります。
0193nobodyさん2010/11/18(木) 17:44:32ID:???
ttp://d.hatena.ne.jp/k_yamamot/20100307/1267952208
このあたり?
0194nobodyさん2010/11/18(木) 20:33:55ID:???
絵文字扱うだけならHTML_Emojiでいいんじゃない?
http://libemoji.com/
0195nobodyさん2010/11/18(木) 22:32:26ID:???
>>194
これってキャリア分の絵文字を配列に代入して切り替えてるだけですよね?
ちょっと使いましたが、効率悪い気がするんですよね・・。

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

何とかしたいのですが、無理なら>>194を使うか自作します。
0196nobodyさん2010/11/19(金) 07:47:54ID:???
>>195
Controllerに書いたKtaiLib設定の文字コード部分を教えて
あとバージョンと
0197nobodyさん2010/11/19(金) 12:44:56ID:???
CakePHPのSecurityComponentに深刻なセキュリティホールが見つかりました
http://www.1x1.jp/blog/2010/11/cakephp_security_component_vulnerability.html
0198nobodyさん2010/11/19(金) 13:06:15ID:+0BO3EaI
※ところで、なんでこれが騒がれていなかったのか理解に苦しむのですが、
もしかしてみなさん本家のブログ記事とか読んでいらっしゃらないわけですか?

 まさかね。
僕が騒いでいる様子を探せていなかっただけですよね。
0199nobodyさん2010/11/19(金) 13:35:52ID:???
だれもSecurityComponentなんて使ってないんじゃ・・・
俺もCSRF対策は独自に開発して使ってるし。
0200nobodyさん2010/11/19(金) 14:10:15ID:???
俺も使ってない
0201nobodyさん2010/11/19(金) 14:18:35ID:???
俺も。セッションやクッキーもPHPの関数でやることあるし。
0202nobodyさん2010/11/19(金) 15:35:43ID:???
お、おおおお俺もつ、つ、つつつつ、つ、使ってないよおぉ
0203nobodyさん2010/11/19(金) 15:49:02ID:???
これだけ使ってないってレスがくると、自分で使っていることにすら気づいてない奴もまざってるんじゃないかと疑いたくなるなw
0204nobodyさん2010/11/19(金) 17:01:49ID:???
お、お、俺も、つつ使ってない

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

要は自前実装でワンタイムトークン発行しろってことで、たいていの用途にはおk?
0205nobodyさん2010/11/19(金) 17:15:49ID:???
でも、可逆で事足りると思うんだよな。

考えてみろ。第三者が可逆されるって、鯖をハッキングされるか
内部流出しかないけど、そうなるとパスワードうんぬんどころじゃねーぞ。
0206nobodyさん2010/11/19(金) 17:55:27ID:???
>>205
君の考え方なら、そもそもパスワードをハッシュ化する必要すらないよな?
もっと良く考えてみろ。
0207底辺2010/11/19(金) 20:32:33ID:???
>>143
セキュリティセキュリティって、言ってる人って、ハッキングされた経験でもあるの?俺はさほどセキュリティに気を使ってないけど、この10年何ら問題が起きてない。泥棒に入られるかもと思って家に防犯カメラつけたりするような物だよね。
0208nobodyさん2010/11/19(金) 20:44:57ID:???
こんなところで釣りってあほか
0209nobodyさん2010/11/19(金) 21:21:21ID:???
>>206
205じゃないけど、前にくだ質の人に質問したら
「ハッキングより内部流出の為にパスワードをハッシュ化する」
て言ってた。正しいかどうかは知らん。
0210nobodyさん2010/11/19(金) 23:21:14ID:???
最初から全部公開しておけば流出されない
0211nobodyさん2010/11/20(土) 00:29:30ID:NISeDnL6
Eclipseがなんか合わないから他にいいのないか探してPHPエディタというのをみつけたんだが
これプロジェクトでappフォルダコピーしたがうまく表示されないな
やっぱEclipseぐらいしかないのかね?
0212底辺2010/11/20(土) 14:25:39ID:???
>>211
俺も合わない。だからdw使ってます。
0213nobodyさん2010/11/20(土) 14:36:12ID:???
>>209
なんか誤解してないか?
0214nobodyさん2010/11/20(土) 19:22:07ID:???
普通にちゃんと噛み合った会話に見えるんだけど……
0215nobodyさん2010/11/20(土) 23:06:30ID:???
俺もDW使ってるな。
デザインプレビューはほとんど使わないけど、なんか管理しやすい。
02162112010/11/20(土) 23:52:59ID:NISeDnL6
>>212>>215
DWって何とかドロワーってやつ?少し聞いたぐらいしか無いけど
コード保管とか関数一覧機能有るなら試してみようかな

PHPエディタのスタンドアロン版を今使ってるけどemエディタみたいにタブだったらいいのになー
02172162010/11/21(日) 00:01:59ID:???
ドロワーじゃなくてDreamweaverだったか・・・
0218nobodyさん2010/11/21(日) 04:08:48ID:???
一応、PHPの関数保管機能はあるけど、
PGが使うツールとしては使いにくいだろうね。
0219nobodyさん2010/11/21(日) 08:39:09ID:???
PHP自体PGが使うには使いにくいと思うよ
0220nobodyさん2010/11/21(日) 09:07:46ID:???
WindowsだとNotepad++使ってる
0221nobodyさん2010/11/21(日) 13:02:29ID:???
Macならcodaだな。
マニュアルやAPIサイトもタブの中で開けるし、集中して作れる。
0222nobodyさん2010/11/22(月) 14:13:56ID:???
controllerのusesで指定するモデルのコンストラクタに引数を渡したいのです。
モデル内で動的なテーブルの切り替えを行っていて、どのテーブルを使用するかの判断に
必要なアイテムをコンストラクタで渡そうと考えています。
まったく見当がつかないのですが、なにか良い方法はありますか?
0223nobodyさん2010/11/22(月) 14:30:28ID:???
自作コンポーネント
0224nobodyさん2010/11/22(月) 14:36:42ID:???
>>222
あるモデルが別のモデルを読み込むようにすれば良さげ
02252222010/11/22(月) 14:42:59ID:???
すみません。一つ条件がありまして、
usesで指定するモデルですが、paginatorで使用するモデルとなります。
単にデータの入出力に使うだけのモデルであれば色々策は考え付くのですが、
paginatorで使用するというところがネックで悩んでいる次第です。

usesに記載しないモデルでpaginatorを上手く効かせる方法があればそれでも構いません。
0226nobodyさん2010/11/22(月) 14:58:16ID:???
それだけじゃ詳細わかんないけど
どう考えても設計見直したほうが幸せだろ
0227nobodyさん2010/11/22(月) 18:01:25ID:???
>>224 みたいな方法で、中間モデルというか、代理人的なモデルを作って、
Factory Methodパターン(的な)構造にするのが良いと思う。
変にCakeの内側に入り込もうとするとメンテナンス不能なものになりそうだ。

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

usesに指定したmodelのロード前に、$useTableにどうやってテーブルを指定しようか、
と悩んでいたのですが、とりあえず何も設定せず、後で再設定するという方法ですね。
02292222010/11/22(月) 21:40:31ID:???
>>228
すみません、>>224でなく>>227です。
0230nobodyさん2010/11/23(火) 17:17:59ID:???
CakePHP初心者です。
やっとチュートリ終わってCakePHP辞典を眺めているレベルですが、
質問があります。

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

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

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

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



0231nobodyさん2010/11/23(火) 17:21:03ID:BKW+AU3M
>>230
->linkと->dataCellsは楽だと思うぜ
0232nobodyさん2010/11/23(火) 21:56:51ID:???
俺もlinkくらいしか使わないな
linkはroute直したときとかに勝手にリンクも直るので便利
default.ctpのヘッダー部分も基本的にhtmlに直してる
cakeと絡む部分のあるlinkとかはhelper使って、絡まないpとかはhtmlで書くという感じ
tablecellsは最初は使ってたけど、classとか指定してカスタマイズしてたらわけわからなくなったので、
今はforeachで書いてる
0233nobodyさん2010/11/24(水) 13:59:05ID:???
ログイン画面でemailやpasswordを入力した時、

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

マニュアルを読んだところ、そういった機能はないようなので、
自分でロジックを書かなければいけないかと思っております。
0234nobodyさん2010/11/24(水) 14:14:59ID:???
>>233
はい。オリジナルバリデーションを用意しましょう。
探せば見つかると思う。

ただ
エラーメッセージは
「メールアドレスかパスワードが違います」
と表示しましょうね。セキュリティ的に。
0235nobodyさん2010/11/24(水) 14:16:48ID:???
>>234

素晴らしく的確なアドバイスありがとうございます!!
0236nobodyさん2010/11/24(水) 14:19:25ID:???
>>233
Authコンポーネント使ったほうが幸せになれそう
0237nobodyさん2010/11/24(水) 14:51:07ID:???
>>230
俺もlinkとかは使っているな。
階層が絡むものとかは開発環境・本番環境で変わってくることもあるし。
あとは、form関連はかならず使う。
HTMLヘルパー系は、実質あんまり使わないな…。

Modelに関しては、シンプルで分かりやすくなるので、生SQLは基本書かない。
0238nobodyさん2010/11/24(水) 14:57:32ID:???
環境かわっても大丈夫なようにするためにlinkつかってる
02392302010/11/24(水) 19:24:51ID:???
HtmlHelperのメソッドは、link()などは使うが、必要性の高いメソッドは少ないのですね。

AppModelクラスで、アソシエーションを何も定義せずに生SQLを書くことについては
いかがでしょうか?
SQLの知識があっても、アソシエーションを定義してAppModelのメソッドを使ったほうが
よいのでしょうか?
生SQLを書いてAppModel::query()は良くないのでしょうか?
0240nobodyさん2010/11/24(水) 20:10:39ID:???
生SQLも時と場合によるでしょ。
findでjoinする時はjoin部分をSQLにするけど。
0241nobodyさん2010/11/24(水) 21:04:53ID:???
Fast CakePHPって本が糞過ぎて使えない
よくあんな糞みたいな本が世に出せたもんだ
0242nobodyさん2010/11/24(水) 21:34:35ID:???
>>239
生SQLでも良いと思う。CakeのActiveRecordの恩恵は半分くらいしか受けないが、
CakeのAcriveRecordの微妙な部分で悩んだりバッドノウハウ積んだりする手間も減る。

でも、現在Cake初心者で、生SQL上等なくらいのスキルを持ってるなら、
Zend Frameworkとかにトライするのもいいんでは?
0243nobodyさん2010/11/24(水) 23:23:55ID:???
まぁ、なにやっても良いけど、もしチームとか会社で使うのなら
他のメンバーに合わせる方向性で決めたほうがいいかと。
0244nobodyさん2010/11/25(木) 01:00:08ID:???
>>241
なんでcake本がたくさんある中、1.1対応と古くて、評価も悪いそれを買ったのか気になる
0245nobodyさん2010/11/25(木) 01:03:35ID:???
つかあのシリーズは地雷揃い
0246nobodyさん2010/11/25(木) 10:13:58ID:???
1.3対応でいい本ってなにかあるかな
0247nobodyさん2010/11/25(木) 11:10:39ID:???
ある程度Cakeに慣れた人なら、CakePHP辞典は良いと思うけど、
初心者の場合だと難しいね。何がしたいか分かって探すリファレンス本だし。
0248nobodyさん2010/11/25(木) 20:30:07ID:???
>>242
奴らは街角で拉致られてタコ部屋に押し込まれて強制労働させられてるのか?
自ら希望して派遣会社に登録したんじゃないのか?
まずそこをハッキリして貰いたいんだが。
0249nobodyさん2010/11/25(木) 21:12:22ID:???
>>248
人間、切羽詰まると生SQL書いてしまうのか・・・
0250nobodyさん2010/11/25(木) 22:39:36ID:???
>>248
拉致られてタコ部屋に押し込まれるとActiveRecordの恩恵が半分になるのか・・・
0251nobodyさん2010/11/25(木) 22:53:00ID:???
カオス
02522392010/11/26(金) 06:09:25ID:???
>>242
疑問が少し晴れました。
ありがとうございました。

まだCakePHPのチュートリやったくらいなので、しょぼい自作のフレームワーク
と比べて、あまり恩恵を感じられてないのですが、もう少し学習してみたいと思
います。
0253nobodyさん2010/11/27(土) 13:38:43ID:???
フレームワークなんて、いかにルールを守って使うかだからなー。
合う合わないがある。色々あるから他のを試してみても良いと思う。
02542522010/11/27(土) 18:31:52ID:???
現在、しょぼい自作フレームワーク + Smarty で開発しています。
DB関連は、SQLを直接書いて、PDO。
出力は、Smartyにお任せ。

CakePHPを使えば、上記のアーキテクチャ(?)に比べて数倍効率UPすると
思っていましたが・・・もしかするとそれは幻想かなぁ・・・
0255nobodyさん2010/11/27(土) 20:10:38ID:???
効率上げる目的ならば、しばらくCakeの流儀に慣れるしかないと思われ
(Model周りのメソッド含め)
0256nobodyさん2010/11/28(日) 11:24:00ID:???
>>252
とりあえず過去の遺産は忘れて、Cakeに染まってみたら?
そこから自分が効率良いと思う手法にしたらいいと思う。
02572522010/11/28(日) 18:39:37ID:???
>>256

>過去の遺産は忘れて
そうですね!
素晴しいアドバイスありがとう。
0258nobodyさん2010/11/28(日) 23:06:55ID:???
Cakeでいくつかシステム作ったら、
オレオレフレームワークの方の道も開けるよ。
そしてCakeの流儀がいかに計算されているかに気づく。
0259nobodyさん2010/11/28(日) 23:51:56ID:???
NETで同じようなCRUDフレームワークを作ってたんだけど、
Cakeを使ってみると色々感心させられるところが多い。
いつか良いところを取り入れようと思う。
0260nobodyさん2010/11/29(月) 11:52:35ID:???
女子高生「Ruby on Rails とか CakePHP のパクリだよねーウケるー」
0261nobodyさん2010/11/29(月) 12:42:07ID:???
そんな女子高生いたら怖いな
0262nobodyさん2010/11/29(月) 13:47:13ID:???
form.php の1828行目

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

と違うの
0263nobodyさん2010/11/29(月) 14:14:39ID:???
そういう重要な話は本家にircするんだ!
0264nobodyさん2010/11/29(月) 14:49:11ID:???
その後ろの
switch ($timeFormat) {
12, 24, それ以外で場合分けしてるから、動作自体は問題なさそうなんだけど。
具体的にどんな障害があるの?
0265nobodyさん2010/11/29(月) 15:18:42ID:???
dateTimeの$timeFormatが'NONE'のときでも$selectedにH:M:Sないと$days[1]と$time[1]でNoticeはいちゃう。
いままで1.2系使ってたんだけど、$selectedにY-m-dいれてやってたのもってきたらこうなったの。
0266nobodyさん2010/11/29(月) 15:32:11ID:???
indexのアドレスをdomain.com/users から domain.com に変えました。

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

RewriteRule ^$ app/webroot/users [L]


appフォルダの.htaccessは以下

RewriteRule ^$ webroot/users [L]

この時、webroot上の .htaccessはどのように記述すればよいのでしょうか?
0267nobodyさん2010/11/30(火) 23:54:31ID:yu36gv9u
>>266
そういうのroutes.phpに書くんじゃないかなと
0268nobodyさん2010/12/01(水) 14:42:57ID:???
>>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 ページなら ちゃんと飛べない。
0269nobodyさん2010/12/01(水) 14:44:25ID:???
ちなみに、下記のように試したのですが、複数のコントローラだと
上手くいかず。

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

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

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

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

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

こんな感じに。
<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
0273nobodyさん2010/12/01(水) 18:05:01ID:???
<?php echo $html->link(
$html->image("recipes/6.jpg", array("alt" => "Brownies")),
"/recipes/view/6",
array(),
false,
false
); ?>
0274nobodyさん2010/12/01(水) 18:07:24ID:???
↑はマニュアルから持ってきた

ちなみに
$html->image();
の第二引数にurlだったかlinkだったでリンクURLを渡してもできたはず
0275nobodyさん2010/12/01(水) 18:08:32ID:???
誤字修正wと補足

ちなみに
$html->image();
の第二引数の配列にurlだったかlinkだったかのキーでリンクURLを渡してもできたはず
0276nobodyさん2010/12/01(水) 18:11:09ID:???
>>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/

0277nobodyさん2010/12/01(水) 18:14:10ID:???
imgというディレクトリ名はどこ行った
0278nobodyさん2010/12/01(水) 18:17:10ID:???
>>276
おおすまん
でもお前馬鹿だろ

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

リンクURLだけ欲しければ
html->url()
これ使え
0279nobodyさん2010/12/01(水) 18:20:34ID:???
http://book.cakephp.org/ja/view/1448/url
マニュアルくらい読んでから質問しような
少なくともHTMLヘルパー使うって解ってるなら↓全部目通せよ
http://book.cakephp.org/ja/view/1435/Inserting-Well-Formatted-elements
0280nobodyさん2010/12/01(水) 18:24:26ID:???
ちなみに
Html->image()で渡されたパスはimgディレクトリを補足してくれるから
webroot/img/sample.jpgだったらsample.jpgだけ書けばいいけど
Html->url()では当然imgなんかつけないからな
/img/sample.jpg
こうかけよ
0281nobodyさん2010/12/01(水) 18:47:18ID:???
>>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',
)
)
?>
0282nobodyさん2010/12/01(水) 19:25:47ID:???
何がどうわからないんだよ
それぞれ何を吐き出してるの?
最終的に何を吐き出したらOK?
そこまでHtmlヘルパーにしなきゃだめ?Html->url()だけつかってあとは<a.....って書いてもいいんじゃないの?
0283nobodyさん2010/12/01(水) 19:47:51ID:???
<?php
echo $html->link(
'サンプルメール',
'/img/sample_mail.jpg',
array(
'alt'=> 'サンプルメール',
'class'=> 'sampleMailLink',
)
)
?>

じゃないの?
HTMLヘルパーいらんでしょ
0284nobodyさん2010/12/01(水) 19:50:54ID:???
あー、そもそもルートがhttp://localhost/cake/app/webroot/なのか
とりあえずhttp://localhost/をルートにした方がいいぞ
トップディレクトリ以外をルートにする運用は非推奨なはず
0285nobodyさん2010/12/01(水) 19:54:26ID:???
>>284
ごちゃごちゃ抜かすな
cakephpではウェブルート意外にでも何処にでも於いても、
ディレクトリ構成変わっても大丈夫なように
HtmlHelperがあるんだよ
0286nobodyさん2010/12/01(水) 19:57:28ID:???
>>285
だからそういう運用は非推奨だって
どーしてもルートを変えられない時じゃなければ、トップディレクトリをルートにした方がいいに決まってるじゃん
0287nobodyさん2010/12/01(水) 20:00:10ID:???
非推奨のソースをお願いします
0288nobodyさん2010/12/01(水) 20:07:58ID:???
http://book.cakephp.org/ja/complete/912/Installation
どこに非推奨とか推奨とか書いてあるのか教えろ
勝手に非推奨にしてんじゃねーぞ
0289nobodyさん2010/12/01(水) 20:10:29ID:???
わからなければ口出さなきゃいいのに
本当にバカしかいなくなった
0290nobodyさん2010/12/01(水) 20:43:13ID:???
>>281
というか、一つ一つ何を返すかを確かめたりしたらすぐ解決すると思うけどな。
結局最終的に何を出力したらいいのかこっちにはわからんけど、
281の上のコードはlink使うならlinkの第二引数はHtml->url()に渡すものでいい。
すなわち、

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

これでいいんじゃね?
あとはしらね
0291nobodyさん2010/12/01(水) 22:39:31ID:???
てか、なんでもかんでもヘルパー使わなくて良いよ。
わからなかったら普通にHTML書けばいいじゃん。
02922812010/12/02(木) 06:35:44ID:???
みなさん、本当にありがとうございます。 >>283のコードで上手くいきました。

最終的にやりたいのは、

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

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

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

>>284

cakephp webroot change とかでぐぐって勉強してみます!
0293nobodyさん2010/12/02(木) 12:08:43ID:???
まさに「CakePHP Advent Calendar 1日目」の話題じゃん。

http://d.hatena.ne.jp/cakephper/20101201/1291166566
0294nobodyさん2010/12/02(木) 12:28:15ID:???
全然違うんだけど・・・・
0295nobodyさん2010/12/02(木) 15:11:25ID:???
設計について悩んでいるので相談させていただきます。

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

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

このやり方だと毎回サイドバーのSQLを実行することになり、
負荷が心配なのですが、設計としていかが思いますか?
ブログのサイドバーみたいなイメージでいただけると分かりやすいかと思います。
0296nobodyさん2010/12/02(木) 15:15:44ID:wz3Ap8ga
Sessionとかはどうなんだろうか?
記事挿入の時だけ書き換えるとか
0297nobodyさん2010/12/02(木) 15:15:45ID:???
requestActionぐぐって勉強して。
キャッシュ化してサクサク
0298nobodyさん2010/12/02(木) 16:22:11ID:???
なるほど!requestActionですか!
以前使った事があったのですが、すっかり忘れてました。
sidebar部分をelementsに入れて、requestActionで必要なモデルを呼び出します。
0299nobodyさん2010/12/02(木) 17:17:48ID:???
http://www.yokapro.com/pc/aboutproject.html

この案件で1カ月弱の納期。
CakePHPでの開発効率ってこんなに良いものなの?
0300nobodyさん2010/12/02(木) 17:33:45ID:???
何そのページ怖い
0301nobodyさん2010/12/02(木) 18:18:31ID:???
うちならそんな案件受けない
0302nobodyさん2010/12/02(木) 18:19:50ID:???
どこに1ヶ月弱の納期って書いてるか探せない
0303nobodyさん2010/12/02(木) 18:40:55ID:???
まさか求人の応募期間が1ヶ月弱ってオチじゃないよな?
0304nobodyさん2010/12/02(木) 21:03:22ID:???
>>302
とあるSOHO案件のページで、12月納品として最近掲載されてた。
俺の感覚では到底無理と思ったんだが、良かった、普通の感覚で。
0305nobodyさん2010/12/02(木) 22:20:18ID:???
とある案件の情報を出さないから何とも言えないけど、
別に1ヶ月弱で構築できるレベルだと思うよ。
現に俺は>>299よりもっと機能のあるポータルサイトを作ったし。
デザインはさすがに外注に出したけどね。
0306nobodyさん2010/12/03(金) 05:44:20ID:???
なんだかすごいものを見せられた気がするぞ
0307nobodyさん2010/12/03(金) 11:28:20ID:???
現在、共通レイアウトの 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
0308nobodyさん2010/12/03(金) 11:42:25ID:???
すいません、

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

とview内にいれるのがよいのですね。
0309nobodyさん2010/12/03(金) 12:23:42ID:???
俺も同じように悩む時あるけど、
やっぱり必要以外のファイルは読み込まない方が良いと思うよ。
あと、重さを気にするならHTMLヘルパーは使わない方が良いと思う。
0310nobodyさん2010/12/03(金) 12:39:47ID:???
重さを気にするならcacheすればいいだけ
浅い知識で語るな
0311nobodyさん2010/12/03(金) 17:24:12ID:???
本当にそう思ってるならそれで良いよ
0312nobodyさん2010/12/03(金) 18:17:30ID:???
>>309-311
>>307は必要ないJSを読むと遅くなるか?と言っていて、それは>>308で解決していると思うのだが
0313nobodyさん2010/12/03(金) 18:55:55ID:???
>>299
コンポーネントや定番プラグインでそのまま作れるならありじゃない?
Cakeってはまれば早いけど、ちょっと脇道にそれると逆に時間かかることあるし。
例えばAuthComponent使うつもりがメアドとユーザー名の両対応求められるとか。
0314nobodyさん2010/12/03(金) 19:05:47ID:???
CakePHP2っていつ頃でるのかな?
0315nobodyさん2010/12/03(金) 19:50:28ID:???
>>299
納期なんて関係ねぇ!いくら金を出せるんだ
0316nobodyさん2010/12/03(金) 19:58:24ID:???
>>312
なにを言いたいのかサッパリ分からん

>>310
通信への負荷だけでなく、ブラウザ側の処理負荷は考えている?
0317nobodyさん2010/12/03(金) 20:02:20ID:???
ちょwwブラウザのキャッシュの話はさすがにしてないだろ
0318nobodyさん2010/12/03(金) 20:40:12ID:???
画像のリンクを貼る簡単な方法で紹介されてた方法で、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',
)

こうだと思ったら、できませんでしで、途方にくれてます。
どうすんの、今日作ったこの大量のリンク。。
0319nobodyさん2010/12/03(金) 20:48:27ID:???
image()のオプションにtarget=>_blank渡してなんとかなると思う方がおかしいと思わない?
だってimage()はイメタグ吐き出すんだろ?

多分できないだろ素直にlink()使うかタグ書きな
0320nobodyさん2010/12/03(金) 20:58:12ID:???
ヘルパーのソースみたけど、第二引数は alt と url しか書けないし
url は $this->url() を呼んでるだけだから target の指定はできないね
0321nobodyさん2010/12/03(金) 21:08:29ID:???
$html->url()だけ利用してあとはタグ書けばいいのに。
デザイナーからもらうHTMLはクラス名やらなんやら色々書いてあって、そのたびに書き換えるのめんどうだから
src=""の中とかを$html->url()に正規表現で一括置換してる
0322nobodyさん2010/12/03(金) 21:25:39ID:???
まあ、$html->image()をオーバーライドすりゃできなくはなさそうだが。
if ($url) {
 return sprintf($this->tags['link'], $this->url($url), null, $image);
}
ってところの、nullんところを工夫してゴニョゴニョ

わしはむしろそんなに大量に別窓ひらかせるリンクが散在してる状況のが問題な気がするよ。
画像に別窓リンクを設置するにしても、普通ループのなかでヘルパーを回して出力するもんだと思ってるんだけど。
ループの内部のヘルパーの記述に問題があったとしても、そこを直せば全部のループで修正が反映されるわけだし、
>318は一体どんなコードを書いてしまっているのか気になる。
0323nobodyさん2010/12/03(金) 23:08:29ID:???
>>317
あぁ>>310はサーバーのことだけ考えていたのね。
だとしたら、人のことを「浅い知識」だと言う資格はないね。
0324nobodyさん2010/12/03(金) 23:14:08ID:???
>>323
Htmlヘルパー使うか使わないかで、
クライアントサイドにどんな差があるのかを説明してみてくれるかw
クライアントが受け取るのはどちらもサーバーサイドが吐き出したHTMLソース
何が違う?w
0325nobodyさん2010/12/03(金) 23:21:13ID:???
>>310は>>309の最後の行
>あと、重さを気にするならHTMLヘルパーは使わない方が良いと思う。
に対して答えてるんだろうけど、
その後食い違いが生じててここまでグダグダに
03263102010/12/03(金) 23:34:16ID:???
そういうことか。
勘違いさせたなら謝る。
0327nobodyさん2010/12/04(土) 02:15:03ID:xozd8d0/
けっきょくHABTM使って絞り込み検索やるときってどうやんの?
というかみんなやってる?
$this->model->query() とかでSQL書いてんの?
0328nobodyさん2010/12/04(土) 18:42:01ID:???
その絞り込み検索をやりたいケースがないからな。
最近、bindModelをよく使うけど。
0329nobodyさん2010/12/06(月) 16:13:12ID:???
JOINしたらSQL書かなくても出来るよ
0330nobodyさん2010/12/06(月) 16:47:43ID:???
ジョインジョイントキィ
0331nobodyさん2010/12/06(月) 22:32:51ID:???
Componentを動的に定義することってできる?

$object = ClassRegistry::init('Hoge','Component');
ってやってもできなかった・・・。
03323102010/12/06(月) 22:46:33ID:???
App::import('COmponent'....
してnew
0333nobodyさん2010/12/07(火) 01:27:42ID:???
俺もやりたかったけど、諦めたよ。

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

http://wp.serpere.info/archives/1138
> 注意: Cake本来の機能を超える機能を提供するため、Cakeコアのprivateなメソッドやプロパティにアクセスしています。Cakeのバージョンが上がると使用できなくなる可能性があります。十分ご注意ください。
0334nobodyさん2010/12/07(火) 02:15:05ID:???
XAMPPで開発するのは駄目だな。遅くてイライラする。
やっぱ、VMwareにCentOS入れて開発環境作る方が良いのかな
0335nobodyさん2010/12/07(火) 02:31:26ID:???
vmのxpに入ったxamppでやってるけど
そんな遅いかな?特に不満ないわ
0336nobodyさん2010/12/07(火) 02:44:23ID:???
むしろVMでOS1個動かす分XAMPPより遅くなるんじゃないか?
0337nobodyさん2010/12/07(火) 03:06:47ID:???
I/OがネイティブでなくてもVM上のLAMPのが速いよね。
稼働環境に合わせられてスナップショットも使えるし
最初の構築はXAMPPみたいにお手軽じゃないけど、その分以上にメリットのがある。
0338nobodyさん2010/12/07(火) 03:21:48ID:???
XAMPPとEclipsePDT入れてると
VMのメモリが1GBはいるな
0339nobodyさん2010/12/07(火) 05:49:16ID:???
FormHelper::error() ってフィールド毎に書かないとダメだと思うんだけど、
全部まとめて出すコードどっかに転がってないかな?
エラーメッセージを、各入力欄の横や下じゃなくって、
まとめてフォームの上に出す場合って良くあると思うし、
直ぐ見つかると思ったんだが。
探し方が悪いのかそういうヘルパーとか出てこなくってなぁ。
0340nobodyさん2010/12/07(火) 10:29:17ID:???
コントローラでvalidateErrors()とか
0341nobodyさん2010/12/07(火) 15:36:20ID:???
Join Join Join トゥザ Globe!
0342nobodyさん2010/12/07(火) 20:00:33ID:???
XAMPPで開発している人、バージョン何使ってます?
PHP4と5を共有化出来るから1.6.8を使っていますが、
自分も多少重く感じます。(1ページ表示に数秒かかる)
0343nobodyさん2010/12/07(火) 21:14:52ID:???
>>340
自分で作るしかないかなやっぱ。
モデル毎に分かれてるから若干めんどうだったんだけどなぁ。
0344nobodyさん2010/12/08(水) 08:10:12ID:???
XAMPP遅いよね。
debugをオフにしたらだいぶ改善するらしいけど
0345nobodyさん2010/12/08(水) 12:35:17ID:???
XAMPPで開発って書き込み権限の処理とか出来なくね
0346nobodyさん2010/12/08(水) 14:41:25ID:???
逆にそれが面倒だからXAMPP使ってる。
VMwareで仮想環境+sambaも良いと思ったけど。
0347nobodyさん2010/12/08(水) 15:49:33ID:???
それが面倒っつか、XAMPP使ってる奴って本番環境どうすんの?
テスト環境で動いてるけど本番環境でpermissionが云々で動きましぇーんとかいうの?
0348nobodyさん2010/12/08(水) 16:09:51ID:???
そういうのありえるか?
画像のアップロードやファイルの読み書きぐらいだろ。
PHPでパーミッション必要な箇所って。
0349nobodyさん2010/12/08(水) 21:54:15ID:???
ちゃんと本番環境へのデプロイ手順を確立してるから問題ないよ。
0350nobodyさん2010/12/09(木) 11:00:47ID:???
cakephp1.3で$form->inputから複数のラジオボタンをまとめて作ったときに、ラベルが正しく機能してないのは仕様ですか
0351nobodyさん2010/12/09(木) 18:54:10ID:???
>>350
そんなこと無いと思うけど??
具体的にどんなソースからどんなHTML吐かれてる?
0352nobodyさん2010/12/09(木) 22:41:46ID:???
安いレンサバ借りるのが最強
0353nobodyさん2010/12/09(木) 23:33:34ID:???
安いレン鯖借りてブラウザ確認する毎にFTPでアップするのか?
0354nobodyさん2010/12/09(木) 23:44:01ID:???
阿呆には触れるな
0355nobodyさん2010/12/09(木) 23:53:53ID:???
MAMPがいいよ。マンピー。
PHPやMySQLのバージョン合わせとかパーミッションの問題とかハイブリッドで解決できる。
0356nobodyさん2010/12/10(金) 00:01:45ID:???
VMWareだろJK
PHP MySQL Apacheだけでキョウビのサービスがなり立つわけなかろ?

本番と同じディストリビューション用意していろいろぶっ込む
ソースコードの更新はrsync使ったシェルスクリプト書いとく(Capistranoは知らん)
RPM系ならRPM玉を用意してソフトウェアの設定ごとアップロードできるし。deb系は知らん。
0357nobodyさん2010/12/10(金) 03:31:23ID:???
そういうのわかりきった上で、パーミッション変更する手間を惜しむから
XAMPP使ってるって話じゃないのか?
0358nobodyさん2010/12/10(金) 08:28:53ID:???
>>353
WinSCPでミラーリングしてる
0359nobodyさん2010/12/10(金) 08:49:23ID:???
FTPしかないとこはnetdrive使ってたわ スレチだろうけども。
03603502010/12/10(金) 09:29:15ID:???
$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 オプションで自前でやるしかないでしょうか
03613502010/12/10(金) 09:55:44ID:???
先ほどの自前でやる方法を載せますが、とても冗長だと思います。
もっと良い方法があれば教えてください。
$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();
0362nobodyさん2010/12/10(金) 11:11:18ID:???
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)));
03633502010/12/10(金) 12:06:50ID:???
1.3.4だと出来・・・た・・・・ありがとうございます。
比較してみたところ、1.3.6から、id生成の部分にslugを使うようになっていました。(1.3.4ではunderscore)

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

環境によるslugバグでおかしくなっていたようです。
http://dxd8.com/archives/209/
0364nobodyさん2010/12/10(金) 12:25:42ID:???
そんな細かい違いがあったのか・・・
バージョンアップも考えものだな
03653502010/12/10(金) 12:42:52ID:???
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]/' => ' ',
03663502010/12/10(金) 12:45:35ID:???
一部間違えました
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';
0367nobodyさん2010/12/11(土) 17:08:25ID:???
Cakeの気に入らない点は、ビヘイビアの関数書く時にいつも第一引数&$modelを書き忘れることだ。
ミスりやすいよ!何でこんな仕様なんだ?
0368nobodyさん2010/12/12(日) 03:57:35ID:???
>>367
じゃあどうやって対象のModelを参照させるべき?
0369nobodyさん2010/12/12(日) 23:59:53ID:???
setup()でModelをメンバに置いとくようなつくりになったらいいんじゃないか?
0370nobodyさん2010/12/13(月) 01:41:28ID:???
actAsで指定してるんだからモデル初期化時にどうにかしろよ
コンポーネントと同じように使えるようにさせろ
0371nobodyさん2010/12/14(火) 00:26:29ID:???
CakePHPって人口多い気がしたけどスレ伸びないのな
0372nobodyさん2010/12/14(火) 12:23:01ID:???
特にもう書くこと無いんだろ。いいことじゃね?
しかし最近のPHPフレームワークの中では随分とレガシーな作りになってるはずなのに、
バグとかセキュリティホールがぽろぽろと出てくるね。
0373nobodyさん2010/12/14(火) 12:43:53ID:???
Cake正直バグ多くね?セッション周りとかリダイレクト周りとか怪しい。
インターフェースもまだまだ洗練されてないし、未完成だろ。
0374nobodyさん2010/12/14(火) 12:52:12ID:???
未完成というか、レガシーを引きずった故の副作用という希ガス
セッションとかリダイレクトなんかは、PHP自体にそれなりのものがあるのに、
自前でゴテゴテしたものを実装して、悪い意味で複雑になってしまった感がある。
0375nobodyさん2010/12/14(火) 13:06:04ID:???
だから重くなってるのに、そこを見ようとせずに
「重いならキャッシュ使えばいいだろ」って言う奴は現実逃避してるだけだな。
0376nobodyさん2010/12/14(火) 13:09:46ID:???
つくり直す必要があるな
0377nobodyさん2010/12/14(火) 13:45:17ID:???
ただで使えるものとしてはまあアリだけど、金は取れないレベルだな
0378nobodyさん2010/12/14(火) 13:48:16ID:???
Cake使い始めた時は、ぐぐっても情報が多くて選択は正解だったと思えたのだが
よく見て&試してみると古くて使えない情報ばかり
2006〜8年あたりの情報がよく出てくるけど、正直邪魔でしょうがない
2010年の情報はほとんどない
0379nobodyさん2010/12/14(火) 14:22:28ID:???
CakePHPに求める機能に関しては、ある程度1.2で固まったからね。
新規で改めて出すべき情報も最近は無い気がする。
0380nobodyさん2010/12/14(火) 16:55:12ID:???
>>378
これには同意だわ。
CakePHPの事調べるときは、まず記事の日付を見るよ。
2009〜2010年ならまだいいけど、2008年より昔だと正直あまり参考にならない。
0381nobodyさん2010/12/14(火) 17:26:06ID:???
ここ1年くらいで始めた人は大変だろうねえ。
0382nobodyさん2010/12/14(火) 20:03:45ID:???
ここ1年内に始めたけど、>>378の言うとおりだったな
なんとかcookbookを見たり、お前らに罵倒されながら覚えたけどw
0383nobodyさん2010/12/14(火) 20:48:56ID:???
Cookbookあてにならんからなぁ、割と間違ってるし。
もっと新しい情報増えないもんかね。
Advent Calendarがずっと続けばいいのに。
03843502010/12/14(火) 20:54:08ID:???
いい加減php4に足引っ張られてる気がするな
0385nobodyさん2010/12/14(火) 20:54:49ID:???
名前そのままだった恥ずかしい・・・
0386nobodyさん2010/12/14(火) 21:09:40ID:???
Lithiumに期待だな
0387nobodyさん2010/12/14(火) 21:11:26ID:???
プラグインも考えると、もうphp5状態なのになー
0388nobodyさん2010/12/14(火) 23:19:50ID:???
でも、結構PHP4の使用率高いよ。
フリープログラム掲載してるけど、しょっちゅうPHP4で動かないと言われる
0389nobodyさん2010/12/15(水) 07:10:35ID:???
PHP4ってサポート終わってるよね?
セキュリティホールがあっても修正されないんだよね?
0390nobodyさん2010/12/15(水) 09:27:53ID:???
そうだよ
0391nobodyさん2010/12/15(水) 12:12:12ID:???
vendorsに入れているcronで処理するファイルがあるのですが、
これをコントローラーから呼び出して実行したいと思います。
どう書けばよいのでしょうか?
0392nobodyさん2010/12/15(水) 16:10:21ID:???
今日から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^)/
0393nobodyさん2010/12/15(水) 16:21:33ID:???
なんでわざわざIISなんだよ。
警告見てググればわかるけど、open_basedirに引っかかってる。

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

IISでのopen_basedirの解除方法とか知らんけど。
0394nobodyさん2010/12/15(水) 16:27:33ID:???
>>393
やさしー!
もうちょっとがんばっちゃうね!
0395nobodyさん2010/12/15(水) 19:11:37ID:???
>>391
ふつうに子プロセスとして実行すればいいんじゃない?
0396nobodyさん2010/12/15(水) 19:24:35ID:???
>>395
すみません、「子プロセス」の意味がよくわかりません・・・
0397nobodyさん2010/12/15(水) 19:52:30ID:???
>>393
ディレクトリが違うごとに書き換えんのかよー!?やってらんね!
って思ったら、複数指定できんのね!
open_basedirのヒントくれてありがとー\(^o^)/


open_basedir = "C:/inetpub/wwwroot;C:/Windows/Temp;D:/Program Files/cakephp-cakephp-f6748d4"
ってしたら、いつもの黄色と緑の画面出てきたー!
やったぜい
0398nobodyさん2010/12/15(水) 21:01:24ID:???
>>396
ググって解決してるだろうけどいちおー。
http://www.php.net/manual/ja/book.exec.php
0399nobodyさん2010/12/15(水) 21:14:07ID:???
>>398
execの事ですか。それをコントローラ内で実行するんですね。
試してみます。ありがとうございました。
0400nobodyさん2010/12/15(水) 23:21:27ID:???
Cakeはずっと使ってきているが、衝動的に嫌気がさして、
ちょうどLithiumが0.9.9 とかwktk感が出てきたっぽいので、
Lithium / PHP5.3 / MongoDB に挑戦してみたが
(公式)ドキュメントなさ過ぎワロタ状態 & 環境構築だけで一苦労だったでござる
(おまけにPHP5.3系では既存のCakeのコードもうpグレードしないとだし)
やっと見つけたLithium日本語フォーラムも閑古鳥だし
無名関数を使ったフィルタチェインとか面白そうなんだがなー
APIの大変更とか起こりそうな感じではあるので、まだCakeだな
0401nobodyさん2010/12/15(水) 23:23:30ID:???
(追記)だがMongoDBは面白そうだ
Cake + MongoDB で実運用してる人いるのかな
0402nobodyさん2010/12/16(木) 00:08:09ID:???
1.3と1.2 初学者におすすめなのは?
0403nobodyさん2010/12/16(木) 00:24:36ID:???
RDBMS + ORMはとてもキモくて使う気になれなかったが、
MongoDBとやら + CakePHPは面白そうだな。
0404nobodyさん2010/12/16(木) 00:27:46ID:???
ちなみにCakePHPってDBはRDBを想定しているのではないの?
KVSに対応できるもの?
0405nobodyさん2010/12/16(木) 02:09:13ID:???
DataSourceを拡張したものでmemcachedとかTokyo Tyrantとか用のが
公開されてるね(試してない)。JOINがないなら、わざわざActiveRecord通すことも
ないとは思うけど・・・。セッションの保存用としての利用にはMemcachedは
デフォで使えるみたいだね(やっぱり試してない)
>>402
どうせバージョン乗り換え時に相応の学習コストがかかるし、どっちもStableなんだから1.3
>>403
ORM ってRDBの取り回しのために使うもんだと思ってた
0406nobodyさん2010/12/16(木) 03:13:07ID:???
CakePHPとMongoDBでやろうとしたけど、色々ハマってやめた。
CakeはRDBを前提としすぎてると思った。
俺の思った一番のネックはHelper->setEntity()だな。
0407nobodyさん2010/12/16(木) 04:26:14ID:???
>>406
レスどうもです。ちょっとわからなかったので自分なりに考えてみた。
・MongoDBはスキーマレス
・CakeのMongoDBデータソースを使う場合、モデル内にスキーマらしきものを記述する(らしい)
・Cake本体が"Describe"とか発行してテーブル(コレクション)の構造を把握することが出来ないので、
 Helper側でModelName.FieldNameを自動設定する時にはまり所が出来る
・フィールドの中にさらにArrayが入ってたりするともう大変
こういう理解でいいのかな・・・cakephp-mongodbのサンプル見る限りはなんとかなりそうな気がしたが、
いろいろでてくるのか〜。
気力と実力と時間が出来ない限りは、CakePHP + MySQL をおとなしく使い続けるしかないのかな・・
そのへんLithiumはイケてるのかと思うと迷う。
0408nobodyさん2010/12/16(木) 10:13:17ID:???
>>407
FormHelperで配列をPOSTするようなのが、
type=select multiple=trueじゃないと作れないからね。
同じモデルへの送信を複数に出来るから、
[{'name':'foo'},{'name':'bar'},{'name':'buz'}]見たいなのは出来ても、
['foo','bar','baz']みたいなのは出来なかったよ。

でもcakephp-mongodbのコミッタも増えてるし、
そのうち使えるようになるんじゃないのかな。
0409nobodyさん2010/12/16(木) 12:33:59ID:???
コンポーネントを動的にロードする方法ありませんか
今作ってるあるコントローラが、コンポーネント50個ぐらい使ってて、var componentsが長すぎる
デカいアプリ作るのに向かないのかなCakeって
0410nobodyさん2010/12/16(木) 12:44:37ID:???
>>409
ttp://book.cakephp.org/ja/view/933/The-App-Class

Cookbookくらいぜんぶ読んどいて損ないから。
というか、もしチーム開発してたら迷惑だから。
0411nobodyさん2010/12/17(金) 06:04:07ID:???
質問者じゃないけど、ちょっとやってみたけど、
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エンコードしてくれなくなってる・・・
0412nobodyさん2010/12/17(金) 06:24:46ID:???
そりゃ当然コールバックは呼ばれないよ
0413nobodyさん2010/12/17(金) 09:34:54ID:???
App::import('Component', 'Foo');
$foo = new Foo();
こうするべきじゃないの?
0414nobodyさん2010/12/17(金) 15:52:56ID:???
App::import('Component', 'Foo');
$foo = new Foo();
$foo->initialize($this);
$foo->startup($this);

こんな感じかね
自前でこういう関数作っとけばいいんじゃね
0415nobodyさん2010/12/17(金) 15:57:52ID:???
もはやパスの解決以外の意味で"require_once"を使わない意味が分からんw
0416nobodyさん2010/12/17(金) 16:10:52ID:???
>>414
ベターだろうけど色々ふぐあいの原因になる。
そもそも設計し直したほうがいい。確実に
0417nobodyさん2010/12/17(金) 17:05:13ID:???
どっちにせよコールバックが動かないならなんの意味も無い気がする
0418nobodyさん2010/12/17(金) 17:10:48ID:???
$html->linkは重いと評判なのでpathで書こうと思います。

しかし、この場合、ローカルとサーバ上で画像のリンクをいちいち
書き換えないといけないのはしょうがないのでしょうか?
0419nobodyさん2010/12/17(金) 17:22:51ID:???
>>416
なんで?
Cakeも中で同じような処理やってんじゃないの?

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

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

あと10日ほど前に同じ話題出てたよ。
>>331-333
0422nobodyさん2010/12/19(日) 09:44:23ID:???
modelのdeleteAllのコンディションで、
dateフィールドの日付が一週間以上前のデータを全て消すということはできるでしょうか?

例えば、

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

マニュアルを読んでいると、特定の日付を指定して消すことはできるみたいなのですが、
こういう複雑なことはMySQLで直接書くしかないでしょうか?
04234222010/12/19(日) 10:26:17ID:???
ネットを参考に試してみたコードはこんな感じです。
でも動かなかった。。

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

$conditions = array('created' => '< ' . $my_datetime);
$this->deleteAll($conditions);
04244222010/12/19(日) 10:36:04ID:???
お騒がせしました。以下のコードで出来ました。

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

$conditions = array("created < '$aWeekBefore'");
$this->deleteAll($conditions);
0425nobodyさん2010/12/19(日) 10:51:22ID:???
$conditions = array('created <' => $aWeekBefore);
じゃなかったっけ
04264222010/12/19(日) 16:05:07ID:???
>>425

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

0427nobodyさん2010/12/19(日) 16:22:35ID:???
http://book.cakephp.org/ja/view/74/Complex-Find-Conditions
「見つからない」って、Cookbookぐらい一通り読んでおけよマジで
04284222010/12/19(日) 16:55:25ID:???
すいません、すいません。deleteの項目しか見てませんでした。

そして、ありがとうございます。
0429nobodyさん2010/12/19(日) 16:59:53ID:???
Cookbookは正直分かりにくい。
0430nobodyさん2010/12/19(日) 18:41:35ID:???
bookって言うぐらいだから全部通して読んでおくしかないと思うよ
セクションごとに「全てを1ページで読む」で
0431nobodyさん2010/12/19(日) 21:05:11ID:???
てか、リンク先がおかしい
0432nobodyさん2010/12/19(日) 21:22:23ID:???
わかりにくいと言うより、情報が足りないよね
細かいことが全然わからない
0433nobodyさん2010/12/19(日) 21:31:53ID:???
cookbook全部読んで情報足りないとおもうなら、
http://api.cakephp.org/classes
これでそれぞれの挙動確認したらいいよ。
あと、もっと深くAPIしるには
coreの中に入ってるtestCase読むのがマジオススメ
こんな昨日あるんだって発見が多い
0434nobodyさん2010/12/19(日) 23:36:16ID:???
>>433
testCaseは読んでなかったな。
APIリファレンスは必読っていうか、
最近じゃ疑問が出たらCookbookは読まずにAPIリファレンスに直行だ。
0435nobodyさん2010/12/19(日) 23:36:44ID:???
結局、Cakeにしろ手のフレームワークにしろ
Webアプリを作る奴らの絶対数って減ってるのかな
0436nobodyさん2010/12/20(月) 01:44:45ID:???
>>431
英語版読んだ方がいいよ。
まあ日本語リソースが充実してるのがcakeの利点の一つでもあるから残念な点だけどね。
0437nobodyさん2010/12/20(月) 07:27:46ID:???
>>435
Cakeにしろ手のフレ このあたりの意味がよく分からないけど、
webアプリを作る人数は増えてるんじゃないか?
なんとなくだけど。
何で減ってるっておもうん?
0438nobodyさん2010/12/20(月) 07:54:47ID:???
「オレオレFWを作る人間の数が減っている」と言いたいのだろうと等質の発言をエスパーしてみる
0439nobodyさん2010/12/20(月) 09:57:33ID:???
Zendしか使ったことないけどCakeどう?
使いやすい?
0440nobodyさん2010/12/20(月) 10:13:24ID:DEKQpeb3
cookbookをローカルにDLできるよ。

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

Cakeの情報が少ない・古くなったと言うレスを見て
「Cakeやこの手のフレームワークを使う人数も少なくなったのかな?」
ってのが言いたかった。
0443nobodyさん2010/12/20(月) 11:54:19ID:???
つっても実際1.3になってからの情報はすくないし
0444nobodyさん2010/12/20(月) 12:38:34ID:???
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)
0445nobodyさん2010/12/20(月) 15:44:35ID:???
上にも書いてたけど、情報多いといっても古いものばかり。
新しい情報ほど少ないってことは実は使ってる人減ってたりして?
0446nobodyさん2010/12/20(月) 16:18:34ID:???
無いわけじゃないんだけどね。
ただ、検索結果には古いエントリばっかりって感じだと思う。
俺も、単にこれどうやっていいかわかんねぇってのから、
一応Tipsみたいなのまで、ちょいちょい書いてるけど、
CakePHPで検索されてくるのはかなり少ないよ。
0447nobodyさん2010/12/20(月) 16:41:04ID:???
プログラムの重いところを探すのは、みなさんどうやっていますか?

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

$time_start = microtime(true);

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

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

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

xdebug プロファイリング

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

XHProfの出力をDebugKitで見せてくれる、DebugKitのカスタマイズみたいだ。
俺は使ったことは無いから、別にオススメしてるわけじゃないぞ。
XHProfもphp拡張モジュールだから、導入が面倒なのは同じかね。
0450nobodyさん2010/12/20(月) 17:12:56ID:???
コード数行〜数十行単位であたりがつくんだったらそれでもいいと思われ
どのクラスの呼び出しで時間食ってるのか、とかの視点でみたいんだったらプロファイラ
0451nobodyさん2010/12/20(月) 17:14:59ID:???
450です。
ごめんかぶった
0452nobodyさん2010/12/20(月) 18:06:14ID:???
>>449 >>450

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

cakePHP独自のやり方があるのかなとも思ったのですが、
特にそんなことはないのですね。
0453nobodyさん2010/12/21(火) 00:26:27ID:???
お前らさぁ
いつまでORMとかキモいことやってんだよ。
0454nobodyさん2010/12/21(火) 00:47:24ID:???
そこにデータがある限り
0455nobodyさん2010/12/21(火) 02:43:02ID:???
OOPとRDBを採用するのをやめるまで
0456nobodyさん2010/12/21(火) 15:24:33ID:???
actionを自動で作るって無理ですよね?

やりたいことはビューのテンプレート(アクション)をプログラムで作成して
それにアクセスしたいんです。Pagesを使うとURLが変わるし・・。
0457nobodyさん2010/12/21(火) 15:30:28ID:???
本気で何言ってっかわかんね
0458nobodyさん2010/12/21(火) 15:43:01ID:???
等質の発言を俺がエスパーしてみる
Pages -> = PagesController
URLが変わるし・・・ -> 同一のURL内で複数の内容を表示させたい
テンプレート(アクション) -> View TemplateなのかController Actionなのかわからん
actionを自動で作る -> ????????

CakePHPにエスパーしてもらうって無理ですよね?と等質が言ってると思われます。
0459nobodyさん2010/12/21(火) 15:48:10ID:???
データベースにViewテンプレートを格納する
改造かプラグインか何かを見かけた事あるし、
出来なくはないんじゃない?
なにしたいのかよく分からんから、
勝手に受け取った印象でだけど。
0460nobodyさん2010/12/21(火) 16:06:49ID:???
俺も出来ると思う。

でも何がしたいのかよく分からないし言ってることが分からないので、
俺も印象でだけど。
0461nobodyさん2010/12/21(火) 16:49:48ID:???
/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 でアクセスできませんよね?

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

あとはどう実装したいのか次第。
0464nobodyさん2010/12/21(火) 17:09:24ID:???
コントローラー通さないならhtmlでも置いとけば?
0465nobodyさん2010/12/22(水) 01:01:58ID:???
質問です。
CakePHP v 1.3.3

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

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

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

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

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

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

まぁ複雑そうだから、最終的にはソース嫁になりそうだけど。
0468nobodyさん2010/12/22(水) 14:31:24ID:???
>>465
requestActionで、コントローラアクションから別のコントローラアクションを呼びまくったりしてると
もう最悪だな
それと「時間のかかる処理」がなんなのかだろうけど、
>>466 で言及してるキャッシュ周り
>>467 で言及してるルーティング周り
あたりから見ていく感じかな
04694652010/12/22(水) 17:59:15ID:???
皆様ご意見ありがとうございます。

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

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

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

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


ただやはり現象の発生が100%ではないのが、気持ち悪いです。
再現性、トラッキングが難しく、少々頭が痛いですが、やはりルーティング周りを確認していきたいと思います。
でも、ルーティング設定ミスなら100%再現されそうですよね、、。
0470nobodyさん2010/12/22(水) 18:33:59ID:???
> キャッシュ機能を無効にしても同様の現象が続いたので、
> aのページキャッシュにbの内容が保存されていたので、やはりアプリの問題だなと考えています。

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

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

これじゃないか?
CentOS5でパッケージリポジトリからのPCRE使ってると、
確かこれにぶち当たるはずだよ。
04714652010/12/22(水) 19:19:44ID:???
>470
あっすみません。キャッシュを無効にする前の事です、、。

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

しかし、発生頻度が数%で、アクセス数に比例して頻度が上がるんですよね、、。
ルーティングが別々のプロセス間で共用されている事を考えています。
シングルトンと言えども、
リクエストa,bに対して、プロセスa,bが実行される中、aとbが互いに干渉し合う事ってあるんでしょうか?
0472nobodyさん2010/12/22(水) 19:42:24ID:???
phpって1HTTP リクエスト毎に独立してんじゃないっけ?
04734652010/12/22(水) 21:27:27ID:???
ですのよね、、。何も信じられない、、。
今なら新興宗教とか信じられそうです。
年越さないようにがんばります、、。
04744652010/12/22(水) 21:28:37ID:???
ですのよって、、。おねぇか。
ですよねの間違いでした。
0475nobodyさん2010/12/22(水) 21:41:28ID:???
「ルーティングの設定に穴があった」だったら明るく解決だけど、
そうでない場合、少しイヤなバグだな・・・
Cake使ってる高負荷サイトってどの辺だろう
0476nobodyさん2010/12/22(水) 23:51:19ID:???
もしかして動的にモデルの構造が変更されるようなページ?
0477nobodyさん2010/12/23(木) 08:10:42ID:???
つーか、そんな時こそプロファイラじゃないか?
もしくはステップ実行。
xdebug使ってみては?
0478nobodyさん2010/12/23(木) 10:12:06ID:???
重いと評判のhtmlHelperですが、ローカル環境と本番環境のリンクずれを
気にしなくてよいので、Linkは積極的に使っています。

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

リンクずれ以外にはhtmlヘルパーを使うメリットって何があるでしょうか?
教えていただければ幸いです。
0479nobodyさん2010/12/23(木) 10:44:37ID:???
HTTP→HTTPSの切替がしやすいってのがあった。
ま、相対パスだから当たり前なんだけど。
0480nobodyさん2010/12/23(木) 10:58:51ID:???
>>478
Routingを使うならURLの記述はarray()でしたほうが良い
アクション名変えるだけですべてのページ書き直すとか無理
04814782010/12/23(木) 12:05:15ID:???
>>479
hmhm。 そういう利点もあるのですね。


>>480
なるほど、自分はRouting使っているので、やはりLinkは引き続き使ったほうがよい
気がしてきました。
0482nobodyさん2010/12/23(木) 12:21:57ID:???
というかHtmlHelper重いから使わないほうがいいとか言ってる奴は、
CakePHP重いからピュアなPHPで書いたほうがいいって言ってるのと同じなんだけど。
速度気にするならビューやDBやらをキャッシュすればいいだけだし。
本末転倒もいいところだわ
0483nobodyさん2010/12/23(木) 12:47:08ID:???
こういう、画像に対して、サイト内の画像をリンクするのはヘルパーでどうやるのでしょうか?

<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',
)
);
0484nobodyさん2010/12/23(木) 13:04:15ID:???
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()でやるのは無理
0485nobodyさん2010/12/23(木) 13:07:11ID:???
あーごめんID入れるの忘れてた

echo $html->link(
$html->image("sample_mail.jpg"),
"/img/sample_mail.jpg",
array('escape'=>false, 'id'=>'sampleMail')
);
04864832010/12/23(木) 15:03:20ID:???
>>484

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

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

なんにせよ、素晴らしいリプライをありがとうございます!
0487nobodyさん2010/12/23(木) 15:12:54ID:???
IMEの予測変換が邪魔したみたいだわ

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


つまりhtml->image()ではAタグにidやらclassやらを指定できないってことね。
04884832010/12/23(木) 22:17:18ID:???
>>487

納得。ありがとうございます。
0489nobodyさん2010/12/23(木) 22:53:41ID:???
俺はむしろurlだけ使う方法を採用してるな。
その方がソースも綺麗で分かりやすいし。
0490nobodyさん2010/12/27(月) 11:08:36ID:???
遅いレスだけど $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だったかな)
0491nobodyさん2010/12/27(月) 11:12:50ID:???
ショートタグ使うなや
0492nobodyさん2010/12/27(月) 11:25:34ID:???
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
0493nobodyさん2010/12/27(月) 11:36:15ID:???
>>490書くならタグ書いたほうがましだろ
何のメリットもないww
0494nobodyさん2010/12/27(月) 11:38:09ID:???
>>490
素直にタグ書けよw
0495nobodyさん2010/12/27(月) 11:48:25ID:???
>>492
例外処理がまともになるのかな。予期せぬ例外もきちんとcatchしてくれるならうれしい。
0496nobodyさん2010/12/27(月) 14:44:58ID:???
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));
?>
ビューの中でこんな感じでサブメニューを出力させたりするのに使ったりしてるよ
自前のヘルパー作ってもいいんだけど
まあこんなやりようもあるということで
0497nobodyさん2010/12/27(月) 15:16:21ID:???
だから誰もとくしねえコードかいてんじゃねーよ
<li>って書いてたほうが他の人も分かりやすいわ
一人でオナニーやってろ
0498nobodyさん2010/12/27(月) 15:57:22ID:???
へーい すいませんでした
0499nobodyさん2010/12/27(月) 16:57:32ID:???
それで慣れちゃったんだろうけど、
俺はそのコードを触りたくないな
0500nobodyさん2010/12/27(月) 17:01:43ID:???
>>496
>見通し考えてタグ書きたくないときとか
見通しを悪くしたいとは、変わった方もいらっしゃるんですね
0501nobodyさん2010/12/27(月) 18:16:04ID:???
プログラムやる人にまともな人なんかおらんわw
0502nobodyさん2010/12/27(月) 18:24:31ID:???
>>501 なんで論点ずらそうとしてるの?本人なの?
0503nobodyさん2010/12/27(月) 18:30:13ID:???
脇目もふらず一直線に突き進んでたら、
相当見当違いの事やってたってのはよくあることだな。

その書き方は本末転倒だと言わざるをえない。
0504nobodyさん2010/12/27(月) 18:50:48ID:???
まあ、そこまでやればある意味でCake Wayだなw
html全く書かないとかやりとげたら真のBakerだwww
0505nobodyさん2010/12/27(月) 18:55:27ID:???
<?php foreach($items as $k=>$v): ?>
<li>なんちゃらry</li>
<?php endforeach ?>
でよくね?
0506nobodyさん2010/12/27(月) 20:25:01ID:???
Cake2.0が来るのか
胸熱だな
0507nobodyさん2010/12/27(月) 22:28:01ID:???
Zend並に使いやすくなってくれていればいいが
0508nobodyさん2010/12/27(月) 23:24:26ID:???
俺的にはもう少し軽くなる方が良いな。キャッシュ使わなくても。
サーバのモジュールを切るみたいに、必要じゃない機能を使わないようにして欲しい。
0509nobodyさん2010/12/28(火) 00:31:21ID:???
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()
ってどこに書けばいいのでしょ?
0510nobodyさん2010/12/28(火) 00:43:55ID:???
おでこにでも書いてろ
0511nobodyさん2010/12/28(火) 01:58:16ID:???
>>508
>>492 に、Lazy Loading 云々って書いてあるから、期待はしてる。
PHP5.2.6より上のバージョンに最適化するなら速度や何かはどうにかなってくれるといいな(願望)
0512nobodyさん2010/12/28(火) 02:55:16ID:???
>>509
せめてエラーの内容を書いてくれ。
初期化中になんかエラーになってるんじゃないの?
0513nobodyさん2010/12/28(火) 09:20:27ID:???
>>510
現状、おでこは狭いです。
10年後にはおでこと頭頂部が連結される見込みですが…

>>512
Fatal error: Class 'Sanitize' not found in viewのテンプレート on line 65
みたいな感じです。
レンダリングの段階で出てます。
0514nobodyさん2010/12/28(火) 12:31:58ID:???
viewの65行目に何書いてあるか書けよ
言われたことしかしないのか?
学校か?
死ねよ努力しろよ
0515nobodyさん2010/12/28(火) 13:48:07ID:???
>>509
とりあえず分からなかったらAppControllerの前にでも書いておいたらよい。
0516nobodyさん2010/12/28(火) 15:14:10ID:???
俺は使う直前でimportするようにしてる。
0517nobodyさん2010/12/29(水) 18:02:39ID: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のモデルが引っ張ってこれるのでしょうか。

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

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

categoryというのがコントローラーで2つめがアクションです。
「カテゴリ内のサブカテゴリの詳細」を出す時、上記のようなURLにしているのですが、
いまいちURLが分かりづらくも感じてるので、他の人はどうしてるのか質問しました。
0519nobodyさん2010/12/30(木) 13:40:10ID:???
最近Cakeで作ったWEBサイトを携帯、もしくはIphoneやAndroidに対応したいのですが、
wordpressみたいにプラグインいれてハイ終わりって感じにはならないですよね。

トップページはフラッシュはないけど、動的にフォームを
追加、削除するjavascriptとかも入ってるし。
0520nobodyさん2010/12/30(木) 15:30:21ID:???
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
てのが出まくってるんだけど、これは何でどうしろってことなの?
0521nobodyさん2010/12/31(金) 01:11:49ID:???
CakePHPは何故失敗したのか
0522nobodyさん2010/12/31(金) 13:20:30ID:???
1.3.6のBakeってなんでVer下がってんだ
0523nobodyさん2011/01/01(土) 05:08:55ID:???
>>521
普及度では大成功だろ
PHPと同じで導入しやすいから普及してしまった
0524nobodyさん2011/01/01(土) 14:23:41ID:???
導入した俺は失敗だよ
バグあるし重いし、別のフレームワーク使って作り直さなきゃどうにもならん
0525nobodyさん2011/01/01(土) 16:13:29ID:???
CodeIgniterが気になって調べてたら殆どの人がcakephpに戻っててワロタ
0526nobodyさん2011/01/01(土) 16:59:33ID:???
Cakeには不満はあるが、他に選択肢がないって感じかな
0527nobodyさん2011/01/01(土) 18:01:25ID:???
俺としては「重い」と「ファイルが多い(FTPアップに時間がかかる)」
を改善してくれたら全く文句ない。
0528nobodyさん2011/01/01(土) 18:20:39ID:???
tarで固めちゃっターらいいよ
0529nobodyさん2011/01/01(土) 20:07:37ID:???
あああ
0530nobodyさん2011/01/01(土) 23:35:34ID:???
初笑いだ
0531nobodyさん2011/01/02(日) 00:46:25ID:???
普及してるか?
使ったことあるって人は多いだろうけど使い続けてる人が少ないような
0532nobodyさん2011/01/02(日) 15:48:13ID:???
なんで?FWに慣れたらやめづらいと思うが
0533nobodyさん2011/01/02(日) 16:07:37ID:???
>>521

>/apppath/cake/libs/cake_session.php on line 790

を見れば?
インスタンスされてない変数のメソッド呼び出し
05345332011/01/02(日) 16:09:32ID:???
>>520
の間違いだった orz...
0535nobodyさん2011/01/02(日) 17:10:40ID:???
そこはCakeの関数でしょ?
Cakeのバグってことだよね?
0536nobodyさん2011/01/04(火) 10:40:40ID:???
>>520
よく分からんけど、なんかそこで使われてる必要なモデルが無いんじゃないか?

>>519
プラグインってより、layoutの切り替えじゃないか?
スマートフォンも普通にhtmlを解釈するわけだし、
viewやelementを上手く作ってればlayoutの切り替えで何とかなるかもね。

>>518
URLが気に入らなかったらControllerで変な小細工するよりも、
Routesで対処する方がいいんじゃないか?

>>517
AuthComponent::user()の引数はフィールドの指定じゃないか?
ソースコード見てみたけど、アソシエーションを解釈してくれそうには見えない。
User belongsTo Group なら、$this->Auth->user('group_id')は出来そうだけど。
0537nobodyさん2011/01/04(火) 11:21:02ID:???
>>536
無いんじゃないか?って俺に言われても。
Cakeのセッション機能使っただけなんだが。Cakeが直せよ。

セッションまわりは他にも不具合があってかなり怪しい。APC入れたら動かなかったりとか。
0538nobodyさん2011/01/04(火) 11:27:39ID:???
いやそれは当然だと思うが・・・
セッション管理とキャッシュが食い合わせ悪いのはCakeに限らないだろ
0539nobodyさん2011/01/04(火) 11:39:09ID:???
>>537
それこそ俺にそう言われても。
1.3.2なんて古いの使って無いから790行目がどういうコードかわからんし、
どこでどんな原因があるのか分からんよ。
ただ、Coreのコード中でも、そこでModelのメソッドを呼んでるぽいから、
そのModel作り忘れとかもありえるんじゃないかと思っただけだ。
0540nobodyさん2011/01/04(火) 14:29:06ID:???
1.3系のAuthを使ったログインのサンプルって無いですかね?
cookbookを見ながらログインを作ったのですが、
なぜか、
ログイン時間が切れる→ログインフォームに戻る→再ログイン→エラー
になります。

エラー後に同じIDとパスワードでログインすると、ログインできるので
セッションエラーか何かだと思いますが、原因が掴めません。
0541nobodyさん2011/01/04(火) 20:12:48ID:???
cookbookのACLの開発例にログイン・ログアウトが含まれていたよ。
あれではだめですかね
0542nobodyさん2011/01/05(水) 03:42:32ID:???
cookbook面白いなーつい夢中になる
0543nobodyさん2011/01/06(木) 03:35:43ID:???
でもリンク切れが多い。>>541が言ってるACLの開発例もリンクおかしいし
0544nobodyさん2011/01/06(木) 04:44:02ID:???
リンク切れは、データベースのslugカラムがVARCHAR(45)で短すぎるかららしい。
一旦フッターのリンクから英語に移動して、見たいページ開いてから、
URLに自分で/jaを継ぎ足す事で見れる・・・
0545nobodyさん2011/01/06(木) 05:04:44ID:???
リンク切れているときはenのページを探してみて、jaへのリンクがあるか調べること多いですね

ところで、cookbookはcakephp製みたいですけど、ソース公開されてるんですか?見てみたい
0546nobodyさん2011/01/06(木) 06:47:11ID:???
https://github.com/cakephp/cookbook/

たぶんこれだと思うけど。
0547nobodyさん2011/01/06(木) 10:27:47ID:???
>>546
おお、ありがとうございます。
ローカルで動かしてみようといろいろやってますが、けっこう大変そう
入れろといわれたヘルパーは一通り用意しましたが、Zendのモジュールがどうとか
のエラーで心折れました
0548nobodyさん2011/01/06(木) 14:34:07ID:???
>>544
なるほどなー。ってそれがわかってるなら直してくれればいいのに。
0549nobodyさん2011/01/06(木) 14:42:37ID:???
そういうの多いよね。tinyint使っちゃ駄目とか。
0550nobodyさん2011/01/06(木) 15:06:26ID:???
つうかcakeのマニュアルにstringの時はvarchar(255)って自分で書いてるのにねw
0551nobodyさん2011/01/06(木) 17:17:19ID:???
CakePHPでPostgresって怖くて使えない。
そういう細かいはまり所がちらばってそうな気がしてなぁ。
海外じゃMySQLが主流だから、目玉の数も十分じゃないだろうし、
野良プラグイン使う事を考えるとなぁ。
Postgresのほうが好きなんだけど。
0552nobodyさん2011/01/07(金) 22:34:13ID:???
Web屋とかの制作実績見るとPostgresばっかりな気がする
MySQLのライセンスの問題?
0553nobodyさん2011/01/08(土) 01:34:02ID:???
Perlが主流の頃はPostgreSQLが主流だったんだよ
PHPが流行し始めてMySQLと組み合わせて解説本書かれるようになって10年くらいか?
今じゃすっかりPHP+MySQLが主流みたいになってるな
0554nobodyさん2011/01/09(日) 11:14:02ID:???
CakePHP以前の初歩かもしれないですが・・・、
たとえば「都道府県」→「市区町村」をフォーム上で両方ドロップダウンにして
都道府県で選択した値で市区町村を動的に変えようと思ったとき、
CakePHPならどういう方法をとるのが適切でしょうか?

ざっくりした処理の流れ程度でいいので、みなさんのやりかたをご教授
いただければありがたいです。
0555nobodyさん2011/01/09(日) 12:23:33ID:???
「CakePHPなら」ってのが良く分からない。
単にXHRで呼ばれるアクションを別に1個用意しましょう、ってんじゃ足りない?
それともJavaScriptが分かってない?
0556nobodyさん2011/01/09(日) 12:56:06ID:???
>>554
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=443&forum=12
0557nobodyさん2011/01/09(日) 20:56:38ID:???
book.cakephp.orgを見ながらcakephpの勉強をしているのだけど
バリデーションの定数(やエラーメッセージ)をどこかにまとめたい場合はどこにまとめるのが作法ですか?

http://book.cakephp.org/ja/view/150/
この「独自のバリデーションルール」だとマジックナンバーになってるけど、
実際の開発ではどういう方法があるかを知りたくて。

app/config/bootstrap.phpにまとめるものですか?
0558nobodyさん2011/01/10(月) 00:55:02ID:???
>>557
自分はvalidation.phpとか作ってConfigure::load()してる。
bootstrapにゴリゴリ設定詰めてもそりゃ動くけどね。
05595572011/01/10(月) 02:26:32ID:???
>>558
app/config/validation.phpにずらずら定数を書いておいて
app/models/<使いたいmodel>.phpの先頭でConfigure::load('validation');
という意味であってます?

bootstrapだとvalidation.phpが必要ないmodelでも読み込んじゃうから良くないという感じでしょうか?
0560nobodyさん2011/01/10(月) 04:57:04ID:???
app_model.phpじゃだめなん
0561nobodyさん2011/01/10(月) 12:16:49ID:???
>>559
bootstrapで常時読み込むよ。モデルごとに分けたりなんかしない。
配列の階層構造とかデフォルトのメッセージとかは面倒なのでビヘイビアで処理させてる。
0562nobodyさん2011/01/10(月) 12:31:41ID:???
bootstrapに全定数とかテーブルとか全部書くと便利だけど
全体の動作が重くならない?
0563nobodyさん2011/01/10(月) 13:51:26ID:???
>>562
プロファイリングすれば分かるけど250行ぐらいの設定ファイルで0.4msしかかかってないぐらいには軽い
0564nobodyさん2011/01/10(月) 14:10:59ID:???
0.4msってだいぶ重いんじゃね・・・?
05655632011/01/10(月) 15:22:42ID:???
どんだけシビアな世界に生きてるか知らんが1リクエスト100msかかってる環境でこれなんだ
がなー
これが重いと言われるとどうしようもない
0566nobodyさん2011/01/10(月) 17:30:16ID:???
CakePHPのApp::import()を1回分や、
無駄に発行するSQLの処理コストで吹き飛ぶ
誤差程度だと思うよ。0.4msなんて
bootstrapにある設定のコスト気にするより、
recursiveや取得するフィールドをきっちり調整した方がいいと思う。
0567nobodyさん2011/01/10(月) 17:45:15ID:???
久々にすごいハマってるんだけど知恵貸してくだしあ

Session.startは true
Security.levelは medium

のときに、
ログインページがSSLなんだけど、

非SSLページを遷移してる時は当然セッションIDのCookieは「あらゆる接続・・」で維持され読み取れるんだけど、
SSLのログインページを開いた時点で「セキュリティーで保護された接続・・」に限定されてしまい、
非SSLに移るとセッションは消えるという現象が起きまして。。

Security.levelが medium以下であればSSL・非SSLでのセッションは維持されるとあるのにおかしいなとソースを読みまくり、
一日かけてやっとたどり着いた原因が
SSLページでrequestActionしていると、セキュアのみのセッション(セッションID保存Cookie)に変更されてしまうというものでして、

で、回避するには、
Coreをいじるか、requestActionを使わないしかないように思うんですが、
同じような問題にぶち当たって解決された人いませんか?
05685572011/01/10(月) 20:13:38ID:???
おぉ。レスが増えてた。
>>560
モデルってわけでもないからapp_model.phpじゃないのかな?という疑問もあり質問して聞いてみたくて。
作法みたいなのがあればそれに倣おうと。
>>561
常時読み込んでも対して違わないんですね。参考になります。

app_model.phpかbootstrap.phpで常時読み込んでみてパフォーマンスが気になるレベルになったら次を考えてみます。
みなさんありがとうございます。
0569nobodyさん2011/01/10(月) 20:16:23ID:???
>recursiveや取得するフィールドをきっちり調整した方がいいと思う。

実際これってかなり大事だけど忘れがちだよね。
めんどくさいってのもあるもんな。
0570nobodyさん2011/01/10(月) 20:38:05ID:???
Containable使えばいい
0571nobodyさん2011/01/10(月) 20:39:10ID:???
LazyModelも忘れずにね。
0572nobodyさん2011/01/10(月) 21:33:48ID:???
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();
}

汚しましたーさーせん。
0573nobodyさん2011/01/12(水) 12:17:20ID:???
結構Cake使っているサイト増えたきたね。
会員数が数万単位でも違和感なく使える。
だから、Cakeが重いと感じるのは
ソースの書き方やキャッシュの使い方が悪いのかな・・。
0574nobodyさん2011/01/12(水) 16:36:48ID:???
コントローラからモデル名を取得しようとした時の方法が知りたいです。
cookbookには$this->ModelNameと書いてありますが実際にやってみるとそれでは取れず。
http://book.cakephp.org/ja/view/53

で、thisを覗いた所、
$this->modelNames[0]
$this->modelClass
の2つがあったのでどっちがいいのかなと思って気になりました。
0575nobodyさん2011/01/12(水) 16:38:52ID:???
$this->modelClass
0576nobodyさん2011/01/12(水) 18:08:05ID:???
Cakeって1モデル1コントローラーを前提としてるの?
そんな簡単にいくことってほとんどなくね?
0577nobodyさん2011/01/12(水) 18:29:16ID:???
そうか?半数以上は1モデル1コントローラーで問題ないよ。経験上。
複数モデル使うときは明示すればいいだけだし
0578nobodyさん2011/01/12(水) 22:06:01ID:???
俺の場合はほとんど、1コントローラー複数モデルだけど、
配列で複数指定できるんだし、全く問題ないぞ。
0579nobodyさん2011/01/12(水) 23:23:24ID:???
>>575
ありがとう。それでいきます
0580nobodyさん2011/01/13(木) 00:09:54ID:???
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型の部分が
うまくいっていないのは確かだと思うのですが、どなたか解決策をご存知の方はいませんでしょうか。
0581nobodyさん2011/01/13(木) 01:29:47ID:???
ひとつ聞きたいんだが、他者のソースやプラグインを例題に出されたら
回答者がそれを設置してみないと答えられないんじゃないか?

そしてあんた、自分の中で答え出てるじゃん。BLOB型の部分がおかしいって。
それなら、元のソースに問題があるんだろ。作者に聞けよ。
0582nobodyさん2011/01/13(木) 12:11:03ID:???
その参考にしたサイトで使ってるのはMySQLかな?
よくわからんがMySQL以外のRDBMSをCakeのDataSourceとして使うには覚悟が必要だな
あとFirebirdは知らんけど画像はDBに格納するよりファイルとして保存するのが一番だな
0583nobodyさん2011/01/14(金) 14:38:02ID:???
ViewのテンプレートをデザイナーやPHPプログラマー以外に
触らせるのって無茶だと思うけど、どう思う?
0584nobodyさん2011/01/14(金) 14:39:20ID:???
>>583
どういうこと?営業とか?
0585nobodyさん2011/01/14(金) 14:45:30ID:???
>>584
いやそうじゃなくて、テンプレ内に専用コードが入って複雑にならない?
MVCの考え方から、Viewで処理する物はテンプレート内に書くけど
CakeのコードやらPHPのコードやら入るこむから
テンプレが複雑になって、Cakeに詳しくない人間は編集できないと思う。
0586nobodyさん2011/01/14(金) 14:45:56ID:???
ctpそのまま使うってこと?ありえないw
普通何らかのテンプレート使うだろ
0587nobodyさん2011/01/14(金) 14:47:37ID:???
そうなのか?Smartyを間に入れるとか?
あんたの言う「普通」ってはじめて聞いたな。
みんなctpに処理を書いていると思ってたよ。
0588nobodyさん2011/01/14(金) 14:51:43ID:???
ctpよりSmartyがいいときってどういう時?
Smarty使ってたら逆に複雑になると思うんだけど。
0589nobodyさん2011/01/14(金) 14:53:46ID:???
じゃ、「何らかのテンプレート」ってどういう意味?
0590nobodyさん2011/01/14(金) 15:00:10ID:???
扱うデータが多すぎて、1つのコントローラにモデル20個ぐらい使うんだけど
これって設計がおかしいのだろうか
しかしテーブル最適化するとそのくらいに増えてしまうのだよな…とにかくデータが多すぎて
1つのテーブルにまとめるとカラム数が凄いことになるし
0591nobodyさん2011/01/14(金) 15:00:20ID:???
なんにしても、デザイナーでもプログラマーでもない人間が
ビューを触るケースというのが想像できない
0592nobodyさん2011/01/14(金) 15:06:09ID:???
デザイナーがPHPわからないケースもあるんじゃない?
知り合いがデザイナーにctpいじらせて不具合起こされまくってた
0593nobodyさん2011/01/14(金) 15:06:11ID:???
>>583-589,591

運用スタッフにコンテンツを更新させるなら何らかのCMS的な仕組み作っとけ
0594nobodyさん2011/01/14(金) 15:08:37ID:???
文言変更や画像差し替えぐらいならそれでいけるけど
html編集まで必要だと厳しくないか?
0595nobodyさん2011/01/14(金) 15:29:30ID:???
Wordpressなんかのテンプレートぐらい作れる程度のPHPの知識がある
デザイナーはいっぱいいるとは思うけど、
でもcakeのviewファイル自体はプログラマーがいじるもんだと思ってる。
05965882011/01/14(金) 15:30:13ID:???
>>589
だからctpで十分じゃないかなって意味だった。
ウチで開発した時はコーダの作ったHTMLをテンプレートに当てはめる係がいたな。
その人はctpもHTMLやCSSやJavaScriptのコーディングもどっちも面倒見れる人
0597nobodyさん2011/01/14(金) 16:33:54ID:???
>>596
ああ、あんたは>>586じゃないんだな。それなら俺も同じ意見だな。
>>594
html編集が必要な場面って結構あるからな。
ページ内に説明文追加する時とか。追加じゃなくても変更とか。
その時、どうやったってctpを変更しなくちゃいけないけど、
CakeやPHPの知識がない人間が触るのは厳しい。
「あれ?そうすると、デザインとプログラムの分業って出来ないんじゃねぇ?」
って思ったんだよ。
0598nobodyさん2011/01/14(金) 16:52:49ID:???
やっぱ業務だと作業進行中にデザインの変更とか入ること多いの?
0599nobodyさん2011/01/14(金) 17:14:20ID:???
>>598
いざデザインを適用してみて動かしてみると色々変えたくなる
1枚ペラで見てたのとページ遷移した流れで見たデザインのイメージって結構違うものだなって感じる
0600nobodyさん2011/01/14(金) 17:26:57ID:???
フレームワーク使ってない時は、

DBからデータ取得→foreachで該当するデータを処理→ビューに出力

ってやってた。そうすれば極力、ビューにPHPのコードを書かなくて済むし。
でも二度手間だし、コントローラーでビューの内容を変更するのも違和感があって止めた。
0601nobodyさん2011/01/14(金) 17:49:38ID:???
何言いたいのかわからんけど
フレームワーク使ってるとそれと同じような事やってるじゃん
モデル、コントローラでぐるぐるデータ回して、
最後にビューでも回してるよ
0602nobodyさん2011/01/14(金) 18:02:52ID:???
>>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して出力するってこと。
0603nobodyさん2011/01/14(金) 19:00:07ID:???
すみません、CakeDCで公開してる、usersプラグイン使ってみた人いますか?
README見てもさっぱり使い方がわからない。
いい参考ページあったらおしえてください。。。
0604nobodyさん2011/01/14(金) 19:08:10ID:???
>>602
それちょっといじりたいときにコントローラ弄らなくちゃダメじゃない?って思ったら>>600に書いてあったw
フレームワーク使ってる場合はどっちみちビューでforeachするから$listの時点で十分扱いやすい形になってるなと思う
0605nobodyさん2011/01/14(金) 20:10:12ID:???
>>604
そもそもの話のネタが「デザイナーにテンプレいじらせるのって無理じゃない?」
って事だからね。ビューに手を加えるよりも、コントローラーに手を加える方が
プログラマーとしてはやりやすいし、デザイン変更も対応しやすいから。
ま、MVCに反するから今は>>602みたいに書いてないけどね。
0606nobodyさん2011/01/17(月) 11:39:15ID:???
お問い合わせフォームのメールアドレスに
空白入れて送信される場合があるんだけど、save前に

$this->data['Inquiry']['email'] = trim($this->data['Inquiry']['email']);

ってする以外にお手軽な方法無いですかね?
0607nobodyさん2011/01/17(月) 11:50:52ID:???
$('form').submit(
 function() { $('#email').val($.trim($('#email').val()); }
);

検証してないから動かなかったらごめんね
0608nobodyさん2011/01/17(月) 13:57:08ID:???
つまりjQueryで対処するんですね。
Cakeのモデル処理で出来るかな?と思ったのですが、
>>606みたいなやり方以外無さそうですね。
0609nobodyさん2011/01/17(月) 15:06:42ID:???
はぁ?
なんでバリデーションしないの?
アホなの?死ねよ屑が
0610nobodyさん2011/01/17(月) 15:24:13ID:???
酷い言われようでワロタww
0611nobodyさん2011/01/18(火) 00:57:16ID:???
>>606
つ beforeValidate()
0612nobodyさん2011/01/18(火) 01:57:53ID:???
は?
beforeValidate?
普通にバリデーションルール書けばいいだけだろうが
アホしかいないのかよここは。
0613nobodyさん2011/01/18(火) 06:22:24ID:???
適当に書いておけば顕示欲の強いバカが勝手に答えてくれるから楽で仕方ない
>>609=>>612
あざーっす^^^^
0614nobodyさん2011/01/18(火) 07:47:03ID:???
何が起きてるんだ……
0615nobodyさん2011/01/18(火) 08:17:12ID:???
trimで余計な空白消して対応しようってのがやろうとしてることじゃないのか?
validationで弾いてどうすんだよ
0616nobodyさん2011/01/18(火) 10:30:08ID:???
>>606 がなにをしたいのか書いて無いからなぁ。
trim()使ってるところを見ると、半角スペースだけのデータになるのが嫌なのか、
それともメールアドレスのカラムに半角スペースだけで問い合わせされるのがダメなのか、
どっちなんだ。

まぁ、コントローラーのbeforeFilter()でtrim()して、
モデルのバリデートでrule => email, allowEmpty => false を使うのが良いと思うが。
beforeFilter() ではちゃんとアクション名の確認や、$this->data['Inquiry']['email']の有無は調べてからな。
0617nobodyさん2011/01/18(火) 13:36:46ID:???
だから!!
rule=>emailの時点で半角スペースだけの入力は弾かれるだろ
アホはシネ
答えるな
0618nobodyさん2011/01/18(火) 14:02:09ID:???
お前な、サイト運営したこと無いのかよ。
素人がスペース認識できずに「なんでエラーになるの!」って
クレーム言ってくる場合があるんだよ。もう少し頭使えよ。
0619nobodyさん2011/01/18(火) 14:13:29ID:???
おいおい

emailアドレスに半角スペース入れる
rule=>emailのエラー文として「正しいEmailアドレスを入力してください」

なにが問題あるんだ?素人もクソも関係あるかよ
0620nobodyさん2011/01/18(火) 14:16:26ID:???
emailの前後に空白入れられるってことか。
Email欄に空白だけで登録してくるんだと思ってたわ
だったらbeforeValidateでtrimでいいや
そんなケース聞いたことないわ

それかもう一個ルール追加してemailルール検査前に空白が入ってないか調べてそれ用のエラー文はく
0621nobodyさん2011/01/18(火) 15:06:02ID:???
質問の内容に嘆くのは勝手だけどみっともないから黙っててほしいわ
0622nobodyさん2011/01/18(火) 15:07:53ID:???
入力に対してtrim()は基本だろ。
まぁ全角スペースもあるからほんとはもう一工夫必要だけど。
0623nobodyさん2011/01/18(火) 15:57:16ID:???
>>616
controllerで$this->dataをいじるとユーザーの入力値をいじることになるから
なるべくmodelで対応したほうがトラブりにくい
このケースはどっちでも良いけど
でもなるべくmodelでやるべきことはmodelほうがベターかと
0624nobodyさん2011/01/18(火) 18:41:15ID:???
>>623
俺はコントローラーの仕事だと思うけどなぁ。
もしかしたらコントローラーじゃないかもしれないけど、
モデルだと遅いと思うんだが。
コントローラー内でNULLバイト攻撃されないように、
なるべく早い段階で、入力値からNULLなどを削るようにしてるんだ。
trimは実はbeforeValidateと迷ったけど、
まぁ似たような処理なのでついでにやってる感じ。
コントローラーで入力値をいじるとトラブルになるかな?
0625nobodyさん2011/01/18(火) 20:23:47ID:???
お知らせをトップページでは5件表示して「一覧」を押すと
ページネーション出来る表示の仕方ってあると思います。

自分はコントローラーのアクション毎に分けて
function top_news() // トップページに表示させるお知らせ。find()で取得
function news_list() // 「お知らせ一覧」ページで表示。paginate()で取得

としているのですが、みなさんはどうしてますか?
findでデータを取得するだけだから、1つの関数内にまとめて、
件数で分岐したりしているのでしょうか?
0626nobodyさん2011/01/18(火) 20:37:24ID:???
トップページはrequestActionで取得。キャッシュして
一覧は普通にnews/indexで。
0627nobodyさん2011/01/18(火) 20:58:26ID:???
>>626
自分もトップページでrequestActionして取得しているのですが、
その時、取得するアクションって>>625に書いたように分けていますよね?
つまり、

■トップページの「お知らせ」箇所のビュー
$list = $this->requestAction('/top/news');
■トップページ一覧
コントローラーのfunction indexでpaginateしてデータを取得して、ビューに出力。
0628nobodyさん2011/01/18(火) 20:59:47ID:???
↑すみません、書き間違えました。

■トップページの「お知らせ」箇所のビュー
$list = $this->requestAction('/top/news');
■お知らせ一覧
Newsコントローラーのfunction indexでpaginateでデータを取得して、ビューに出力。
0629nobodyさん2011/01/18(火) 21:21:44ID:???
わけてないよ
paginateで取得させれば
requestActionのURLにlimit:10とかつければその数取得できるじゃん
0630nobodyさん2011/01/18(火) 21:24:20ID:???
あ、indexとは分けてるよ

function indexはほぼbakeしたままを
requestAction用には別のメソッドつくってそこでpaginateしてる

てか、本当はindex()アクションで
if ($this->params['requested']) {
return $this->paginate();
}
ってやるのがベストかな
0631nobodyさん2011/01/18(火) 21:26:37ID:???
ああ、627さんの言ってる意味がわかりました。
トップページの一覧では
$list = $this->requestAction('/news/index/limit:3');
みたいにするんですね。fieldの指定を変えたい場合は、ifで分岐させると。

自分はトップページならTopコントローラーですべてをまとめていたのですが、
やり方が間違っていたようです。参考になりました。ありがとうございます。
0632nobodyさん2011/01/18(火) 21:29:49ID:???
そうそう。

あと>>630はたぶんエラーでるな
if ($this->params['requested']) {
↓
if (!empty($this->params['requested'])) {
こうじゃないとrequestActionじゃないときにエラー吐くと思うわ
0633nobodyさん2011/01/20(木) 02:41:53ID:???
ClassRegistryで取得したモデルからpaginateに繋げる方法って無いですかね?
findの場合、こんな感じで行けるのですが・・・
$User = ClassRegistry::init('User');
$data = $User->find('all');
0634nobodyさん2011/01/20(木) 03:38:21ID:???
うん。設計しなおせ
0635nobodyさん2011/01/20(木) 04:24:58ID:???
ぐぐったら必ず1.2の情報ばかり出てくるのにいい加減ムカついてきた
今みんな1.3使ってるのではないの?
0636nobodyさん2011/01/20(木) 13:21:05ID:???
互換な点が多いから、わざわざ1.3で書き直してないだけ。1.2の情報はほとんど使える。
0637nobodyさん2011/01/20(木) 14:06:58ID:???
素朴な疑問だけど、ポータルサイト(例えばトピックイットみたいな)
の場合のキャッシュってどういう考え方したらいいの?

動的サイトだから定期的に表示される内容が変わるよね?
だからビューキャッシュしても意味ない気がするんだが。
「○○一覧」とか出来るだけ動的ではない箇所をelementキャッシュするとか?

自分の認識が間違っていると思うので、どなたか駄目出ししてください。
0638nobodyさん2011/01/20(木) 16:24:13ID:???
更新処理は知ったら消せばいいと思ったりしないのか?お前の脳みそは
0639nobodyさん2011/01/20(木) 17:35:30ID:???
ビューじゃなくてデータをキャッシュするのは駄目なん?
0640nobodyさん2011/01/20(木) 17:41:50ID:???
データというかモデル
0641nobodyさん2011/01/20(木) 18:17:57ID:???
モデルキャッシュは良いですね。
ポータルサイトの場合、ログインして表示・非表示と切り替えることは多いし。

と言うわけでモデルキャッシュのやり方を調べます。
0642nobodyさん2011/01/20(木) 20:16:03ID:???
ビヘイビア誰か作ってるよ
てかモデルのキャッシュならmysqlのqueryCache有効にしたらほとんど恩恵なくない?
0643nobodyさん2011/01/21(金) 10:51:57ID:???
レンサバだとMySQLの設定はほとんど触れないからね
0644nobodyさん2011/01/21(金) 11:08:22ID:0or6NBGg
>>633
$this->paginate['User']
0645nobodyさん2011/01/21(金) 11:30:38ID:???
queryCacheはデフォで有効じゃね
普通
0646nobodyさん2011/01/21(金) 13:49:06ID:???
おれはrequestAction結構使うからなぁ
モデルのキャッシュとかqueryCacheじゃ不十分。
エレメントをキャッシュせんことには始まらん
0647nobodyさん2011/01/21(金) 15:51:15ID:???
>>644
そうじゃなくて、$this->paginate($User) こうじゃね?
0648nobodyさん2011/01/21(金) 16:05:11ID:???
appを管理用と公開用とで分けてるんだけど、
管理画面で更新したら、公開用のキャッシュを削除したり出来る?
やっぱ、普通にulink(キャッシュまでのパス) 書くしかないの?
0649nobodyさん2011/01/21(金) 22:30:15ID:???
>>648
bootstrap.php に定数のCACHEを定義してみたら。
やったことないけど。
0650nobodyさん2011/01/21(金) 22:37:20ID:???
app_controllerわけてるだけならキャッシュの場所同じじゃないの?
cacheClear関数だっけ?で消せるんじゃないの?
つーかやってみろよ
0651nobodyさん2011/01/21(金) 23:55:41ID:???
>>650
clearCacheですね。
あと、app分けるとtmpの場所も別ですね。
キャッシュされるファイルも別だから、別の方が良いし。

自分がググった範囲では結局、ulinkでファイル指定して削除する方法を
取っている人が多い印象を受けました。clearCacheは万能でないみたいだし。
0652nobodyさん2011/01/22(土) 00:02:13ID:???
そこまでわかったなら勝手にしろよ
0653nobodyさん2011/01/22(土) 00:03:28ID:???
APP分けるとかアホじゃないのとしか思えんからどうでもいいわマジで。
0654nobodyさん2011/01/22(土) 00:11:09ID:???
横だけど、どうしてアホなの?
0655nobodyさん2011/01/22(土) 00:25:46ID:???
定数、変数、その他共通のを持てない
キャッシュディレクトリもわかれてるww
くそ
あほ
0656nobodyさん2011/01/22(土) 01:00:32ID:???
やたら煽るようなレスしてるのはリアルで惨めだから?
どうでもいいけど
0657nobodyさん2011/01/22(土) 01:16:48ID:???
> 定数、変数、その他共通のを持てない

え?ネタだよね?
0658nobodyさん2011/01/22(土) 01:21:34ID:???
キャッシュディレクトリ別って時点で
普通にやったら定数共通じゃないってことだろうがw
あほかお前
しねよくず
0659nobodyさん2011/01/22(土) 01:33:26ID:???
なぜadminルーティングじゃだめなのか
0660nobodyさん2011/01/22(土) 01:43:27ID:???
ファイル数が増えすぎるから
0661nobodyさん2011/01/22(土) 01:45:37ID:???
まーた、一人はファビョってる馬鹿がいるな。
こいつ、このスレずっと常駐してるよね。前から。
リアルで惨めだからここで吠えるしかないんだろうね。可哀想。
0662nobodyさん2011/01/22(土) 01:48:31ID:???
ファイル数は同じじゃないの?
その整理に問題があるってこと?
0663nobodyさん2011/01/22(土) 14:04:08ID:???
それよりおまいら、Securityコンポーネントとか、
$Form->scure() とか、使ってる?

なんというか、「帯に短したすきに長し」なんだよな

まあ、何の目的を達成するかによるんだろうけど、

・CSRF攻撃対策
・(Cake特有だが)$data['Post']['hoge']フィールドのデータぶち込み攻撃に対する対策
 (いちいちwhitelist記述すれば防げるが)
・簡単にワンタイムトークンを発行したい
・機械的なスパムに対するシンプルな防御(完全ではないが)

みたいな話が入り交じってるからややこしいが

みんなそこらへんどうしてる?自前実装?
0664nobodyさん2011/01/22(土) 14:28:24ID:???
基本的にCakeで用意されている機能なんて
業務用には使えないと思うが
よって普通自前でしょ、少なくとも改造
0665nobodyさん2011/01/22(土) 16:21:41ID:???
>>664
レスどうもです。
まあ、その辺はみんな自前か。

しかし、
> 基本的にCakeで用意されている機能なんて
> 業務用には使えない

コレ言っちゃうとCake使う意味がかなり希薄になるなw
0666nobodyさん2011/01/22(土) 16:46:18ID:???
セキュリティコンポーネントは使い物にならないとは思うけど、
業務用に耐えうるものかとかいう議論はそもそもPHPがということになってくるから
ナンセンスじゃないかなー
0667nobodyさん2011/01/23(日) 00:35:40ID:???
業務用って言いたかっただけでしょ。
0668nobodyさん2011/01/23(日) 17:28:31ID:???
SessionとかCookieもぶっちゃけ、PHPの関数そのまま使えばいいもんな。
Cakeの機能で便利なのはAuthとFormヘルパーぐらい。
メール送信とかファイルアップロードとか自作してる。
0669nobodyさん2011/01/23(日) 19:08:19ID:???
1つのフィールドに複数のバリデーションがあった場合のrequiredは
全てのバリデーションに書くものなの?
http://book.cakephp.org/ja/view/129/required
を見ると、フィールドが1つの例だからrequiredを一つ書けば良いけど、

複数のルールを書く場合の例の
http://book.cakephp.org/ja/view/133/
を見るとそれぞれに
// like on, required, 等、他のキーをここに書く...
と書いてあってrequiredの意味がよくわからなくなった。
06706692011/01/23(日) 19:24:17ID:???
必須なフィールドの場合は始めのルールをnotEmptyにしておいてその中だけrequiredを書けばいいですよね?
全部のルールにrequiredを書かなければいけないケースがわからない
0671nobodyさん2011/01/23(日) 20:57:47ID:???
自分が正しいと思うやり方でおk
0672nobodyさん2011/01/23(日) 22:32:32ID:???
また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);としたら期待通り動いた
こういうもんなの?
なんでこうなの?
なんでマニュアルにこういうこと書いてないの?
なんで誰も文句言わないの?
0673nobodyさん2011/01/23(日) 23:48:08ID:???
BというコンポーネントでAというコンポートネントが動いていたら、
どうなるんだろうと思ってしまった。
0674nobodyさん2011/01/24(月) 01:56:53ID:???
Authの認証モデルが「User」で、UserはProfileとhasOneの関係だとします。
ログイン後に、$this->Auth->user()でログイン情報を取得しようとしたのですが、
Profileの内容が返り値に含まれていません。
アソシエーションをしている情報は取得できないのでしょうか?
0675nobodyさん2011/01/24(月) 15:47:44ID:???
COOKBOOKの開発例「11.2 ACL を制御するシンプルなアプリケーション」どおりにやれば取得できるよ
0676nobodyさん2011/01/24(月) 22:02:29ID:???
1.3.7が来てるな
日本語の方は更新されてないけど
0677nobodyさん2011/01/24(月) 22:09:20ID:???
>>675
そこを見てるのですが、>>674に該当する箇所が見あたりません・・・
0678nobodyさん2011/01/25(火) 14:23:31ID:???
COOKBOOKってモモの使い魔かとおもた
0679nobodyさん2011/01/25(火) 15:27:57ID:???
$html->metaを使って
<meta http-equiv="REFRESH" content="5;url=http://google.co.jp/">
を置き換えたいのですが、どういう書き方をすればいいのでしょうか?
0680nobodyさん2011/01/25(火) 16:49:55ID:???
>>679
質問の答えになっていないけど、直接タグ打ちじゃいけないの?
URLの部分だけを動的にしたい場合は $html->url() を使えばいいわけだし
0681nobodyさん2011/01/25(火) 16:59:59ID:???
$html->meta(array('http-equiv=>'REFLESH', 'content'=>'5;url=http://google.co.jp/'))
とかでいいんじゃないの?
0682nobodyさん2011/01/25(火) 19:32:08ID:???
>>680
ビューからレイアウトに挿入したいと思いまして、
$html->meta使うのかと思っていました。

調べたところ、$html->addScriptを使うようですね。こちらを使用します。
0683nobodyさん2011/01/26(水) 15:13:15ID:???
$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の表示にするにはどうすればいいのでしょうか?
0684nobodyさん2011/01/26(水) 16:19:14ID:???
redirect()してexit()か_stop()すればおk
0685nobodyさん2011/01/26(水) 18:10:59ID:???
>>684
$this->redirect($this->cakeError('error404'));
$this->_stop();

こうでしょうか?特に>>683の状態と変化ありません。
0686nobodyさん2011/01/26(水) 18:42:15ID:???
cakeErrorから離れろよ。あとAPIよく読め。
0687nobodyさん2011/01/26(水) 18:46:08ID:???
>>683
単なるブラウザがはき出す404というのが、よくわからん。
404 Not Found でも、サーバーから 404 Not Found のページをはき出すと思うが
0688nobodyさん2011/01/26(水) 23:08:01ID:???
今から勉強すれば
しばらくは、これで食っていけますか?
0689nobodyさん2011/01/27(木) 01:08:25ID:???
何を作るかが重要だけど
0690nobodyさん2011/01/27(木) 13:53:36ID:???
勉強しただけで食えるなら誰でもやってるだろう
0691nobodyさん2011/01/27(木) 14:03:44ID:???
十分条件じゃなくて必要条件だろ
0692nobodyさん2011/01/27(木) 18:20:00ID:???
前に「Cakeの使い方教えてください」的な仕事の依頼をどこかで見た気がするw

以外と使いこなしている人少ないから、
勉強して覚えれば講師業が出来るかも??
0693nobodyさん2011/01/27(木) 21:42:07ID:???
CakePHPで運営されてる大手サービスってありますか?

CakePHPで儲かるシステム作れますか?
0694nobodyさん2011/01/27(木) 21:48:50ID:???
あります
作れます
0695nobodyさん2011/01/27(木) 22:29:11ID:???
トピックイットとFirefoxのアドオンサイト以外で
有名な大手サービスってどこ?
0696nobodyさん2011/01/27(木) 23:01:46ID:???
book.cakephp.orgのサイトが重すぎるんだけど
これはCakePHPの使えなさを表していると見てOK?
0697nobodyさん2011/01/27(木) 23:07:24ID:???
実はcookbookはCakePHPを使ってなかったりして
0698nobodyさん2011/01/28(金) 00:40:18ID:???
>>694
CakePHPで運営されてる大手サービスって何があるよ?
0699nobodyさん2011/01/28(金) 00:44:07ID:???
大手と言えるのかは知らんがnanapiとか
0700nobodyさん2011/01/28(金) 00:56:22ID:???
CakePHPで運営ってなによ
運営の意味も分からないの?氏ねばいいのに
0701nobodyさん2011/01/28(金) 01:49:29ID:???
>>699
他には何かあるのかな?
そもそもCakePHPって世界で盛り上げて行こう!って動きなのかな?

セキュリティー関連とかの対策プラグインとかも次々更新されてたり、新しいプラグインも作られてるのかな?

世界で有名なサイトとか、これで構築されてたら感動する。
0702nobodyさん2011/01/28(金) 01:52:03ID:???
10万人規模の会員サイトには耐えられないんじゃないかな
0703nobodyさん2011/01/28(金) 02:01:22ID:???
ttp://puyo2.upper.jp/cake/files/cakestudy20080220_remora.pdf
0704nobodyさん2011/01/28(金) 02:50:50ID:???
nanapiの開発日記?かなにかの資料見たけど、
動的な部分は素のPHPや別のシステムを使ってるっぽかった。
キャッシュもmemcacheを使ったり。

ま、それが普通だよな。Cakeだけでこなすにも重いもんな。
0705nobodyさん2011/01/28(金) 03:17:15ID:???
cakeでmemcacheつかえんじゃん
0706nobodyさん2011/01/28(金) 12:33:42ID:???
フィールド「open_time」がMySQLのフィールドタイプでtimeなんだけど、
モデル内で
function getTime(){
return $this->data['Shop']['open_time']['hour'].':'.$this->data['Shop']['open_time']['min'].':00';
}
としたら、配列hour内に格納されている値は10なのに
1に変更されてしまうのは仕様?
0707nobodyさん2011/01/28(金) 12:47:02ID:???
>>706
それは知らないけど。
なぜsecに0を入れないのか。
0708nobodyさん2011/01/28(金) 13:22:11ID:???
>>707
secの配列は用意してないんで。
もしかしてそれが原因とかあるのかな?
0709nobodyさん2011/01/28(金) 15:22:25ID:???
サイトがCakeで作られてるかどうかなんて
表示されてなきゃわからないよね?
0710nobodyさん2011/01/28(金) 16:21:34ID:???
自己申告からしか分からないだろJK
(サイト内での表示や言及を含めて)

まあ食わされるCookieのキーがデフォルト"CakePHP"だったりとか
Routingがあきらかに(Railsではなく)Cake風それだったりとか
DOMの構造があからさまにBakeした「それ」だったりとか
そういうことはあるかもしれんが、ちゃんと作ってあるものからは分からない
0711nobodyさん2011/01/28(金) 17:09:30ID:???
paginateとかが出力するnamedパラメータとか。
0712nobodyさん2011/01/28(金) 17:39:44ID:???
フォームのnameが data['User'['name']]
とかだったら一発で分かるんだけどな
0713nobodyさん2011/01/28(金) 17:41:06ID:???
打ち間違えた・・・data[User][name]こうだった・・・

ソース見ると大体分かるパターンが多い気がする。
0714nobodyさん2011/01/28(金) 18:34:31ID:???
ページネーションとかフォームとかだとこの詐欺オクサイトもそれっぽい
http://www.world-auctions.org/
0715nobodyさん2011/01/28(金) 18:41:16ID:???
cakeで作ったことをできるかぎり隠すっていう良エントリあったはず。
どこだったか忘れたけど。
0716nobodyさん2011/01/28(金) 19:00:34ID:???
>>715
去年のadvent calenderかな。そういうのあったね。

つか、〜というフレームワークだから大規模サイトが作れないっていうのはほとんどありえないと思うけどな
大抵のフレームワークは拡張できるようになってるからそこに自分らの手を加えるでしょ。
0717nobodyさん2011/01/28(金) 19:27:25ID:???
>>715
http://d.hatena.ne.jp/k1LoW/20101202/1291262612
これか
良エントリだな
0718nobodyさん2011/01/28(金) 19:48:17ID:???
?url=/ を付けてトップページが出たらCakePHPの可能性大
ってどうしようもない?
index.phpかどこか書き換えればよさそうだが
0719nobodyさん2011/01/28(金) 20:02:02ID:???
恥ずかしがらずにトップページにCAKEPHPとポップアップ表示させるべき
0720nobodyさん2011/01/28(金) 20:13:08ID:???
逆にCake使ってないのをCakeに見せかけることは簡単そうだな
0721nobodyさん2011/01/28(金) 20:19:51ID:???
オレオレフレームワークでそうしてるわw
0722nobodyさん2011/01/28(金) 20:27:10ID:???
>>720的な発想で、cakeっぽい部分を隠すんじゃなくて、symfonyやzendやethnaやrailsやdjangoっぽい要素を
ふんだんに盛り込めば、フレームワークが特定されにくくね?
0723nobodyさん2011/01/28(金) 20:35:27ID:???
そうすると仕様がまとまらずに、開発しづらくなるな
0724nobodyさん2011/01/28(金) 20:50:26ID:???
逆転の発想で、ちいたん風にすれば
0725nobodyさん2011/01/28(金) 21:21:01ID:???
初心に返って、URLをなんたら.cgiにすれば
0726nobodyさん2011/01/28(金) 21:41:35ID:???
くっだらねーどうでもいいことをうだうだと
0727nobodyさん2011/01/28(金) 23:17:34ID:???
と、一番どうでもいい人が言いました
0728nobodyさん2011/01/29(土) 00:32:20ID:???
xampp cakephp qdmail の組み合わせで
ローカルホストから、メール発信しようとしてもメールが送られません。
一応画面遷移などは行って、正常にうごいてる様には見えるのですが
肝心のメールが送られていないようです。

環境はcakephp1.3. qdmail1.2.6です。
どなたか分かる方いらっしゃいませんでしょうか?
0729nobodyさん2011/01/29(土) 00:37:11ID:???
メール遅れるかどうかはどう考えてもスレ違い
0730nobodyさん2011/01/29(土) 02:43:01ID:???
>>714
もろCakeだな
しかし、リアルタイムに入札状況を(1秒毎とかに)取得する際に、
サーバ側でレスポンスする部分はCakeじゃないんだろうな。
入札状況一覧の静的ファイルを置いて読みに行ってるとかかな

ま、どう考えてもシステムがユーザの名を騙って入札してるな
そんで屍の山を築いた後落札するのはシステム側のユーザと・・・よくできてるな
0731nobodyさん2011/01/29(土) 02:59:12ID:???
akiyanのペニオクも知らないんだな
どうりでアホばっかだ
0732nobodyさん2011/01/29(土) 03:07:12ID:???
>>731
何それ
俺はアホで知らないから説明してくれよ
0733nobodyさん2011/01/29(土) 03:18:19ID:???
ggrbkks
0734nobodyさん2011/01/29(土) 04:08:26ID:???
お呼びじゃないよお前
0735nobodyさん2011/01/29(土) 12:12:46ID:???
>>717
頑張りは認めるんだけど、「攻撃者への攻撃の糸口として利用されてしまう」から
Webサーバやフレームワークに何使ってるか隠蔽しましょうって言われても
お前アホかとしか思えない。
労力注ぎ込む方向性が間違ってるだろ。
07367302011/01/29(土) 12:51:51ID:???
730です。

>>731
レスありがとう。

ペニオク自体は知ってたが、正直胡散臭いし、
俺の興味の方向性(お金を儲けるより面白い物を作る)と違ったので、
いままで完全スルーで来ていました。
ペニオクみたいなリアルタイム性の高いシステムにCakeのような重めのレスポンスの
システムが(一部であれ)使われているという一点に興味を持って、
しばらく入札の傾向とか出てくるユーザ名とか眺めてみたり、
無料コインで入札してみたり、ソース眺めて静的ファイルと思われる入札状況のXMLを見てみたり
してみた。まあ、自分でやる気はないが、少しは勉強になったよ。

akiyanもググってみたが、まあこういう人もいるだろうよ。ネットには。
コレに関してはほぼスレ違いだろ。
0737nobodyさん2011/01/29(土) 13:01:07ID:???
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内で書いています。
0738nobodyさん2011/01/29(土) 16:27:24ID:???
http://www.akiyan.com/blog/archives/2010/09/penny-auction.html
前にもこのスレで話題になってた気がするけど、>>731はこれかなあ?
>定価7万の商品に対して、最終的に参加者全員が投入した合計手数料は35万
とか書いてるし、ペニオク推奨しているとも思えないんだが
0739nobodyさん2011/01/29(土) 16:54:25ID:???
前はリンクがアフィになってたけどいつの間にか消えてるな
0740nobodyさん2011/01/29(土) 17:28:00ID:???
突込みどころ満載
0741nobodyさん2011/01/29(土) 17:58:51ID:???
ペニオクが話題だな。と思ったら、さくっとCakeで2〜3日で作ってみる。
クーポンサイトにしてもソーシャルゲームにしてもそんな感じで遊びで作ってれば
後々で応用が利くよ。
0742nobodyさん2011/01/29(土) 18:20:26ID:???
そういうオークションの運営って違法にはならないの?
0743nobodyさん2011/01/29(土) 18:38:06ID:???
>>742
作れますっつうのと運営できますつうのはまた別の話。
法律家だのコネだのをちゃんと付けておくべし。

大手の激ヤスなんかはその辺しっかりしてる。
早々と拠点を香港に移し、世間の風あたりが強くなってきたと思ったらとっとと閉鎖。
逃げ足の速さはさすがだわ。
0744nobodyさん2011/01/29(土) 19:46:41ID:???
ペニオクは海外で販売されていたシステムがcakeだったような
0745nobodyさん2011/01/29(土) 20:03:31ID:???
マジ?仕様書とか見てみたいな
07467302011/01/29(土) 21:22:36ID:???
プラグインでBot入札のアルゴリズムとか入れられるなら胸熱だな
0747nobodyさん2011/01/29(土) 21:47:07ID:???
通常パッケージ \50,000
BOT拡張パッケージ \500,0000
0748nobodyさん2011/01/30(日) 13:49:39ID:???
どなたかCakePHP1.3でHello worldを表示するまでのMVCをソースで提供していただけませんか?
0749nobodyさん2011/01/30(日) 15:05:51ID:???
50000円でどうだ?
0750nobodyさん2011/01/30(日) 16:44:06ID:???
マジで金くれるなら1000円でもやってやるわw
0751nobodyさん2011/01/30(日) 17:09:03ID:???
既存DBの設計がcakephpに合ってないと使えないね
X a.user_cd = b.user_cd
○ a.id = b.a_id

まったくだめだね
0752nobodyさん2011/01/30(日) 17:15:25ID:???
俺は120円でいいぞ
0753nobodyさん2011/01/30(日) 17:16:24ID:???
>>751
それぐらいのDB設計の違いだったら、CakePHP内で吸収できると思うが
0754nobodyさん2011/01/30(日) 17:20:31ID:???
>>753
sql直書きなしではできないでしょ?
0755nobodyさん2011/01/30(日) 17:37:29ID:???
>>750
webmoneyでよければ1000円でお願いします
0756nobodyさん2011/01/30(日) 18:20:56ID:???
早くしろ!!!!!!!!!!!!!!!!!!
0757nobodyさん2011/01/30(日) 18:36:16ID:???
>>754 みたいな理解の浅いやつばっかなんだろうな
0758nobodyさん2011/01/30(日) 18:56:34ID:???
>>754
ヒント foreignKey
0759nobodyさん2011/01/31(月) 00:12:36ID:???
教えすぎw
0760nobodyさん2011/01/31(月) 01:31:57ID:???
せいかい foriegnKey
0761nobodyさん2011/01/31(月) 10:56:41ID:???
テスト
0762nobodyさん2011/01/31(月) 10:58:06ID:???
HtmlHelperのlink()でhttpsなURLってどうやって生成するんですか?
0763nobodyさん2011/01/31(月) 11:04:27ID:???
俺はcakephpでHello worldを表示する方法を聞いておるのだ
0764nobodyさん2011/01/31(月) 14:08:21ID:???
超マジレス。↓のようにファイル作成すれば出来る。

// 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円くれよ。マジで。
0765nobodyさん2011/01/31(月) 14:49:03ID:???
マニュアルにチュートリアルあんだろが・・・
0766nobodyさん2011/01/31(月) 15:05:54ID:???
>>762
$html->link('https', 'https://example.com/');
0767nobodyさん2011/01/31(月) 15:38:21ID:???
>>764
温かい思いやりに感謝する
0768nobodyさん2011/01/31(月) 19:45:54ID:???
>>754
既存DBとの接続には同じテーブルであっても取得したいデータに応じて
primaryKeyだけを変更したモデルを必要数つくればいいよ。
0769nobodyさん2011/01/31(月) 21:37:02ID:???
>>764
せっかくなら model も使おうぜ
0770nobodyさん2011/01/31(月) 22:47:22ID:???
マジレスするとAPP/werbroot/index.phpの中身をhello worldにすればよい
0771nobodyさん2011/01/31(月) 23:05:12ID:???
debug('heloo world');
じゃだめ?
0772nobodyさん2011/01/31(月) 23:26:01ID:???
フレームワークを使う意味からはずれてますね
0773nobodyさん2011/02/01(火) 00:12:31ID:???
しかしほんとCakePHPはググっても古い記事ばっかりだな。
おまいらはブログ書いたりしてないの?
0774nobodyさん2011/02/01(火) 00:13:33ID:???
俺ももう誰も使ってないのかと思うぐらい、古い記事しか出なくて困った。
使ってないのか?
0775nobodyさん2011/02/01(火) 00:21:29ID:???
昔は書いていたが・・・
・書こうと思った記事がすでに書かれていた
・cakeが安定してきたので書くことが無くなった
・書いてもあんまり反応が無いので寂しい
という感じで、1年くらいは書いてないな
古い記事ばかりだというのなら、それを1.3で検証する企画とかやればウケるかな?

でも、最近ならアドベントカレンダーやってたし、知的好奇心をくすぐられるような記事もあったんでは?
0776nobodyさん2011/02/01(火) 01:42:48ID:???
とりあえずfindAllの説明をしている記事はもう全部消して欲しいw
0777nobodyさん2011/02/01(火) 01:52:28ID:???
自分用の備忘録も兼ねてブログに書いてたけど、
使いこなしちゃうと面倒で書かなくなっちゃったごめんね。
0778nobodyさん2011/02/01(火) 09:41:14ID:???
俺も最初はtwitterで適当につぶやいてたが、
そのうち表現したい事が140文字で書けなくて止めた。
かといってブログ書くのは怠いし、面倒だから断念した。
0779nobodyさん2011/02/01(火) 12:06:37ID:???
1.3のページングで質問です。

ビューに
if ($paginator->prev()) {
echo $paginator->prev('戻る');
}

と書いて、戻り先がある場合はリンクが貼られる事を想定していたのですが、
実際は上記のようなコードの場合、リンク無しの「戻る」が表示されます。
true/falseだけ返り値を受け取る事は出来ないのでしょうか?
0780nobodyさん2011/02/01(火) 12:32:52ID:???
俺は使ったことないけど
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
0781nobodyさん2011/02/01(火) 13:17:51ID:???
>>780
ありがとうございます。hasPrevやhasNextを使って
前/次のリンクがあるか調べます。
0782nobodyさん2011/02/02(水) 16:07:14ID:???
簡単な企業サイトをcakephpでどうやって構築するのか知りたいのでzipでください
0783nobodyさん2011/02/02(水) 16:21:15ID:???
BaserCMSで作ればいいんじゃないか
zipはココttp://basercms.net/packages/download/basercms/latest
0784nobodyさん2011/02/02(水) 18:15:26ID:???
ライセンスがアレかな
0785nobodyさん2011/02/02(水) 19:33:43ID:???
簡単な企業サイトがどういうのをイメージしてるのか知らないけど、
俺にとって簡単な企業サイトには、CakePHPは出番がないな。
0786nobodyさん2011/02/02(水) 19:58:41ID:???
確かに単なる企業紹介だと使うまでもない
0787nobodyさん2011/02/02(水) 20:00:59ID:???
cakephp使って構築したいというくらいだし、問い合わせフォームとかニュース更新とかの機能をつけてCMSっぽい作りにしたいんだろう
というわけで>>783を使うか、それを参考にして構築するのがいいと思う
0788nobodyさん2011/02/02(水) 20:09:42ID:???
CakePHP 1.3.6のSanitizeについての質問です。

CakePHP 1.3.6なんですが、
formで送信するときにSanitizeを使わなくてもSanitizeされているんですが、
これってformで送信するときに自動的にSanitizeされているという解釈で良いのでしょうか?
0789nobodyさん2011/02/02(水) 20:14:19ID:???
BaserCMSの重さは異常

設置してみたけど、内部処理が多すぎ。もう少し分けられるのに。
0790nobodyさん2011/02/02(水) 21:01:51ID:???
企業サイト作るときは普通何を使うんですか?
0791nobodyさん2011/02/02(水) 21:27:03ID:???
HTML
0792nobodyさん2011/02/02(水) 21:38:40ID:???
携帯対応も初めから出来ていることを考えると、BaserCMSもなかなか良いね
0793nobodyさん2011/02/02(水) 23:05:43ID:???
使わないけどソースを参考にさせてもらおう
0794nobodyさん2011/02/02(水) 23:38:51ID:???
>>788
ちょっとなにを言ってるのかよくわからない。
HTMLで構成するフォームの事だったら、そこはCakePHPの領域じゃないな。
0795nobodyさん2011/02/03(木) 00:06:31ID:???
>>788
されてる
>>794
お前がなに言ってるかわかんねーよ
0796nobodyさん2011/02/03(木) 00:21:49ID:???
>>795
お前>>788の日本語でよく断言できたな
わからないってほどじゃないけどサニタイズの意味が曖昧過ぎるから
>>794の皮肉もわかるわと思いながらスルーしてた

サニタイズがSanitizeクラスのこと言ってんのか入出力のエスケープを言ってんのか
とか色々考えてしまったわ
0797nobodyさん2011/02/03(木) 00:26:10ID:???
Sanitizeの意味は消毒って意味でしか無い
エスケープとサニタイズは違う。

>>788の文章の中には
消毒するクラスであるSanitizeクラスのことも、
消毒するっていう意味でのサニタイズという単語も混在してる
0798nobodyさん2011/02/03(木) 01:04:19ID:???
横レスだが、
>>788
については、Formヘルパーから自動生成されたHTMLを利用してPOST送信された、
$this->data[Hoge][hage] に渡ったデータが
・文字列の先頭やケツの空白文字を「勝手に」trimしてくれてるのかどうか
・htmlエンティティのエスケープを「勝手に」してくれてるのかどうか
という意味なのではないかと俺は解釈してた
で、めんどくせえからスルーしてた。

どちらにしろ、
> これってformで送信するときに自動的にSanitizeされているという解釈
というのは質問として違うよな・・・と思っていたが、
>>795 がエスパー回答してるんで、いいんじゃね?と思ってた。

要するに>>794 も >>795 も悪くない。
みんな仲良くしようぜってことで。
あと、言ってることがよく分からん質問はスルーでいいんじゃね?
0799nobodyさん2011/02/03(木) 01:15:15ID:???
スルーで良いし、「わからない」って余計な事言う必要もないな。
分かる奴だけが教えればいい。
質問者が可哀想に思っても、それは自身の伝え方が悪いと言う事を
自覚させる意味でも、わざわざ教えてやる必要はない。
0800nobodyさん2011/02/03(木) 01:20:33ID:???
まぁ送信される時じゃなくて受け取った時なんだけどな
0801nobodyさん2011/02/03(木) 11:10:23ID:???
PCRE入れずに日本語をslugしてくれるパッチってありますか?
>>365 を使うと、日本語をごっそり削られてしまいます。
0802nobodyさん2011/02/03(木) 12:41:38ID:???
向こうの家族に挨拶しにいき、
元カノの実家へはじめて泊まった時に
いつもどおりエッチした(その時は測位)

そのまま精液の入ったゴムごとティッシュにくるみ、元カノの部屋にかけたジャンパーのポケットに入れてたのを忘れてて、

元カノに
部屋のゴミ箱にそのままポイしちゃってたかも。。。と言ったらこっぴどく怒られたな。。。

そんな彼女に今mixiでメッセージしても
足跡だけ残されて返信なしという有様。

今は今で彼女いるけど
昔はもっと幸せだったのかもしれない
0803nobodyさん2011/02/03(木) 12:43:36ID:???
会員が5万人規模のゲームサイトを運営しています。

cakephp
symfony
ruby on rails

のいずれかに変えたいのですが
どれが一番いい?開発していくのも自分でやることになります。
0804nobodyさん2011/02/03(木) 12:45:39ID:???
>>795
>>798
横だけど、CakePHPってPOST送信されたデータのサニタイズってする?
前コード読んだとき、そういう記述見当たらなくって、
Cakeはそういう事しないんだって思ってたんだけど。

>>797
あと、この用語っておれよくわかんなくってさ。
POST送信されたデータをサニタイズする方法として、
trimやエスケープがあるって理解で良いのかな?
0805nobodyさん2011/02/03(木) 13:11:09ID:???
>>803
5万程度の中ぐらいならどれでも一緒
0806nobodyさん2011/02/03(木) 13:20:42ID:???
うちは会員200万なんだけど、それならどれがいい?
0807nobodyさん2011/02/03(木) 13:33:16ID:???
質問です。
例えば2つのモデルがあって、その2つで使いたいような共通のメソッド(バリデーションとかでも何でも)があったとして、
その場合ってどういう風に作るのがベターですか?
2つのモデルの親になるようなモデルを作ってそこから継承しようかなと思ったのだけど、
ググってもAppModel以外から継承するってモデルってみんな作ってないような感じ。
そういう作り方はしないものですか?

AppModelに書くのは影響範囲でかすぎるし、2つのモデルに依存した機能だからビヘイビアもおかしい気がする。
あと考えたのがApp::import('Model', '2つの共通する機能をまとめたモデル');という書き方くらい。
0808nobodyさん2011/02/03(木) 13:59:33ID:???
ビヘイビアでいいんだよ。
汎用じゃない処理でも複数のモデルで使いまわしたい場合はビヘイビア。
コントローラやビューやシェルでも使いたいならlibsでライブラリクラス作って使いまわせば
いい。
0809nobodyさん2011/02/03(木) 14:02:31ID:???
俺もその場合はビヘイビアに一票。ていうかビヘイビア一択。

よくわからないのは、モデルとコントローラー共通に必要な処理はどこに置くかということ。
今の所ビヘイビアとコンポーネントに同じコード書いてる。もっと良い方法ない?
0810nobodyさん2011/02/03(木) 14:11:10ID:???
モデルとコントローラの両方で必要な処理がどういう処理かわからん
0811nobodyさん2011/02/03(木) 14:24:25ID:???
設計みなおしたほうがいいし、
仮にそう言うのがあれば普通にクラス書いてVender
0812nobodyさん2011/02/03(木) 14:37:48ID:???
>>810
最近あったのは、携帯サイトで、絵文字の変換処理とか。
DB前後で変換かますからモデルでやるんだけど、DBに入れなくて良い時はコントローラーでやる必要があったり。
全部コントローラーで処理することもできるがそれだとあちこちのコントローラーに同じコードが要るので、モデルでやりたい。
0813nobodyさん2011/02/03(木) 14:41:13ID:???
>>808,809
ありがとうございます。
なるほど、ビヘイビアってそういうものなのか。
振る舞いって言葉の通り、どのモデルでも使えるような、特定のモデルとは切り離された抽象的な「振る舞いを変えてくれるもの」と思ってた。
0814nobodyさん2011/02/03(木) 14:46:21ID:???
>>812
>DBに入れなくて良い時はコントローラーでやる必要があったり。
ここが良くわからないんだけど、
DBに入れる入れない関係なく、ロジックならモデルでやっちゃわない?
もしかしてモデルでやらない方がいい理由があったりする?
0815nobodyさん2011/02/03(木) 14:48:18ID:???
>>812
MVCを厳密に守るとコード最適化に反してしまう例の一つに見えるな
MVCを守るなら、コントローラーだけでやるのが正解ぽい
0816nobodyさん2011/02/03(木) 14:52:35ID:???
>>814
そのモデルを使わないコントローラーもあるんだけど、
そのためにモデルをusesに追加すべき?
違和感があるんだけど、モデルをDBと結びつけて考え杉なのかな
0817nobodyさん2011/02/03(木) 15:01:28ID:???
なんでモデルなんだ
コンポーネントでやればいいじゃん
helperのbiforeVenderとかでもいいか
0818nobodyさん2011/02/03(木) 15:07:08ID:???
内部的には実体参照で保有して、DBにも実体参照で保持。
表示の際にPCなら画像に変えるとか、SBは変換かけるとかする。

あとformから入力があるサイトなら入力データの絵文字も考慮しなきゃならん。
なんかライブラリでも使ったほうが速い
0819nobodyさん2011/02/03(木) 15:26:07ID:???
絵文字を扱うコントローラーが
絵文字を扱うモデルを使わないってどういうこっちゃ
0820nobodyさん2011/02/03(木) 16:34:24ID:???
絵文字を扱うモデルの意味がわからん。
ブログの記事内に絵文字埋め込んでるから、
findで受け取る際にキャリア毎に変換したいとかか?

いずれにせよ、コントローラで俺は書くな。
<select>のoptionsをDBから生成したい時はモデルに書いてるけど
0821nobodyさん2011/02/03(木) 16:44:54ID:???
>>808 だけど、MVCにまたがる処理はlibsにライブラリクラス作れって言ってるだろう
外部ライブラリならvendorでいいけど。
0822nobodyさん2011/02/03(木) 18:08:13ID:???
マニュアル変わったの最近?
きれいになったのはいいけどやたら重いな。
0823nobodyさん2011/02/03(木) 23:26:56ID:???
どうでもいいけどサニタイズとかエスケープとかって言葉は
文脈(どこに出力するか)が決まらなきゃその内容も決まらないんじゃないのか
0824nobodyさん2011/02/03(木) 23:39:37ID:???
どうでもいいならわざわざ書くなよ
0825nobodyさん2011/02/03(木) 23:46:43ID:???
2chで何言ってんだお前
0826nobodyさん2011/02/04(金) 00:11:13ID:???
>>823
ここはCakeのスレで、Cakeがサニタイズって命名してるだろ。
ならそれに従うまでだ。
0827nobodyさん2011/02/04(金) 01:25:00ID:???
http://book.cakephp.org/view/1183/Data-Sanitization
この囲みの文も日本語訳の方に載せといてくれればいいのにね。
一応cake使う上では基本なんだから。
0828nobodyさん2011/02/04(金) 03:21:44ID:???
ああそうか、SQLインジェクション対策もあったな
CakeのActiveRecordに投げっぱなしだったから存在を忘れてた

XSSについては出力段階でエスケープって言うのはCake以外でも基本じゃね?
0829nobodyさん2011/02/04(金) 10:18:51ID:???
2ちゃんで質問して解決したことが一度もねえよ
0830nobodyさん2011/02/04(金) 10:42:48ID:???
それはお前の質問の仕方が悪い。
俺は何度もこのスレに助けられた
0831nobodyさん2011/02/04(金) 11:06:21ID:???
このスレで役に立ってる情報なんてねえよw
0832nobodyさん2011/02/04(金) 11:35:40ID:???
お前がそう思うんならそうなんだろう お前ん中ではな
0833nobodyさん2011/02/04(金) 15:12:57ID:???
公式のフォーラムにあった
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=2021&forum=3

と同じ部分で詰まっているのですが、
誰も回答していない事を見ると、argSeparatorを指定したら
逆ルーティング出来ないのでしょうか?
0834nobodyさん2011/02/04(金) 17:33:25ID:???
debugを0にしてても存在しないコントローラーでアクセスした際にCakeのエラーが表示されて
Cakeであることがバレてしまうのですが、エラー用の特定のページを表示させるには
どうするのが一番良いでしょうか?
dispatcher.phpを書き換えるという手段を思いつきましたがもっと良い方法ないでしょうか
0835nobodyさん2011/02/04(金) 17:37:36ID:???
htaccessでエラーページに飛ばすとかは?
0836nobodyさん2011/02/04(金) 17:43:17ID:???
ん?
missing controllerとかmissing viewとか書いてない?
このページを編集するにはこういうファイルをAPPに作れって書いてない?
0837nobodyさん2011/02/04(金) 17:49:00ID:???
>>834
俺の場合は、AppErrorを作ってやっている
0838nobodyさん2011/02/04(金) 17:51:13ID:???
>>836
書いてないです
layoutsが中途半端に反映されたページの残骸みたいなものが出てきて、
ソースを見るとCakeのクレジットのコメント部分が出ていて、Cakeだとわかります
cake/libs/error.php内でvar_dumpするとmissingControllerと出てきます

>>837
それでやってみます
0839nobodyさん2011/02/04(金) 20:02:31ID:???
>>838
404にもctpファイルがあるんだぜ
作ってなければデフォルトなんだぜ
0840nobodyさん2011/02/04(金) 22:39:54ID:???
DBクエリ情報のTookで一部、259(ms)とか物凄く時間がかかっている
クエリがあるんだけど、インデックスも指定してあるし、特におかしなSQLでもない。

体感的にもそれほど長い時間待たされている感じはないんだけど、
クエリ情報が間違っているのかな?
0841nobodyさん2011/02/04(金) 22:46:59ID:???
スレチってことも分からんのか?
0842nobodyさん2011/02/04(金) 23:00:23ID:???
Cakeで出力されるクエリ情報が正しいか否かの質問なんですが、
スレチなんですね。わかりました。
0843nobodyさん2011/02/04(金) 23:14:40ID:???
お魔のその質問でクエリがただしいかどうかどうやって解決するんだ?
自分で発行されたクエリ調べて、正しいか読んでろ
質問あるならそのクエリもってSQLの質問受け付けてるようなところ行って来いよ
嫌ならすぐ死ね
0844nobodyさん2011/02/04(金) 23:18:30ID:???
クエリ情報ってSQLから引っ張ったの直接表示してるだろ。どう間違えるの
0845nobodyさん2011/02/04(金) 23:40:18ID:???
cake通さないで実行時間計測してみればいいのに
1000msとかならともかく259msなら、体感差はそこまではっきりとは出ないだろうし
0846nobodyさん2011/02/05(土) 00:22:01ID:???
この際、実際のSQLはどうだって良いんだよ。
phpMyAdminとかで実行しても259msもかかんないんだし。

それよりも、「Cakeのクエリ情報は正しいのか?」という
ただ1点のみの問いかけなんです。
0847nobodyさん2011/02/05(土) 00:25:25ID:???
し ら ね ー よ

ソース嫁
0848nobodyさん2011/02/05(土) 00:36:53ID:???
>>846
CakeのログではかれたSQLをそのまま実行したら、キャッシュの結果を返さないか?
0849nobodyさん2011/02/05(土) 05:01:31ID:???
最近のRDBMSは優秀だからね。
直近のSQLの結果は、キャッシュされる可能性があるね
0850akiyan2011/02/05(土) 10:50:42ID:???
いやクエリキャッシュは明示的に設定してやらないと発動しませんから
いい加減なこと書いて初心者を惑わせるのはどうかと
0851nobodyさん2011/02/05(土) 11:27:12ID:???
>>850
自分の環境を理解してないほうが悪い。
0852nobodyさん2011/02/05(土) 12:13:48ID:???
authComponentで強制的にログイン画面に
リダイレクトされるのを防ぐにはどうしたらいいですか?

非ログイン状態だと右上にずっとログイン用のフォームが出てる
イメージです
0853nobodyさん2011/02/05(土) 12:53:42ID:???
そのページをallowにしてやらんと。
てか根本的に理解が足らんと思うわ
マニュアルやチュート何度も読み返してこい
0854nobodyさん2011/02/05(土) 13:01:50ID:???
$this->Auth->allow('*');
でいけたわ
必要なアクションのみdenyで登録ってことか
0855nobodyさん2011/02/05(土) 13:20:32ID:???
聞くなしらべろ
0856nobodyさん2011/02/05(土) 13:58:50ID:???
うるせえ。偉そうすぎるんだよ
0857nobodyさん2011/02/05(土) 14:29:17ID:???
cakeスレなのにみんな辛口だよな
0858akiyan2011/02/05(土) 15:24:41ID:???
>>851
RDBMSが優秀だからクエリキャッシュするなんて見当違いも甚だしいレスをつけておいて責任転嫁はいかがなものかと
0859akiyan2011/02/05(土) 15:30:22ID:???
曖昧な知識で適当なアドバイスするくらいなら、何もしない方がマシですよ
0860nobodyさん2011/02/05(土) 15:40:40ID:???
akiyanの名前を騙って書き込むくらいなら、何もしない方がマシですよ
0861nobodyさん2011/02/05(土) 16:37:26ID:???
切羽詰まりすぎな人が多いから、イライラしている人が多いと思う
0862nobodyさん2011/02/05(土) 16:43:50ID:???
違う。わからないくせに質問者を恫喝するから荒れるんだよ。
分かっている人はきちんと答えてるし。
0863nobodyさん2011/02/06(日) 04:12:11ID:???
ググるときに1年以内とか絞りこむとだいぶ1.2の情報消えるな
0864nobodyさん2011/02/06(日) 07:22:03ID:???
期間指定ってかなり便利だよな。サイドバーも使いやすいし
0865akiyan2011/02/06(日) 15:01:09ID:???
>>862
同感です
全体的に口調が荒すぎてスレの雰囲気悪くなってますよね
0866nobodyさん2011/02/06(日) 16:41:08ID:???
他のスレでもいるけど、1人の粘着が荒らしてるだけだけどね。
0867nobodyさん2011/02/06(日) 17:11:49ID:???
お前らまだこんなの使ってたのかw
0868akiyan2011/02/06(日) 17:18:07ID:???
使ってないならこのスレ来なきゃいいのに
0869nobodyさん2011/02/06(日) 20:49:55ID:???
気になって仕方ないんだろうなw
0870nobodyさん2011/02/06(日) 21:39:44ID:???
app\vendors\thumbnail.php

APP::import('Vender','Thumbnail');
$Thumbnail = new Thumbnail();

最新版です。
なぜ読み込めないのでしょうか?
0871nobodyさん2011/02/06(日) 21:47:28ID:???
app\vendors\thumbnail.php

APP::import('Vender','thumbnail');
$Thumbnail = new Thumbnail();


なんだ小文字にするのか、、、、

こういう所が腐ってるところ
複数形とかウザすぎ
0872nobodyさん2011/02/06(日) 21:51:21ID:???
違った。終わってるね。
0873nobodyさん2011/02/06(日) 21:58:42ID:???
Vendor
Vender
お前酷いな
0874akiyan2011/02/06(日) 23:25:34ID:???
>>871
webフレームワークの潮流も知らないでよくそんな偉そうな事言えますね
Railsとか勉強されてはどうですか?
自分の知識の無さを棚に上げてフレームワークのせいにするなんて幼稚園児の発想ですよ
どうせ自分の年収が低いのは日本経済の責任だとか愚痴ってるんでしょ新橋の立ち飲みやで
どうしようもない人間ですね カス クズ 人間のゴミ
0875nobodyさん2011/02/06(日) 23:28:07ID:???
まぁ落ち着け
できないやつは文句ばっかりなのは実感するところだけどさ。
0876nobodyさん2011/02/06(日) 23:30:24ID:???
>>874
何で自分のこと言ってるの?
0877nobodyさん2011/02/06(日) 23:51:46ID:???
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世紀エンジニアの魂だ
そして最後に
最愛の妻と友人、そしてペニーオークションに幸あれ
0878nobodyさん2011/02/07(月) 00:19:49ID:Y103Gns6
>>874
気にするなよ、Webの仕事では、
PHPを使う仕事ではPHP(CakePHP)を使うし、
Ruby使う仕事ではRuby(Rails)を使うでいいんじゃね。
書き方の細かなことはいいじゃねか、普通はCakePHPもRailsもどっちも使えるだろ。
0879nobodyさん2011/02/07(月) 00:32:57ID:???
モデルの仕組みが全くわからん
0880nobodyさん2011/02/07(月) 01:17:13ID:???
Cakeは便利だけど、そりゃだめなところもいっぱいあるさ。
好みの問題もあるけど、誰もが首をかしげるものもある。
Cakeは万能じゃない。

作りたい物が小規模で、Cakeを使ってて回りくどいと感じてるなら、
CodeIgnighterは良い選択肢かもしれない。
Cakeよりもっと厳格なスタイルで開発がしたいなら、
Symfonyを試してみると良いかもしれないぞ。
ZendFrameworkはシラネ
0881nobodyさん2011/02/07(月) 10:55:24ID:???
そこで俺はCakeの命名規則に沿った
オレオレフレームワークを作ったのだった
0882nobodyさん2011/02/07(月) 15:01:26ID:???
で、それをオープンソースにすると
0883nobodyさん2011/02/07(月) 15:32:20ID:???
どんなときにCakePHPで作ってどんなときにDrupalやxoopsなどのCMSでサイトを作りますか?
そこの判断基準を教えてください
0884nobodyさん2011/02/07(月) 16:13:13ID:???
吊るしでいいときはCMS
オーダーメードのときはCake
0885nobodyさん2011/02/07(月) 16:24:23ID:???
CMSで納得する客って今まで会った事無いな。
依頼時は「オープンソースでも結構です」とか言いつつ、
結局は、あれして・これしてってなるのが目に見えてるし。
0886nobodyさん2011/02/07(月) 18:15:12ID:???
まあそこを納得して頂くのがプロの営業マン
0887nobodyさん2011/02/07(月) 18:37:23ID:???
CMSのカスタマイズはCakeより面倒だからなぁ。
プラグイン・モジュールで対応できないなら、Cakeかな。
0888nobodyさん2011/02/07(月) 18:47:22ID:???
昔CakePHPで挫折してCIに移ったものです
CIはセッションがなんちゃらとPHP4とPHP5をサポートしているのが気に食わなくなりZend Frameworkの勉強を始めました
なんかやっぱりCakePHPってやっぱり難しいですね
0889nobodyさん2011/02/07(月) 19:31:03ID:???
だってなんだか♪だってだってなんだもん♪
0890nobodyさん2011/02/07(月) 19:32:01ID:???
cakephpの命名規則に従ってサイト作ると
URLがなにかイマイチな感じになる。
/items/
とか日本語の感覚だったら
/item/
になると思うんだけど
命名規則に従って作ってますか?
0891nobodyさん2011/02/07(月) 19:36:03ID:???
routes書けよ
0892nobodyさん2011/02/07(月) 19:42:35ID:???
Zend FrameworkではaaaBbbって書くとaaa-bbbでアクセスできる
0893nobodyさん2011/02/07(月) 20:08:31ID:???
>>890
そこは別にitemで良いじゃん。Cakeで変えられるんだし。
0894nobodyさん2011/02/07(月) 22:25:53ID:???
私はcakephpの勉強をするために参考になるサンプルを探しています。
1.3.x系ですでに出来上がっているECサイトの礎になるようなものは無いでしょうか?
分類マスタやアイテムの登録ができ、お買い物カート等のコンポーネントや二重登録防止
ajax時と通常時での認証やエラー出力が合理的に分離されているソースコードが見たいです。
BakeSaleはバージョンが古いようでした。
大変お手数ですが、どなたかご教示願います☆
0895nobodyさん2011/02/08(火) 01:35:20ID:???
Cakeって自動で不規則な複数形も面倒見てくれるの?
historiesとかchildrenとか
0896nobodyさん2011/02/08(火) 03:15:55ID:???
最後の1文字は余計だったと思うよ
0897nobodyさん2011/02/08(火) 03:27:28ID:???
>>895
正直そこまでやらんでもって思うが、特殊な複数形のやつとかは、
Inflectorクラスのプロパティに色々書いてあるぞ。
https://github.com/cakephp/cakephp/blob/master/cake/libs/inflector.php#L40
0898nobodyさん2011/02/08(火) 13:21:05ID:???
不規則な複数形は完全に英語ネイティブな人向けの機能だよね
personsでもいいじゃん!

とか思ってるから全然英語が上達しないんだろうか・・・
0899nobodyさん2011/02/08(火) 13:42:54ID:???
cakephpのcookbookはどうしてあんなに重いんですか?
0900nobodyさん2011/02/08(火) 13:56:14ID:???
ページ数が多い本だからかな
0901nobodyさん2011/02/08(火) 15:10:54ID:???
hasManyとbelongsToでアソシエーションしたテーブルのデータを1ページで複数レコードをsaveAllを使って一括更新しようとしています。

更新時に外部キーに設定したフィールドのレコードに空の値が送られてしまいます。
それ以外は正常に更新されています。

$form->hiddenで値を渡そうとしても、発行されているSQLの値は空になり、リレーションが壊れてしまいます。

どなたか回避策をご教授願います。
0902nobodyさん2011/02/08(火) 15:19:09ID:???
>>899
ほとんど静的ページなんだから、ビューキャッシュしたらいいのにな
0903nobodyさん2011/02/08(火) 15:31:21ID:???
>>901
formはとりあえず置いといて、
ShellでModelだけ扱うコード書いていけるか試す。
0904nobodyさん2011/02/08(火) 16:52:25ID:???
新しいCookbookはブラウザにキャッシュしてるよ
0905nobodyさん2011/02/08(火) 17:38:00ID:???
あほですわ
0906nobodyさん2011/02/08(火) 18:21:33ID:???
>>899
なんかクソ重いフレームワーク使ってるんじゃないかな
0907nobodyさん2011/02/08(火) 18:52:39ID:???
けしからんな
CakePHPで組み直してやれよ
0908nobodyさん2011/02/08(火) 19:15:53ID:???
公式サイト重くてよく落ちてるよね。
Cakeはローカルで使えるヘルプを用意するべき。

ヘルプをオンラインでしか提供しないのは、googleの広告収入目当てなのかね。
せこいな・・・

>>906
本家のサイトが重いと「駄目なフレームワークなんだな」という印象を与える。


>>904
特定のサイトを明示的に永久キャッシュさせるのってどうやるの?
普通はキャッシュはいつの間にか消えちゃうと思うけど
0909nobodyさん2011/02/08(火) 19:46:17ID:???
駄目とまでは言わないけど、実際あまりよくできたフレームワークじゃないよね、これ
0910nobodyさん2011/02/08(火) 19:50:16ID:???
どのへんが?
0911nobodyさん2011/02/08(火) 20:15:12ID:???
てか、Cookbook新しくなって、めちゃくちゃ軽くなったぞ?
まえはページ切り替えるとそこそこ反応遅かったけど、
今は即切り替わる。
キャッシュされてないページはちょっともたつくけど、
2回目以降はほんとはやいぞ。
0912nobodyさん2011/02/08(火) 20:19:56ID:???
アホはだまっとけって↑
09138942011/02/08(火) 20:50:30ID:???
>>896大変失礼しました。
1.3系で作成されたECサイトのサンプルがありましたら、ぜひ教えてください。
0914nobodyさん2011/02/08(火) 21:47:30ID:???
>>911
ああだいぶ早くなった。俺が見たときはキャッシュクリア直後だったのかもな。
0915nobodyさん2011/02/09(水) 11:03:49ID:???
みなさんはページ数がどれくらいまでならCakePHPでサイト構築しますか?
0916nobodyさん2011/02/09(水) 11:50:06ID:???
ページ数ww
0917nobodyさん2011/02/09(水) 12:46:52ID:???
>>915
15ページくらいかな


皆さんに質問です
cakephpをものにしたら仕事に困らないですか?月給30万円も夢じゃない??
0918nobodyさん2011/02/09(水) 12:56:20ID:???
30万でいいの?
0919nobodyさん2011/02/09(水) 12:57:27ID:???
板違い
0920nobodyさん2011/02/09(水) 13:34:19ID:???
>>917
15ページでもシステム使わないかしょなら面倒じゃないか?

なにせアップロードする時はCakeのファイル数が多いから、
会社概要的な小規模サイトの場合、Cake使うのが煩わしいんだよな
0921nobodyさん2011/02/09(水) 13:59:41ID:???
CGIなら月給35万可能だにょ
0922nobodyさん2011/02/09(水) 19:27:04ID:???
cakephpとmysqlをモノにしたら

月給50マンは可能なはず
0923nobodyさん2011/02/09(水) 19:28:04ID:???
>>917
ほれ自信が付いたらやってごらん
ttp://hp.submit.ne.jp/request/detail/20329
0924nobodyさん2011/02/09(水) 20:24:52ID:???
>>923
何作るか具体的に書いてないところを見ると、奴隷が欲しいんだな
0925nobodyさん2011/02/09(水) 20:53:26ID:???
モノにしてる度合いにもよるけどなw
CakePHPより、MySQLの方にかなり精通してるなら、
高給もありえると思うが。
0926nobodyさん2011/02/09(水) 21:04:54ID:???
「精通」ってどの程度?
0927nobodyさん2011/02/09(水) 21:27:15ID:???
CakePHPは終わコン
0928nobodyさん2011/02/09(水) 21:32:26ID:???
ではCakePHPにとって替わるのは何かね?
0929nobodyさん2011/02/09(水) 22:51:31ID:???
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なしです。
0930nobodyさん2011/02/09(水) 22:52:34ID:???
お前、根本的に間違ってる
0931nobodyさん2011/02/09(水) 22:58:39ID:???
app配下にある画像をphp
0932nobodyさん2011/02/09(水) 23:31:22ID:???
errorというコントローラー名って使えないの?
アクセスしたらApacheが/var/www/errorにファイル取りにいって404になる
0933nobodyさん2011/02/10(木) 00:21:38ID:???
>>929 viewの出力やめれ
0934nobodyさん2011/02/10(木) 00:46:20ID:???
>>926
ボトルネックになっている問い合わせを調べて、SQLチューニング等で解決できるくらい
0935nobodyさん2011/02/10(木) 00:54:08ID:eN2QEGlj
>>930
間違っているなら、そこを指摘してあげないと。
0936nobodyさん2011/02/10(木) 01:07:36ID:???
>>934
それくらいだとMySQL触ったばっかでもやるからダメじゃないかな?
サービス担当したときにSQL全然わからないままググりながらやった覚えがある
0937nobodyさん2011/02/10(木) 01:19:17ID:???
Amazonやgoogleで高給貰いながらエンジニアやりたい

高卒未経験の俺でもCakePHPをモノにして
大器晩成なるかな?
0938akiyan2011/02/10(木) 01:33:01ID:???
>>937
無理ですね
googleは院卒が最低限
あなたみたいな人はペニーオークションで稼ぐといいよ
0939nobodyさん2011/02/10(木) 01:36:11ID:???
>>938
仮に僕がペニーオークションみたいなのをやって成功したらGoogleは雇ってくれますか?


ペニーオークションみたいな運営方法って違法にはなりませんか?
0940nobodyさん2011/02/10(木) 01:58:44ID:???
公式に現在置いてある1.3.6って
この脆弱性の問題はクリアしてんのかな?

http://co3k.org/diary/12
0941nobodyさん2011/02/10(木) 02:07:08ID:???
>>936
やると出来るは違うと思う。
まぁスレチだしそろそろやめる。
0942nobodyさん2011/02/10(木) 02:46:38ID:???
どなたか教えて頂けないでしょうか?
まず私についてですが、プログラム歴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を変更せず、ビューを作る等余分な事をせずに結合する方法を
ご教示ください。お願いします。
09439422011/02/10(木) 02:49:13ID:???
訂正です。
>「Auth」「User」と「Group」を結びつける事ができなかったので
>「users」と「groups」を結合したビュー用のモデル「Usergroup」を作成し、
>「User」のprimaryKeyを「group_cd」へ変更する事でできました。

「Auth」からfindメソッドで「User」と「Group」を結びつける事ができなかったので
「users」と「groups」を結合したビュー用のモデル「Usergroup」を作成し、
「Auth」のprimaryKeyを「user_cd」へ変更する事でできました。
0944nobodyさん2011/02/10(木) 04:12:27ID:???
うるさい黙れ
0945nobodyさん2011/02/10(木) 11:14:08ID:???
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')
09469452011/02/10(木) 12:09:02ID:???
自己解決しました
データベースファイルだけじゃなくてディレクトリにも書き込み権限を与えないとだめだったようです
失礼しました
0947nobodyさん2011/02/10(木) 18:33:29ID:???
ふと訪れた著作権ガン無視エロサイトのfaviconがcakeだった
それだけ
0948nobodyさん2011/02/11(金) 16:09:07ID:???
cakephpでwebサイトつくると時間かかるな
0949nobodyさん2011/02/11(金) 16:51:08ID:???
作った後のバグ修正などで、時間短縮できるはずさ
0950nobodyさん2011/02/11(金) 17:11:28ID:???
作るのはすぐできる。動かないんだよ。
0951nobodyさん2011/02/11(金) 18:01:22ID:???
まあがんばれw
0952nobodyさん2011/02/11(金) 18:34:58ID:???
>>948
水銀灯のように動き出すまでに時間がかかるんだよ
0953nobodyさん2011/02/11(金) 18:40:48ID:???
がんばるのは俺じゃなくて、Cakeの中の人だと思うんだが…
0954nobodyさん2011/02/11(金) 20:05:15ID:???
>>948
俺もそう感じるけど、Cakeは命名規則が決まってるから
無駄な部分(名前の付け方に悩む)が省けて精神的には良い
0955akiyan2011/02/11(金) 23:05:43ID:???
フレームワークの恩恵を受けられない人は何を使っても上手くいきませんよ
本質を学び直すことをお勧めします
0956akiyan2011/02/12(土) 03:15:14ID:???
フレームワークを使いこなすにはまずフレームワークに使われなくてはなりません

フレームワークの制約を受け入れ、なぜ制約があるのかその意味を考えて見てください

制約こそがフレームワークの価値でもあるのです
0957akiyan2011/02/12(土) 04:34:43ID:???
フレームワークけっしてみゅめのような道具だと思われないで女子いーー
0958nobodyさん2011/02/12(土) 05:11:03ID:???
フレームワーク依存して始めて見えてくる世界がある
太陽が眩しい世界だ
0959nobodyさん2011/02/12(土) 11:03:40ID:???
引き篭もりですか
0960nobodyさん2011/02/12(土) 12:06:14ID:???
太陽が黄色く見える世界だ
0961nobodyさん2011/02/12(土) 15:07:18ID:???
CakePHP使ってる超大手サイトって
佐川急便、ペニオク、他に何かある?
0962nobodyさん2011/02/12(土) 15:30:18ID:???
ペニオクって超大手サイトなのか?

Mozilla Addons。
ソーシャルゲームでも、CakePHP使ってるところはあったな。
普通のサイトとは桁違いのPV数を捌いている。
CakePHPがそこに貢献してるかどうかはわからんけど。

あとここにいくつか書かれてる。超大手に入るのかしらんけど。
http://d.hatena.ne.jp/otome_pw/20110104/1294098484
0963nobodyさん2011/02/12(土) 15:34:17ID:???
CakePHP使ってることを隠蔽するメリットってあるの???

そして、どうして松田聖子は未だにあんなに可愛いの?ヤりたくなる可愛さ!
0964nobodyさん2011/02/12(土) 16:52:13ID:???
>>963
恥ずかしい
0965nobodyさん2011/02/12(土) 16:53:57ID:???
CIで作ってクッキー名をCAKEPHPにしてる
0966akiyan2011/02/12(土) 17:58:59ID:???
セキュリティのこと考えると隠遁したほうがいいよね
0967nobodyさん2011/02/12(土) 18:24:28ID:???
隠蔽しなくて被害を受けるなら、Cake使わなくて受けてるだろ。
0968akiyan2011/02/12(土) 21:12:13ID:???
え?ソフトウェア名を公開するとピンポイントで脆弱性を突かれる可能性が生まれるから極力隠遁したほうがいいという考えはおかしいですかね
0969nobodyさん2011/02/12(土) 22:55:35ID:???
でもさCakePHPで作ってるサイトだと、htmlソースみたらフィールド名が
hoge[Model名][Field名]って出てるから一目瞭然なんだけど?
0970nobodyさん2011/02/12(土) 22:59:51ID:???
Cookieは簡単に変えられるんだから変えとけ。そんは無い。
たけど、CakePHPは隠しにくいものだから諦めろ。
あと標準のfaviconも消せよ。
0971nobodyさん2011/02/13(日) 00:03:08ID:???
>>970
無知で申し訳ないんだけど、>>969を簡単に変えられるの?
フォームヘルパーやバリデーション使うの止めるとかじゃなくて?
0972nobodyさん2011/02/13(日) 00:19:00ID:???
>>971
無理
0973nobodyさん2011/02/13(日) 00:24:31ID:???
Cookieは簡単に変えられるんだから変えとけ
 を
CakePHPは簡単に変えられるんだから変えとけ

に読み違えていた・・・勘違いすまん
0974nobodyさん2011/02/13(日) 01:11:26ID:???
htmlソース覗くと参照先がが/cake/hoge/css/hoge.css

とかになってるから一発で分かるw
0975nobodyさん2011/02/13(日) 01:14:43ID:???
それはない。
0976nobodyさん2011/02/13(日) 01:16:31ID:???
は?
0977nobodyさん2011/02/13(日) 01:31:44ID:???
まぁ分かりやすい箇所ではあるけど、そのパスはねーよ
0978nobodyさん2011/02/13(日) 01:49:17ID:???
ソートのかかったリンク先とかも

hoge/list/page:1/sort:id/direction:asc

とかなるから、CakePHP坊やだと、すぐ分かるw
0979akiyan2011/02/13(日) 04:18:40ID:???
まあ隠せるものは隠したほうがいいね
たまにご丁寧にフッターにバージョンまで書いてるサイトがあって失笑しちゃう
0980nobodyさん2011/02/13(日) 06:30:29ID:???
>>979
まぁおまいさんの名前も失笑だけどな
0981nobodyさん2011/02/13(日) 18:18:43ID:???
-------------------------------------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は空っぽ
0982akiyan2011/02/13(日) 18:24:34ID:???
今perlやってますよ ちょっとはまったわ
0983nobodyさん2011/02/13(日) 18:27:40ID:???
ソートのひっくり返しのときの↓をもっとスマートにやる方法ないかなぁ

<?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');
}
?>
0984nobodyさん2011/02/13(日) 18:48:12ID:???
>>981
debugしてればページにSQLの結果出てると思うけどそれは行数0ではないわけ?

>>983
その部分だけ見たら最後の2行をif文の外に出せばいい気がするけどそれじゃダメなの?
0985nobodyさん2011/02/13(日) 18:50:16ID:???
@って何の意味だろうと思ったらエラー制御演算子か。
推奨されないってのを見て今まで使ったことなかったから一瞬perlのスレ見てたのかと勘違いした
0986nobodyさん2011/02/13(日) 21:11:41ID:???
>>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('.');
}
0987nobodyさん2011/02/13(日) 21:16:17ID:???
誰か頼む
kcaptchaの導入方法を懇切丁寧に教えてください。
コンポネントの作り方さえ、ままならないので手取り足取りでお願いします
0988akiyan2011/02/13(日) 22:55:32ID:???
さすがにそんな頼み方で教える人はいませんよ
0989nobodyさん2011/02/13(日) 23:02:37ID:???
zfからフレームワークに入ったんだけどcakephpってコントローラの設定が気持ち悪い
zfがpythonならcakephpはperlみたいな
0990nobodyさん2011/02/13(日) 23:42:01ID:???
質問させてください。

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でログインしているものとして、教えていただければ幸いです。
0991nobodyさん2011/02/14(月) 00:05:47ID:???
>>990
UserMessage じゃないかな。

一旦、findでUserデータを取得してそのIDが正しいか検査し、
問題なければ、setで渡せばいいんじゃないかな。
0992nobodyさん2011/02/14(月) 00:46:01ID:???
>>990 の現在の実装にはまるかわからんが、Cookbookにはこう言うのがある。
http://book.cakephp.org/ja/view/1046/Multiple-relations-to-the-same-model
以前は日本語訳があった気がするけど、なぜか英語になってた。
0993nobodyさん2011/02/14(月) 00:52:23ID:???
>>991
レスありがとうございます。
UserMessageへテーブル名を変更ということですか?user_idとidtoの二つのフィールド名は変更なしということでしょうか?


それとコントローラーからビューへのデータの受け渡しの件で、
user_idについてはビューで$dataで取り出せますが、
idtoにあたる1536(urlのパラメータ部分)を
取り出す方法ってありますか?

メッセージ送信時に渡すので、このidtoやuser_idはおそらくhiddenにするのでしょうか?(メール入力フォームではタイトルと本文だけ入力するものとして)

idtoの部分をphpの$_GET()を使わないで、cakephp独自の方法がありますでしょうか?
0994nobodyさん2011/02/14(月) 00:54:29ID:???
>>992
まさに、それですね(笑)
わざわざ、ありがとうございます!
0995nobodyさん2011/02/14(月) 00:59:42ID:???
基本中の基本だろクズども
0996nobodyさん2011/02/14(月) 01:37:32ID:???
等と供述しており・・・
0997nobodyさん2011/02/14(月) 01:43:36ID:???
ここで書くより先に手を動かして試せばいいのに。
0998nobodyさん2011/02/14(月) 02:07:22ID:???
もっともな話だけど、試した結果困ってる人とか、
試す前にどう書けば良いのか分からないって話もあるみたいだが?
0999nobodyさん2011/02/14(月) 02:18:17ID:???
↓こんな時間に1000とったやつはニートか明日遅刻
1000nobodyさん2011/02/14(月) 02:30:16ID:???
1000なら999が変わりに遅刻
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。