【PHP】フレームワーク CakePHP 4ホール目【v1.2】at PHP
【PHP】フレームワーク CakePHP 4ホール目【v1.2】 - 暇つぶし2ch646:nobodyさん
08/11/15 19:14:29
>>644
略語にされてる英単語に規則なんて無い
ただ長いものは略語にされてそれが広まってる
BBSの件はboardでもギリギリ分かるしそうするつもりだけど
他にもいくらでも略語はあるんだよね
CDでもDVDでも、ISBNでもISDNでもADSLでも
それらを非略語にする事に強い抵抗感があるんだがw

647:nobodyさん
08/11/15 19:19:38
OSを複数形にしてossなんて書いたらオープンソースかと思っちゃうな
AS,BS,CS,DS,ES,FS,GS,HS,,,,,,,,,,,,
いくらでもsで終わる略語があるんだが


648:nobodyさん
08/11/15 19:20:51
全て小文字と言う制約も手伝って最悪な事になってるなw

649:nobodyさん
08/11/15 19:25:32
略語じゃなくても末尾がsで終わる単語の複数形に正しく動作しない
URLリンク(www.cpa-lab.com)

bbses,bbs,bbss全てモデル名がおかしなことになる
aases,aas,aassでも同じだから

650:nobodyさん
08/11/15 20:51:02
どうでもいいがBBSのSってSystemのSだぞ
そもそも命名規約がおかしいっての

651:nobodyさん
08/11/15 20:52:05
ちなみにNewsは正しく使える
どちらもNewsのまま

652:nobodyさん
08/11/15 21:08:11
>>650
何が言いたいの?

653:nobodyさん
08/11/15 21:13:25
全部明示的にテーブル指定すればいいじゃん

654:nobodyさん
08/11/15 21:17:17
命名規約にルール追加は可能だけど
でもそれ本来は多言語対応や既存テーブルのためでしょ
新規テーブルで正しい英語の複数形つけて対応出来ないケースがあるのはおかしい

655:nobodyさん
08/11/15 21:23:48
最初の質問者じゃないけど・・

よく
foreach ($posts as $post) {
echo $post['Post']['title]
......

みたいのが出てくるけど、
BBSとかNEWSの場合はどうしてる?

無理やり
foreach ($newses as $news) {
......
とするのか、それとも
foreach ($news as $entry) {
......
みたいにするのか・・・

656:nobodyさん
08/11/15 21:34:41
そもそも、略語の複数形って一般的な英語にあるのか?
例が思いつかないのだが。

657:nobodyさん
08/11/15 22:01:06
CDs、OSsなんかは見かける。
一般的な英語では略語は普通大文字だが、
cakephpではテーブル名は全て小文字にしなきゃいけないからさあ大変

658:nobodyさん
08/11/15 22:02:35
単にテーブル名は大文字、ってすれば良かった気がするんだけどね
複数形部分のみ小文字で
CDs,OSs
PROGRAMMERs
WEBSITEs

これでよかったのに

659:nobodyさん
08/11/16 00:39:32
>>652
データベースにシステムを格納するかってことだろ?
格納するのはboardの情報とboardに書かれた記事(contentsやarticleみたいな)だろ
それを管理するシステムを総称してBBSになるんじゃないのか

660:nobodyさん
08/11/16 00:40:39
>>659
そんなのは問題じゃなくない?
ずれた事言ってるよね君

一般的に全ての場合において正しい設計をすれば
略語の複数形で困る事なんて無い、って言えるなら別だけどw

661:nobodyさん
08/11/16 00:40:50
>>657
cd_infomations
os_informations
格納するのはCDやOS自体ではなくそれに関する情報だろ

662:nobodyさん
08/11/16 00:43:43
>>661
頭悪い奴は黙ってろ
usersをuser_informationsとすべき理由なんて無い
cdやosの複数形に困るから苦し紛れでつけるに過ぎないだろ
情報機器であるサーバマシンのDBに入っているものが情報である事なんて明示する必要が無さ過ぎる


663:nobodyさん
08/11/16 00:45:51 l+j4XBOD
実装に困らない回避例出してくれてるのに、
英語原理主義にこだわってかみついてる奴ってなんなの?

664:nobodyさん
08/11/16 00:46:33
>>662
命名規約はフレームワークに合わせてねってだけのこと
嫌ならフレームワーク使うな

665:nobodyさん
08/11/16 00:47:15
あくまで苦し紛れの回避策でしかないのに
それがあたかも回避策ですら無くすべての命名はこう行うべきだというニュアンスで言ってるからだろ

666:nobodyさん
08/11/16 00:50:45
systemはDBに格納するものじゃないだの
全てのテーブルには末尾に_informationsをつけるべきだの(格納するのはそれ自体じゃなくて情報だもんね?wwww)
電波過ぎるだろ


667:nobodyさん
08/11/16 01:00:21
ものすごい曲解ですね

668:nobodyさん
08/11/16 01:07:42
_informationsとつけるのは回避策であって
>格納するのはCDやOS自体ではなくそれに関する情報だろ
この様に一般的な解釈のもと行う事じゃない

こんな苦肉の策をとらなきゃいけないのかという話なのに
さも当然の事のようにこんな事主張されてもw

669:nobodyさん
08/11/16 01:11:08
それがフレームワークの制約という奴です
嫌ならCakeやRoRの使用はお控えください

670:nobodyさん
08/11/16 01:14:58
実際問題開発の現場でも、フレームワークのここが自由にできないって
開発止める奴いるから仕方ないよ。

671:nobodyさん
08/11/16 01:16:59
別にこの回避策は既にやってるし良いんだが
これが一般的な解釈のもとやる事だと言われたら納得できるわけないだろwww
しかも数レス引っ張って何かすごい意見を持ってるのかと聞き出したらこれじゃあなw

672:nobodyさん
08/11/16 01:18:41
そうなんだ
そこまでDBの名前に拘るのって
神経質ではないの?

DBの名前の不自由さ>cakeを使うこと
って単純な話なの??

673:nobodyさん
08/11/16 01:21:00
いやお前の方が曲解だろwwww
そんな気になるならせいぜい100万回でも俺の文章読み直してろ低脳

674:nobodyさん
08/11/16 01:25:27
wを2個以上使った時点で議論は負けだ

675:nobodyさん
08/11/16 01:28:52
これを議論と捕らえてるのがおかしい
相手は何も主張してないし、俺はそいつがどれ程頭の悪い考え方をしてるのかを親切で教えてやりたいだけだからなww

676:nobodyさん
08/11/16 01:29:31
会ったら良い人なのに…(たぶん

677:nobodyさん
08/11/16 01:31:37
実際あったら>>670の部下だったとか

678:nobodyさん
08/11/16 03:47:10
命名の話題になっているので、聞きたいのですが、
watchlistとかguestbookのような場合、テーブル名は
やはり複数形にするのでしょうか?
ウォッチリストやゲストブックが複数あるわけではないので、
ちょっと違和感があるのですが・・・

それとも、上で話されていたように、
guestbook_entriesのようにするのが妥当でしょうか?

679:nobodyさん
08/11/16 04:24:01
どっちでもいいと思うが

680:nobodyさん
08/11/16 14:59:56
ポインタ(Pointer)の配列・・・
ポインタのポインタの配列・・・
ポインタのポインタの配列の配列・・・
ポインタの配列のポインタの配列・・・


681:nobodyさん
08/11/17 10:02:05
>>678
guestbook_をつけるかどうかは他モデルとのかぶり具合によるけど
entriesのようにするのが、適切でしょうな

foreach ($entries as $entry) ... みたいな

682:nobodyさん
08/11/18 01:37:43
ER図の作成ソフトどうしてる?
cakeの規約に揃うように設定できるものがみつからない

683:nobodyさん
08/11/18 13:09:08
ちなみにforeachの右側の命名は一律で良いと思います
変数はforeach宣言したときに初期化されるし
わざわざ命名する時間は省ける

foreach ($entries as $line)

foreach ($entries as $k => $v)



684:nobodyさん
08/11/18 17:07:52
まあそれでいいかもね
コード見る時はforeach見た時点で配列の順次処理なんだと分かるし

685:nobodyさん
08/11/19 00:26:30
2重以上のループの時は辛い
$v2とかすればいいのかもしれんが、階層に依存した名前は付けたくないな。

686:nobodyさん
08/11/19 00:41:14
関数化できそうだな
各階層用のコールバック関数の配列を引数に取って順次処理するような
内部では自分を再帰的に呼び出すようにしておけばforeach自体は一つで済む

687:nobodyさん
08/11/19 01:22:24
それは気持ち悪いというか美しくないとうか。
それにforeach外のローカル変数にアクセスできなくなるし。
手間という意味では本末転倒。

688:nobodyさん
08/11/19 02:21:00
foreachの中が長くなるようならちゃんと名前をつける。

コードを読むときに、foreachを含めて一塊で読むか
foreachの中だけを読むか。

短いコードならforeachも含めて一塊にして読むが
長ければ、ループする処理ってのはおいといて、
中身だけを取り出して読む。

塊の中で名前が適当でもわかるなら(つまり前者)省略してもいいが、
塊の中でいきなり$vとか出てきてもわからないだろう?(つまり後者)って
時はちゃんと名前をつける。

689:nobodyさん
08/11/19 12:31:25
そういや、ちょっと前にfindの話でメソッドをまとめるのがよいって話あったけど、
クラスのプロパティに代入するメソッドを作る場合、

setPramA($data);
setPramB($data);

とプロパティごとに作るより、

set('paramname',$data);

として一カ所にまとめたほうが幸せなんすか?

690:nobodyさん
08/11/20 05:51:48 /cM24YKo
find all で、フィールドのひとつを計算式含ませて、ASで名前をつけているのですが,
Doc.count *100 AS Doc__score
出力が
[0] => Array
(
[Doc] => Array
(
[id] => 6064
[title] => regulations
)
[0] => Array
(
[Doc__score] => 165.34334421158
)
)
のようになってしまいます。
どうにか[Doc]の配列に計算したscoreを含めるようにできないでしょうか?
cake1.2RC3, MYSQLです。

691:nobodyさん
08/11/20 09:46:38
>>690
Doc.count *100 AS Doc.score
じゃなかったっけか

692:nobodyさん
08/11/21 18:42:51
すみませんが、質問です。

cake bake で自動生成されるコードのインデントを、TABではなくて半角スペー
ス4つにしたいのですが、それを設定する方法があったら教えていただけないで
しょうか?


693:nobodyさん
08/11/21 18:52:01
>>692
scaffoldなら
cake/libs/view/scaffolds のファイルを書き換えたら良かったはず

bake も利用しているかもよ

694:693
08/11/21 19:00:30
>>692
cake/libs/templates/views
こっちかも

695:nobodyさん
08/11/21 20:32:03
>>633-694
ありがとうございます。自分でももっと調べてみます。

696:nobodyさん
08/11/22 16:36:33 qo4yapkz
auth compornent使いはじめたのですが、
暗号化されたパスワードを復号化する時って、どんなして処理してます?

697:nobodyさん
08/11/22 18:09:23
CakePHPのデフォルトってSHA256だろ?
だったら複合化は無理だろ
可逆暗号に変える必要があるが、セキュリティを落としてまで複合化する必要性ってなんだ?

698:696
08/11/22 18:25:21 qo4yapkz
>>697
ユーザ自身にパスワードの変更をさせたいのですが、
入力フォームのデフォルトに、復号化した値を入れたいなーと思ったんです。

699:nobodyさん
08/11/22 21:10:29
すみません、細かい質問なのですが、
controller.php のソースで、
$this->{$this->modelClass}
という記述がよく見つかります。

これは何をしているのでしょう?

そもそも、$this->{何か} という記述がどのような動作になるのか、わかりま
せん。教えていただけないでしょうか?


700:nobodyさん
08/11/22 21:13:10
ちょっと補足します。
$this->プロパティ名 なら、どういう動作かはもちろんわかります。
$this->{何か評価される式} というのが、どういう振る舞いをするのかわから
ないのです。

ためしにこんなことをしてみましたが、エラーになりました。
$x = "hoge";
$this->{$x}; // エラー


701:nobodyさん
08/11/22 21:19:42
マニュアルくらい読んでからやろうよ

702:nobodyさん
08/11/22 21:31:35
>>701
マニュアルとは、PHPマニュアルのことでしょうか?
一応見たのですが、該当箇所がわかりませんでした。
URLリンク(search.net-newbie.com)

ちなみにさっきの件は、少し不正確でした。$this だとうまく行きますが、そ
れを代入した変数だとうまく行きません。


class Test {
 ; ;var $hoge = 1;
 ; ;function fuga() {
 ; ; ; ;$x = "hoge";
 ; ; ; ;var_dump($this->$x);
 ; ;}
}
$test = new Test();
$test->fuga(); // int(1)

var_dump($test->"hoge"); // error

$thisだけ、プロパティ名自体を変数にできるようです。

703:nobodyさん
08/11/22 21:32:18
あ、余計な ; が入ってしまった…。

704:nobodyさん
08/11/22 21:32:34
単なる可変変数です

705:nobodyさん
08/11/22 21:38:19
>>704
可変変数って、$$x という風に、$が多重になっているものだと思うのですが…。
URLリンク(search.net-newbie.com)

>>702のコードには、$$ は一つもありません。

706:nobodyさん
08/11/22 21:42:30
$this->{$this->modelClass}
あるじゃん

707:nobodyさん
08/11/22 21:49:23
>>706
??すみませんが、おっしゃることがわかりません。
grep "$$" で一行も返ってこないのですが、それでも可変変数なのですか?

そして、もし単なる可変変数なのなら、

class Test {
  var $hoge = 1;
  function fuga() {
    $x = "hoge";
    var_dump($this->$x); //これはOK。
  }
}
$test = new Test();
$test->fuga();
$x = "hoge"
var_dump($test->$x); // これはNG.

こうなるのはなぜなのでしょう?


708:nobodyさん
08/11/22 21:52:16
{$this->modelClass}

この部分が可変なんだろ

709:nobodyさん
08/11/22 22:04:46
$$が書いてあれば可変か
字面しか理解できない阿呆の典型だな

710:nobodyさん
08/11/22 22:22:44
URLリンク(jp.php.net)
ここのnote欄に、膨大な試行錯誤が見つかりました。
可変変数には、undocumentedな振る舞いがたくさんあるようです。
どうやらこれが答えですね。

こういうundocumentedな挙動って、いつ廃止されるかわからないものでしょう
に、フレームワークに利用するとはすごい話だと思うんですが、考えてみたら
documentedな関数の振る舞いもPHPはしょっちゅう変わるんでしたっけ。


711:nobodyさん
08/11/22 22:25:32
うちらに聞かれても

712:nobodyさん
08/11/22 23:27:45
>>707
書き方も間違ってるし変数のスコープが分かってない。

コンストラクタやセッター的なもので
オブジェクトから見える場所に代入してないんだから
fugaメソッドを呼ぶまで、testインスタンスの中からは$xは見えない。


713:nobodyさん
08/11/22 23:46:37
初心者さんかもしれないけど、OKとNGだけでなく
何のエラーが出るのか、そのエラーは何が原因なのか、そのエラーの解決方法は何か
って辿っていくのがプログラミングのコツだよ

714:nobodyさん
08/11/23 03:34:16
>>698
何も入力してなかったら変更しない
してあったらそれに変更だろJK

715:696
08/11/23 04:48:20 l1Rm9lxO
>>714
うーん、まぁそうですね。
しかしAuth compornent使うと、パスワード一覧表とか表示するのも結構大変てことなんすかね

716:nobodyさん
08/11/23 05:06:33
どんだけセキュリティポリシー甘いんだよお前の会社は

717:nobodyさん
08/11/23 06:16:38
paginateでcurrent_date以前の物だけ表示みたいのってどうやるのかな?

array('hogehoge' => current_date)
array('hogehoge' => '日付')

みたいな感じだと `hogehoge` = `日付` みたいにしかならないよね?
current_dateはともかく日付指定でも不等号条件は使えないのかな?

718:696
08/11/23 06:19:23
>>716
いえ、仕事じゃないです。ていうか、このレベルでphpの仕事出来ないかと…
でもあれですね、こういうことは普通しないってことは解りましたです。

もし、やりたいなら入力時に別のカラムに生のパスワード入れる方法を思いつきましたので、
そうすることにします。皆さんお相手くださってありがとうございました。

719:nobodyさん
08/11/23 06:47:23
>>717
array('hogehoge <=' => current_date)

720:nobodyさん
08/11/23 07:45:49
>>719
ズバリです
ありがとうございます

('hogehoge' => '<= current_date')

とか最初やってて悩んじゃいました

721:nobodyさん
08/11/23 12:17:59
>>718
AuthComponentは、暗号化の方法を変えられるよ。
もし(セキュリティ的に問題なくて)、パスワードを可逆にしたいなら。
URLリンク(d.hatena.ne.jp)

722:nobodyさん
08/11/23 12:39:53
質問です。

Controller::paginate() の第一引数 $object が与えられなかった場合、
paginate()の戻り値は、controllerのデフォルトのmodelのインスタンスになる
と思うのですが、それって公式なドキュメントのどこに書いてあるのでしょうか?

APIドキュメントには、$object = null, と書いてあるだけで、実際nullだった場合の
paginate() の挙動については書かれていません。
URLリンク(api.cakephp.org)


723:nobodyさん
08/11/23 12:54:38
>>722
ソースはそうなってるね。
00882 } elseif (empty($object) || $object == null) {
00883 if (isset($this->{$this->modelClass})) {
00884 $object = $this->{$this->modelClass};
ドキュメントが必要?

724:nobodyさん
08/11/23 13:28:06
>>723
やっぱりソースを読むしかないのでしょうか?

> ドキュメントが必要?
あってほしいですね。ドキュメントに載ってない機能って、いつ廃止変更され
るかわからないから。



725:nobodyさん
08/11/23 17:29:12
ソースコード見れば、すぐにわかるんだから
詳細なドキュメントあってもなあ
該当記事を探すのに時間かかるし、英語だら翻訳とか余計手間だ



726:nobodyさん
08/11/23 17:30:39
>>712
> >>707
> 書き方も間違ってるし変数のスコープが分かってない。
>
> コンストラクタやセッター的なもので
> オブジェクトから見える場所に代入してないんだから
> fugaメソッドを呼ぶまで、testインスタンスの中からは$xは見えない。

別に間違っていないと思うのですが。

最終行の$xは、その一行前で定義されたグローバル変数です。
function fuga() の中で定義されているローカル変数とは
別のものです。

$y = "hoge"
var_dump($test->$y); // これはNG.

変数名を変えたら紛らわしくなかったかもしれません。

727:nobodyさん
08/11/23 17:34:04
>>726
クラスの初歩的な質問なら、スレが違う気がする。。。

728:nobodyさん
08/11/23 17:35:34
>>724
ドキュメントに載っていようが、RCの場合は変更されてもしょうがない。(事実findをはじめ変更多々あり)
paginateは、もう変更は無いだろうが

729:nobodyさん
08/11/23 17:37:43
>>726
該当と思われるスレ

【PHP】下らねぇ質問はID出して書き込みやがれ 76
スレリンク(php板)

PHPでOOP
スレリンク(php板)

730:nobodyさん
08/11/23 17:44:50
>>712氏への反論なのでここに書いたのですが、
確かにスレ違いなので、こちらに移りましょう。

【PHP】下らねぇ質問はID出して書き込みやがれ 76
スレリンク(php板)


731:nobodyさん
08/11/23 17:44:59
fuga内の$xはfugaの単なるローカル変数。Testのメンバ変数ではない。

732:nobodyさん
08/11/23 17:51:46
>>731
それはわかってますし、>>726でも「ローカル変数」って書いてます。
取り合えず>>730のスレにお越しください。


733:nobodyさん
08/11/23 18:08:06
喧嘩がしたかったようだね('A`)

734:nobodyさん
08/11/23 18:12:23
わざと喧嘩腰でデタラメ書いて、
顔真っ赤にした人が正解を書くのを釣るタイプ。

このタイプはもう飽きたよ。

735:nobodyさん
08/11/23 18:12:48
>>733
> 喧嘩がしたかったようだね('A`)

なんでそうなるのかぜんぜん理解できない。
誤解を訂正して誘導しただけじゃん。

736:nobodyさん
08/11/23 18:14:32
>>734
ぜんぜん釣りじゃないよ。
どこがデタラメなのか真剣に知りたいんだけど。


737:nobodyさん
08/11/24 17:47:59 V2OhDKFB
Cakeで開発されたアプリをUMLのシーケンス図などで記述するとどのように
書けるのか、サンプルをご存知のかたいませんか??

738:nobodyさん
08/11/24 18:21:36
CakeというかMVCモデルでさがしたほうがいいよ。

739:nobodyさん
08/11/24 23:29:29
シーケンス図なら考えるまでもないような気がしないでもない

740:nobodyさん
08/11/26 15:03:25
画像フォルダをアプリ毎に分けたくて、下記の様な構成でimgフォルダの下にフォルダを切ってファイルを置きました。
/cake/app/webroot/img/hoge/icon/aaa.gif

Viewではヘルパーを使って、$html->image('hoge/icon/aaa.gif', array('border' => 0))として呼んでいます。

これをPHP4が乗っているサーバー上で実行すると、画像が表示されず、
ソースを見てイメージタグのsrcに指定されているアドレスを直接叩くと下記のエラーが出てしまいます。
Missing Controller
Error: ImgController could not be found.

また元々/cake/app/webroot/img/にあった、cake.power.gifは正常に画像が表示され、
イメージタグのソースに表示されているアドレスを直接叩いても画像が表示されています。

ローカル環境では事情によりPHP5を使用しているのですが、こちらでは正常に表示されています。
PHP4だとこの画像管理方法は出来ないのでしょうか?それとも設定でしょうか?

741:740
08/11/26 15:17:25
書き忘れ。cakephpは1.2.0.7692 RC3です。

742:nobodyさん
08/11/26 16:03:06
>>740
htaccess は、正常に動作しているの?
webroot/img が存在するなら、index.phpに飛ばない(missing controllerにならない)

php4だと/img 以下にディレクトリを作れないということはないね。少なくとも

743:nobodyさん
08/11/26 16:09:19
>>740
追加
webroot/hoge が存在していなくても、missing controller にはなる
(ディレクトリ名のtypoとかも、あやしいかな)

744:nobodyさん
08/11/26 16:10:13
ごめん
webroot/img/hogeだった

745:740
08/11/26 16:30:50
>>742
htaccessは正常に動作していると思っています。
理由は、URLリンク(www.hogehoge.ne.jp)
だと正常にアクセス出来ているからです。
これをURLリンク(www.hogehoge.ne.jp)
にすると、Missing Controllerになるので、違う原因だと考えていました。

この考え方自体が変ですかね・・・。

.htaccessは元のファイルに下記の様にRewriteBaseを追加しています。
cake直下 RewriteBase /php/cake
cake/app直下 RewriteBase    /php/cake/app
cake/app/webroot直下 RewriteBase /php/cake/app/webroot

dispatchがPHP4だとうまく動かないのかと考えていましたが違うみたいですね。

後、typoはローカルで動作しているファイルを全てアップロードしているので無いと思います。
実際にFTPで確認しても間違ってなさそうでした。

746:740
08/11/26 16:46:48
すいません。分かりました。
ファイル名が全角なのがダメみたいでした。

$form->selectに画像入れたフォルダ配下のファイル名から拡張子を除いた物を表示させて
アイコンを選択させようと手抜きをしたのがダメでした。

ローカルで出来たのはWindowsだからですかね。(サーバーはLinux)

747:nobodyさん
08/11/26 16:51:43
>>745
やっぱりhtaccessっぽいね。
webroot直下のやつを見直すと幸せになれそうな気がする

RewriteBaseは必要なのかい?

748:740
08/11/26 17:36:45
>>747
ありがとうございます。
調べてみて、webroot直下のhtaccessに、下記を追加することで、「Missing Controller」は出なくなりました。(404エラーになります)
RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$

原因はやっぱり日本語ファイル名で、これをffftpでアップロードしていたことだと思います。
UTF-8対応版のftpクライアントでアップロードすることで、正常にアクセス出来る様になりました。

RewriteBaseはググってみて、共有サーバーで使用する時の設定に書かれていたので無いとダメなのかと思って入れています。

749:nobodyさん
08/11/26 19:22:08
cakePHP1.1使ってるんですけど、
debugモードを0にしたらセッションが切れる!みたいな
現象に出くわした方っています?

750:nobodyさん
08/11/26 21:58:19
>>749
URLリンク(cakephp.jp)
これかな?

751:749
08/11/26 22:15:23
>>750
情報ありがとうございます。
うーん、securityはmediumでやってるんですよねぇ。なんなんだろう・・。

752:nobodyさん
08/11/27 12:33:29
>>751
セッションが切れるという症状を詳しく

753:nobodyさん
08/11/27 23:19:45
cakePHP を使いはじめたところで、さっそくどうしていいかわからなくて
困ってしまったんですが、

css を webroot/css 配下においた時、views/layouts/default.ctp で その css を読み込ませたい
のですが、これはヘルパを使うべきですか?

<link href="css/base.css" rel="stylesheet" type="text/css" />

こんな感じで直書きしてもよんでこないのですが、これは /css/base.css のように絶対パスで
書くべきなのか、ヘルパをかますべきなのか、はたまた何か設定がまずいのが
よくわかっていません。

アドバイスをお願いします。

754:nobodyさん
08/11/28 00:28:08 dURk+lTo
>753
>これは /css/base.css のように絶対パスで
試してみた?おそらく結果でわかるはず。

また、ヘルパ使うかどうかはどっちでもいいような。 個人的にはヘルパ使うけど。

755:nobodyさん
08/11/28 02:37:47
いつ1.2は製品版になるん?

756:nobodyさん
08/11/28 03:12:08 8hLcD3C8
1.1と、1.2の実行速度ってどう?

1.2が遅いので1.1を新規でも使ってる人はいる?

757:nobodyさん
08/11/28 03:16:26
1.2の方がはやいんじゃないの?
パフォーマンスの改善がメインでしょ1.2て

758:nobodyさん
08/11/28 03:17:57
これから作るところなんだけど
1.2がRCだから1.1つかってる


759:nobodyさん
08/11/28 03:40:07
cakephpってバージョンに依存しない確立されたバージョンアップ手順ってあるの?
このバージョンではこうする、とかじゃなくて
常にこうすれば確実にバージョンアップ出来るみたいな


760:nobodyさん
08/11/28 06:36:27
1.2の日本語マニュアルだけど
1.1のマニュアルに比べて日本語が変なところが多い
コピーしてきたらいいのにね

761:nobodyさん
08/11/28 14:02:15
CakePHPに限った話じゃないかもしれないのですが,
<?php e($html->css('my_css_1')); ?>
<?php e($html->css('my_css_2')); ?>

を出力した場合, HTMLソース上では改行されずに出力されます.
動作に支障はないとはいえ気持ち悪いので, 改行させたいのですが
何かよい方法はないでしょうか?

762:nobodyさん
08/11/28 14:54:05
>>761
間に空行を空ける
or
?>の横にTabを入れる

763:nobodyさん
08/11/28 16:02:50
Windows vista に XAMPP をインストールして cakephp の稼動環境を作りました。
1つうまくいかない事がありますのでご教示頂けるとうれしいのです。
mod_rewrite は有効にし、.htaccess も設定しました。

/htdocs/test/ 配下を環境とします。
/htdocs/test/app/webroot/js/ にいくつか javascript を入れました。
/htdocs/test/app/views/layouts/post.ctp を作り、その中で、

<script src="js/hoge/hoge.js" type="text/javascript"></script>

のような記述がしてあります。

次に post という、コントローラ、ビュー、モデルが作ってある状態で、
post_controller.php には var $layout ="post"; としてあります。

ここで、
URLリンク(localhost) にアクセスすると、apache の accesslog に、

"GET /test/post/js/hoge/hoge.js HTTP/1.1" 200

とログが残ります。

どのように webroot/js/ の中身を参照すればいいでしょうか?


764:nobodyさん
08/11/28 16:12:45
>>763
10個前のレスと同じじゃんね。
俺ならヘルパー使うけど。vendorsに突っ込んだJSとかCSSも読んでくれるし。

765:nobodyさん
08/11/28 16:30:47
>>763
app/views/layouts/default.ctp を読みましょう。

766:763
08/11/28 16:36:33
>>764
そうか、css も javascript も同じ考え方なんですね。10個前のレスが同じ
問題だと理解できていませんでした。

さっそくヘルパーを調べ、使ってみました。意図したように動作しました。
ありがとうございます。

1つ不安な所があるのでちゃんと理解したいと思うのですが、
layouts や elements の中にある .ctp などで、javascript のヘルパーを使った場合、

それを呼び出す全てのコントローラーに、

var $helpers = array('Html', 'Javascript');

の記述を行なう、という事であっていますでしょうか?




767:nobodyさん
08/11/28 17:46:08
>>766
app_controller.php に記述すれば全controllerで読み込まれる
'Html'は指定せずとも読み込まれる

768:nobodyさん
08/11/28 23:02:30
cakephpってなれてくると vendor 使わないよね。
最初の頃使いまくってたけど最近全然使わなくなった。

その代わりコンポーネントを使うようになってく。

769:nobodyさん
08/11/29 13:54:28
そのうち、モデルとビヘイビアが多くなっていくよw

770:nobodyさん
08/11/30 23:56:45
1.2RC3

class HogeController extends AppController {
 var $name = 'Hoge';
 var $uses = array("Fuga","Hage");
のようにコントローラと違うモデルを指定して

function index() {
 $this->set('data', $this->paginate("Fuga"));
}
とやるとページングが使えなくなってしまうのは仕様なんでしょうか…

771:nobodyさん
08/12/01 00:30:15
訂正
コントローラと同じ名前のモデルでもなる所はなるな…
scaffoldで生成しなおした画面は大丈夫だからもう一回見てみるか

772:nobodyさん
08/12/01 00:51:17
自己解決
1ページ内でpaginateを2つ以上やると片方死ぬのね…

773:nobodyさん
08/12/01 15:03:11 uBVWzlfV
webrootに置いたphpファイルに、viewの結果を差し込む方法ってありますか?
別途DBのライブラリ使って直接DBから検索するのが一般的なんですかね

774:nobodyさん
08/12/01 15:38:36
>>773
file_get_contents()とかつかえばできるんじゃない?
部分的ならajaxで読み込むとか。

775:nobodyさん
08/12/01 17:08:02
>>773
質問の意味が理解できていないかもしれないけど、
Object にある requestAction メソッドはどう?

776:nobodyさん
08/12/01 18:58:54
>>773
通常はwebroot直下にオリジナルのphpファイルは置かない。
一般的には、DB読むようなファイルなら、pages以下に持ってくる。
(必要ならURL書き換えれば良いし)


777:nobodyさん
08/12/01 22:26:27
>>772
それ、なんだっけ。2つ以上つくれるよ。
実際俺つくったし。やり方忘れた。がんばれ。

778:nobodyさん
08/12/01 23:13:14
それ解説してるサイトってないから手順確立したらヒーローになれるな

779:nobodyさん
08/12/02 10:27:07
ビヘイビアって実際どうなの?
メール送信ビヘイビアってあるでしょ。
結局コントローラーで qbmailとか使わないといけないからさほど
メリットがないような気が。

英語だけならビヘイビアでいけるだろうが、日本語だからな。
文字化けが。。。

インクリメント・デクリメント以外の便利な使い道を師匠。教えて下さい。

780:nobodyさん
08/12/02 14:29:46
cakephpって世界で最も使われてるとか言うけど
結構下火だよね
関連開発しょぼいし
本家すら

781:nobodyさん
08/12/02 14:34:47
symfonyとcakephp使ったけど
cakephpはコード生成が弱すぎ
masterbakeやpowerbakeがあるけど本家開発に組み込まれてるわけじゃなく
バージョンアップ追いついて無いし
標準のbakeだとテーブル一つ毎にモデル作れとかフィールド一つ毎にバリデーション指定しろとかやってられん
機能少ない割にsymfonyより遅いし

782:nobodyさん
08/12/02 14:57:00
これはものすごい誤認識の方がいらっしゃいました

783:nobodyさん
08/12/02 19:51:38
>>781
こういうこと言いに来る時点でCakePHPを評価してるって思われるのにな。

784:nobodyさん
08/12/02 20:15:49
例えば新規作成を行なう add と、登録済みデータを修正する edit を
コントローラに用意するとき、view は、add と edit と2つのファイルを用意すると
思います。

ただ、add の時も edit の時も入力項目は同じで、ページ遷移後の状態が、
空白か、呼び出したデータが表示されているか?程度の差しかないような画面の時でも、
add, edit の view は用意しておくものでしょうか?

それとも、add と edit の両方をまかなえる view を作って、コードで処理させるほうが
いいのでしょうか?


785:nobodyさん
08/12/02 20:40:05
>>782
「僕すごい事知ってるよ」
じゃなくて具体的な例を出せ

>>783
言いに来てるのは既に仕事で使ってて使わざるを得ないからなのと
こういう事が書かれてれば最初から使わなかったってことだな

786:nobodyさん
08/12/02 21:19:32
そういう事は仕事場で提案してみればいいんじゃないかな。
確かに参考にはなるけど。

787:nobodyさん
08/12/02 21:55:16
>>784
たぶん1.2からだけど、bakeして吐き出されたviewは、editとaddを共通化している

それを知ってから、すべてのadd.ctpを削除した
admin_edit とかもすべて共通化したら、viewの数が激減してすっきりしたよ

788:nobodyさん
08/12/02 23:36:54
symfonyよりCake重いとか

789:784
08/12/02 23:43:37
>>787
情報ありがとうございます。1.2 を使っているので早速 bake してみましたが、
add, edit は別にはきだされました…。

1.2.0.7692 なので、最新だと思うのですが…。

790:nobodyさん
08/12/02 23:58:07
そういう意味じゃなくてaddとeditで吐き出されてるものはほぼ同じだから
どっちか消してどっちかだけ使えば?って話じゃないの?

791:nobodyさん
08/12/03 01:04:53 WkUpG3Q2
ベロベロベロベロオオオオオオオオオオオ
んんー、ほんのりオシッコの味がするよ!!


792:nobodyさん
08/12/03 01:06:12
誤爆った

793:nobodyさん
08/12/03 01:43:34 o3/nvN5X
俺がきたよ

URLリンク(f.hatena.ne.jp)

794:nobodyさん
08/12/03 01:45:36
また誤爆った

795:nobodyさん
08/12/03 09:35:31
>>789
あれ?そうなの?
と、思ったら、記憶違いでscaffold使ったときのことだったかも
/cake/libs/view/scaffolds にはadd.ctp無かったから(rc3で確認)

でも、どっちか消したほうがオススメなのは確か
$form-> create , input は共通で使えるだろうから

796:nobodyさん
08/12/03 13:24:13
cakephpってfkのインデックスの名前にも規約ある?

797:nobodyさん
08/12/03 13:45:22
id

798:nobodyさん
08/12/03 13:48:04
それはフィールド名じゃなくインデックスの名前もってこと?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch