【PHP】フレームワーク CakePHP 6ホール目【v1.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/03/09(月) 10:55:37ID:3PTy4GqZ※sage推奨
※日本語マニュアルURLを貼るときは、http://book.cakephp.org/ja/view/1/ のようにしましょう(末尾のエンコードされたタイトル部分は不要)
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0577nobodyさん
2009/06/26(金) 02:57:40ID:???すいません!再起動、関係なかったです。
原因は↓でした。
http://www.mono-space.net/blog/php/e070405_insert_or_update.htm
上記レス(568〜)の修正によってURLのパラメーターが取れるようになったんですが
勝手にIDにセットされ、insertできなくなったのでした。
修正前に再起動していた為、apache/mysqlのせいだと思い込んでました。
0578nobodyさん
2009/06/26(金) 11:22:44ID:???排他でselect maxか、同一トラン内でしか取得出来んだろ。
0579nobodyさん
2009/06/26(金) 11:22:52ID:LY+hfClRとやると実際のflash画面には$idが抜けてしまいます。
>>568さんに近いような気もするんですが、
$idをflashに渡すにはどうすれば良いですか?
0581nobodyさん
2009/06/26(金) 16:53:48ID:???flashに変数を渡そうとしたことが無い。
発想を変えてみては?何で渡したいのか知らんけど。
$this->flash($id . 'さんは unko をたっぷりしました', 'add');
これでflashのメッセージには $id が渡る。
flashを抜けた先でさらに id を使いたい場合は
$this->flash($id . 'さんは unko をたっぷりしました', 'add/'.$id);
で、いいんじゃないの。
0583nobodyさん
2009/06/26(金) 22:19:28ID:???0584nobodyさん
2009/06/27(土) 19:00:54ID:CJ8L5rCqビュー内の関数内でヘルパーが呼び出す方法がわかりません。
たとえば、
function foo() {
return $html->link("hoge", "hoge");
}
のようにすると、$html が無いと怒られてしまいます。
global $html;
のように宣言しても駄目みたいです・・。
ビュー内に直接記述すると、正しく機能してくれるので、宣言忘れということは無いと思います。
どなたか解決策をご存知の方、ご教授いただけないでしょうか。
0585nobodyさん
2009/06/27(土) 19:57:02ID:???var $helpers = array('Html');
function foo() {
return $this->Html->link("hoge", "hoge");
}
0586nobodyさん
2009/06/27(土) 20:00:04ID:???Helper内と勘違いした。ごめん
View内で関数つかうのなら、Helperにしたほうがよくないかい?
テンプレート内に関数いれるとなると、MVCの役割的にもよくないと思う。
0587nobodyさん
2009/06/27(土) 21:19:31ID:???>>586にあるとおり独自のHelperを作成してください。
そのなかで$helpers=array('Html')とでもやっておけば$this->Html->link()などと使えます。
0588584
2009/06/27(土) 22:07:39ID:CJ8L5rCq>>587
丁寧なご説明ありがとうございます。
$rss ヘルパーに、$rss->items($data, "a_function_name") というアイテムの一覧を出力するメソッドがあるのですが、この 2 番目の引数がグローバル関数の名前を取る仕様になっているのです。
$rss->items の第 2 変数にヘルパーのメソッドが渡せれば解決するのですが・・・;
0589nobodyさん
2009/06/28(日) 11:43:08ID:???$rss->items($item, array( $hoge ,"fuga" ) )
とHogeヘルパーのfugaメソッドを渡せば行けるんじゃね?
0590nobodyさん
2009/07/01(水) 09:51:27ID:???こうかな?試してないけど
$rss->items($item, array( ClassRegistry::getObject('view')->getVar('hoge') ,"fuga" ) )
0591nobodyさん
2009/07/04(土) 12:39:33ID:???これでアクセスすると下記のようなエラーが出ます
何がおかしいんでしょうか?
Error: The view for PostsController::index() was not found.
Error: Confirm you have created the file: C:\xampp\htdocs\cakephp\app\views\posts\index.ctp
Notice: If you want to customize this error message, create app\views\errors\missing_view.ctp
0592nobodyさん
2009/07/04(土) 12:40:38ID:???失礼
0593nobodyさん
2009/07/04(土) 17:05:48ID:5YKVYrNe最低一つは選択ってどうかけばいいですか??
教えて!
UserとDinnerがあったとして、
users/add.ctpあたりで
> echo $form->input('Dinner',
> array(
> 'multiple' => 'checkbox',
> )
> );
こんな感じのときに、
一つも選択していなければエラーにしたい。
ルールは
> 'rule' => array('multiple', array('min' => 1))
これでいいのかな??
Userモデル?Dinnerモデル?
DinnersUser???
どこにどうかけばいーですか?
0594nobodyさん
2009/07/05(日) 10:58:08ID:???それはある
詰め込み世代の新人って指示待ちか出来もしない癖に勝手な事やって迷惑掛けてくれる奴かの両極端だった
ここ数年の奴らは、意外と使える
我々にしてもそうだったけど目で盗んで憶えるというか自分の頭で考えて言われなくても的確に動けるのが増えた気がする
日本人らしさが戻って来た感じ
0595nobodyさん
2009/07/06(月) 06:51:08ID:???例えばシェルが
Class hogeShell extends Shell {
function hoge($id) {
〜
としたときにコマンドを叩くときこの $id を渡したい。
0597nobodyさん
2009/07/06(月) 12:32:18ID:???Informations ってテーブル切って、bakeしたら「テーブルねぇぞ!」って怒られたら、調べてみたら Information で統一だった
自分の英語レベルの低さに悲しくなる...orz
0598nobodyさん
2009/07/06(月) 13:50:27ID:???つ ttp://teknoid.wordpress.com/2008/10/16/how-to-validate-habtm-data/
0599593
2009/07/06(月) 17:06:53ID:7VJoQdabありがとうございます。
う〜〜〜ん、なんかスッキリしない方法ですねやっぱり。
よくありそうな仕様なのに正攻法でないというか。。
そうも言ってられませんのでいただきましたURLのような実装でいこうと思います。
ありがとうございました
0600593
2009/07/06(月) 20:30:54ID:7VJoQdab>>598で教えていただいたので基本やりましたが、
独自メソッドを置く方法をとる必要もなかったので組み込みルールでやりました。
一応書いておきます。
UserとDinnerがあったとして、
users/add.ctpあたりで
> echo $form->input('Dinner',
> array(
> 'multiple' => 'checkbox',
> )
> );
のとき、
models/dinner.php
> var $validate = array(
> 'Dinner' => array(
> 'oneOrMore' => array(
> 'rule' => array('multiple', array('min' => 1)),
> ),
> ),
> );
0601593
2009/07/06(月) 20:35:20ID:7VJoQdabcontrollers/user_controller.php
> $flag = true;
>
> $this->User->create();
> $this->User->set($this->data);
> if (!$this->User->validates()) $flag = false;
>
> $this->User->Dinner->create();
> $this->User->Dinner->set($this->data);
> if (!$this->User->Dinner->validates()) $flag = false;
>
> // 上記以外もアソシエーションあればバリデートして
> // 全ての検証の結果flagがたっていれば保存する処理を以下に。
0603593
2009/07/06(月) 23:04:14ID:7VJoQdab詳しくおねげーします!!
0604nobodyさん
2009/07/06(月) 23:20:21ID:???$this->User->create();
$this->User->set($this->data);
$this->User->Dinner->set($this->data);
$this->User->Dinner->validates();
if ($this->User->saveAll()) $this->redirect();
でいけるはず。(validate=>firstが必要かもしれないけど)
アソシエーションされていれば関連モデルのvalidateは自動。
0605593
2009/07/06(月) 23:22:20ID:7VJoQdab> $this->User->create();
> $this->User->set($this->data);
>
> $this->User->Dinner->create();
> $this->User->Dinner->set($this->data);
> if (!$this->User->validates() && !$this->User->Dinner->validates()) {
> //保存処理
> }
とか外したことかいてたらレス頂いてたorz
>>603
そうなんですか!
ためしてみます
0607nobodyさん
2009/07/07(火) 00:15:37ID:CrPLCrV4saveAll()かける前に一ページはさんでて、
単にvalidateしてconfirmページ出すためにflag使ってたみたいです
validateAllとかあればいけそうなんだけど・・・
とりあえずありがとうございました。
0608nobodyさん
2009/07/07(火) 05:58:58ID:???0609nobodyさん
2009/07/07(火) 06:18:09ID:???0611nobodyさん
2009/07/07(火) 21:48:44ID:???BAKE楽しいっすね
自動でコード生成してくれるなんて最高〜〜
0612nobodyさん
2009/07/08(水) 06:42:23ID:???それに勘違いしてるヤツが多いけど、大昔はメモリも
少なくディスクも小さかつたから、フレームワークも
RDBもなかったけど、仕様より規約的な考えは汎用機の
世界でもあった。
ステップ数商売(笑)と勘違い野郎のOOP向けコーディングが
やたら複雑怪奇なソースコードを書く癖がついたと
個人的には見ている。
0613nobodyさん
2009/07/08(水) 20:34:12ID:???どうにもうまくいかないんだが…
0614nobodyさん
2009/07/08(水) 21:32:39ID:???0616nobodyさん
2009/07/09(木) 21:40:19ID:???フォーラム行ったらまさにおなじ質問してる人がいてそのサイトを参考にやりましたって言ってたなぁ。
htaccessの書き方もっと勉強しなきゃダメかー・・・
0617nobodyさん
2009/07/10(金) 03:41:10ID:???ふう。決まりだらけのフレームワークがいやになったので、
phpファイル一枚だけの俺俺フレームワークもどき作ったw
やってることは、どのディレクトリ上のどこから実行してもincludeするファイルが
見つからないとかでないように、ディレクトリ構造の基準を作ったことと、
ウェブから実行してもCLIで実行しても同じように引数が取れて
テストしやすくしたことだけ。
phpプログラミングでよくやる、http://www.example.com/aaa/bbb/ccc.php?a=1&b=2
というファイル名、ファイルパス、引数そのままでフレームワークもどきに簡単に移行可能
モデル無し。ビューは勝手にphpファイルでも呼べ。
もしほしくなったらそれがフレームワークを使うときだ。
0618nobodyさん
2009/07/10(金) 06:33:03ID:???0620nobodyさん
2009/07/10(金) 10:18:41ID:yJRQTl0bたぶんションベンみたいなフレームなんだろうね
0621nobodyさん
2009/07/10(金) 10:52:41ID:???日本語、、、いや思考が大丈夫かって気がするわなぁ
0623nobodyさん
2009/07/10(金) 15:49:27ID:???>>619
そのうちのどこかのサイトで公開されるかもしれないソフトで使われるよw
現在は自分で便利に使う用として作成中。
>>620
フレームって略すなw てかフレームワークじゃないし。でも特定のディレクトリ構造の
ファイルを呼び出すから一応フレームワーク扱いになるのかな?
>>622
CodeIgniterでもちぃでもデカイ。たとえば、ただのお問い合わせフォームごときで
あんな複数のファイルからなるフレームワークを入れる気になる?
かといって、お問い合わせフォームでもちゃんとエラーページやら
確認ページを作るとなると、(フレームワーク外のアプリの)ファイルが
複数になって面倒になってくる。テストもちゃんとやらないといけないしね。
(テストするのにブラウザは使いたくない。−>CLIで簡単に実行したい)
ということで、
データベース使わないし、こんなんフレームワーク使うまでも無い
→phpファイル直接呼出しでいいじゃん→意外とファイル増えてきた・・・
→でもやっぱりフレームワーク使うほどでもないんだよなぁ。
というときに、phpファイル直接呼出しから移行しやすい、偽フレームワーク作ったYO!w
0624nobodyさん
2009/07/10(金) 15:56:48ID:???> てかrails系のスレに来て「お決まりだらけ」がイヤて、
> 日本語、、、いや思考が大丈夫かって気がするわなぁ
ちなみに私は普段CakePHPを使用していますが、
それを使用するほど大きなプロジェクトではなく、
でも多少手のかかる物の場合に使えるフレームワークがほしい…
そんなときに使えるフレームワークを目指して作成しました。
0625nobodyさん
2009/07/10(金) 15:59:57ID:???公開すんの?なら早くみして
つーかそもそもスレち
0626622
2009/07/10(金) 16:02:01ID:???→なるなぁ。
とくに簡単であればあるほど自分でフレームワークを作るなんで無駄だもの。
しかも、俺様フレームワークの機能が足りなくて追加するのは
すでに CI が持っている機能だろうし。
CI でコマンドラインな PHPUnit も使えるよ。
0627nobodyさん
2009/07/10(金) 16:11:12ID:???ttp://cakephp.seesaa.net/article/123192243.html
0628nobodyさん
2009/07/10(金) 16:58:03ID:???そうなんだよなw
MVCの考え方とか、テンプレートだとか、規約とかそんなものを
追加していくと結局肥大化するんだよね。
0629nobodyさん
2009/07/10(金) 17:07:22ID:???なんか根本的に考え方が違うね。
例えば、phpinfo()を出すだけ程度のプログラムに
フレームワークを使う気になるかい?
0630nobodyさん
2009/07/10(金) 17:10:28ID:???それだとpurePhpでいーし
0633nobodyさん
2009/07/10(金) 17:24:44ID:???頭おかしいんじゃないか?
0634nobodyさん
2009/07/10(金) 17:27:17ID:???アプリの一部の機能としてのでバックモードか
開発中の確認か・・・・とかだろJK
phpinfo()をコンテンツとして公開したいんなら
>632の言うとおり他にもいろいろつくわけで
何が言いたいの?
0635nobodyさん
2009/07/10(金) 17:42:08ID:???0640nobodyさん
2009/07/10(金) 18:38:07ID:???0641nobodyさん
2009/07/11(土) 08:05:26ID:???自作とかやりたきゃくだすれにでも逝ってくれまいか
0642nobodyさん
2009/07/11(土) 13:04:06ID:???phpinfoってのは、その極端な例では?
どういうことをやり始めたらフレームワークを使うべき?
みんなはphpファイル数枚ですむようなことでも
フレームワークを使うの?
0643nobodyさん
2009/07/11(土) 13:06:56ID:???FWの自作なんて誰でも一度はやることなのに
0644nobodyさん
2009/07/11(土) 13:17:35ID:???phpファイル数枚ですむようなシステムを作る場合でも、本当にゼロから書く人間はいないだろう。
たとえば今まで作ったファイルをコピーしてベースにしたり、似たようなソースを探してきてそれをコピペしたり。
それも広義な意味でフレームワークだろう。結局トータルで見た工数でメリットかあるならフレームワークを
使えば良いし、Cakeが最適ならそれを使えばいい。
俺ならゼロから作るリスクを考えると、たとえリソース数が肥大したとしても何らかのフレームワークを使う。
0646nobodyさん
2009/07/12(日) 02:13:26ID:???0647nobodyさん
2009/07/12(日) 02:41:49ID:???ってスレ立てようか?
設計方針とかここが自慢とかの話題で楽しそうな気がしないでもない
0648nobodyさん
2009/07/12(日) 03:01:33ID:???のメニューのリンク切れは何とかならんのかね?
0649nobodyさん
2009/07/12(日) 03:10:32ID:???これとかだろ?
ところどころおかしいんだよね・・
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1958&forum=4&post_id=4798#forumpost4798
どこに報告したらいいのやら
0650nobodyさん
2009/07/12(日) 11:33:05ID:???>>647にスレでも作ってもらえって。
>>1 にな
>CakePHPは、Ruby on Railsの概念の多くを取り入れた、
>Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです。
てスレの趣旨が書いてあるだろ。
0651nobodyさん
2009/07/12(日) 12:57:28ID:???で紹介してもらったリンク先を参考にしてちょっと思いついたことがあったんで、あれからさらに修正していたよ。
コンセプトもだいぶ固まってきた。phpファイル単体で実行する古典的なスクリプトから
簡単に移行できるフレームワーク(そんな規模じゃないけど)
他のフレームワークがフルスタックなものばかりなので逆に、出来る限りなにも含めない。
移行する際は、既存のファイルを特定のディレクトリにそのまま入れるだけで動く。
実のところ、ちょっとした便利関数とディレクトリ構造とそのアクセス方法を決めただけに過ぎない。
で、今のところ、コアファイル1つ。.htaccessとindex.php、いくつかのディレクトリ(変更可能)
そしてオプション(無くても良い)で、設定ファイルとコアを拡張するためのファイルそれぞれ一つづつという
コメント入れて非圧縮時で15kbの俺俺フレームワークができた。(ためしにコメント削ったら10kb切った)
本当はフレームワーク作るのが目的じゃなくて、個人的なあるツールを作るのが目的なんで
そっちができたらフレームワーク公開を考えるよ。忘れたころにこっそりとw
0653nobodyさん
2009/07/12(日) 13:18:13ID:???なぁ、フレームワークについて語るスレがちゃんとあるんだぜ?
http://pc11.2ch.net/test/read.cgi/php/1237825268/
0654nobodyさん
2009/07/12(日) 16:48:33ID:???後でまた使おうとか思った時に、バグ放置のまま全然メンテされてなかったり、
フレームワークのプロジェクト自体が無くなってたり
特に個人で作ったようなのはそういうことが多いのね。
cakeがいいと思うのは、使ってる人数が多い分活発であるっていうこと。
自分の覚えた知識や時間をムダにしないためにもこれは重要なポイントだと思うよ。
0655nobodyさん
2009/07/12(日) 17:46:57ID:???コードそのものは普通のphpそのままんまで覚えることは
ほとんど無いから安心だよ。
ソースもわずか400行程度でおわりだしね。
0657nobodyさん
2009/07/12(日) 21:28:48ID:???覚えることはない?
それなに?何に役立つの
0658nobodyさん
2009/07/12(日) 21:46:38ID:???本当に迷惑だから、もう来るな。
ここはCakePHPの事を話し合うスレだ。
CakePHP以外の話は別のスレでやれ。
0659nobodyさん
2009/07/13(月) 00:00:22ID:???でやっとこさ自分でなんか形になるもんが出来て浮き足立ってるだけだろ。
これだからID無し板はダメなんだよ。透明アボーソできないじゃないか。
0660nobodyさん
2009/07/13(月) 01:39:20ID:???しっかり生きろよw
0661nobodyさん
2009/07/13(月) 02:28:04ID:???0662nobodyさん
2009/07/13(月) 03:23:51ID:???公開してないやんw
0663nobodyさん
2009/07/13(月) 13:11:15ID:???0665655
2009/07/13(月) 17:27:08ID:???phpinfo() を出すのに 350 行程度で済むようになりました。
CakePHP はもっとファイル数や行数あるよね?
0668nobodyさん
2009/07/13(月) 18:38:25ID:???3行でいけたよ。
<?
phpinfo();
?>
まぁ完全に出すだけだけど、無駄がない分動作が速い。
cakeだと重いでしょ?俺のはフレームワークじゃないから早いよ。
導入もファイル一枚だから楽チン。
やっぱ俺俺フレームワークすげぇわwww
0669668
2009/07/13(月) 18:40:27ID:???<?php phpinfo(); ?> の一行で済むようになった。
根本的に考え方が違う俺、最高。
0670nobodyさん
2009/07/13(月) 18:43:51ID:???ネタ化したから終了
Cakeの話題どぞ↓
0671nobodyさん
2009/07/13(月) 19:42:26ID:???膨らし粉入れた方が良い?
0672nobodyさん
2009/07/13(月) 20:12:37ID:???ttp://code.cakephp.org/cake3
0673nobodyさん
2009/07/13(月) 20:37:45ID:???PEARとか使うとたまにかぶる・・・
0674nobodyさん
2009/07/13(月) 21:12:18ID:???いや、冗談抜きでそれ動くわw
無理して動かすとか言う話じゃなく、
それでいい。
>>673
俺のはつけてるよ。
0675nobodyさん
2009/07/13(月) 21:21:00ID:???0676nobodyさん
2009/07/13(月) 21:21:48ID:???index.php
<?php
require_once('oreore_framework.php');
oreore_phpinfo();
?>
なぜこれで動くかというと、俺俺フレームワークで便利な関数をいろいろ作ってるから
まぁ全部はまだ公開しないから、該当箇所だけな
↓
oreore_framework.php
<?php
〜〜〜〜省略〜〜〜〜
function oreore_phpinfo() {
return phpinfo();
}
〜〜〜〜省略〜〜〜〜
?>
■ このスレッドは過去ログ倉庫に格納されています