【PHP】フレームワーク CakePHP
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/11/18(土) 20:53:22ID:???本家
http://www.cakephp.org/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
0002nobodyさん
2006/11/18(土) 20:58:37ID:???0003nobodyさん
2006/11/18(土) 22:48:32ID:???0005nobodyさん
2006/11/19(日) 10:59:04ID:???0006nobodyさん
2006/11/19(日) 13:27:36ID:EFwoFeZu下手するとsmartyより覚えることが少ない
慣れることは重要だが
00073
2006/11/19(日) 14:21:47ID:???0008nobodyさん
2006/11/19(日) 18:23:56ID:???0009nobodyさん
2006/11/19(日) 19:59:39ID:???Ruby on Railsに似てるんですよね?
エキスパートプログラマーの皆さん、ご質問への回答をよろしくお願い致します。<(_~_)>
0010nobodyさん
2006/11/19(日) 20:03:59ID:???↑シンホニーのスレタイ・・・なんだかな〜。orz
0011nobodyさん
2006/11/19(日) 20:04:39ID:???cakeはPHP4で且つどうしてもっていう理由がない限り世話になりたくないな
00133
2006/11/20(月) 11:04:26ID:???何度も言うがsmartyで挫折した俺様でも大丈夫でしょうか?
0014nobodyさん
2006/11/20(月) 12:17:58ID:???まずはこの通りにやってみる
00153
2006/11/22(水) 02:22:02ID:???そう、Hello Worldを表示するだけでいいんだよ。それを教えてくれ
0016nobodyさん
2006/11/22(水) 04:20:41ID:???サーバとCakeがしっかりインストールされているものとする。
1.app/config/database.php.default のファイル名をdatabase.phpに変える(10秒)
2.こうしてできたdatabase.phpをエディタで編集、とりあえずmysqlにつながるように設定(15秒)
3.app/views/pagesの下にhome.thtmlを作って、
中身はとりあえず<strong>3は極度に忍耐力の無いゆとり教育の犠牲者で精神疾患</strong>とする(20秒)
4.ブラウザで確認(5秒)
5.ちょっと抜けてるとこを修正(5秒)
6.もう一度ブラウザで確認(5秒)
はいできた。ちゃんと答えたんでやってくれ
00173
2006/11/22(水) 23:10:36ID:???ここにつまずいて1分オーバーした。
0020nobodyさん
2006/11/24(金) 03:26:44ID:???本物は俺様だけどもう名無しで潜伏するからバカにしないでくれ
0021nobodyさん
2006/11/27(月) 09:17:16ID:???mod_rewriteが悪いのかな?と思いつつ調べてみたら.htaccessのRewriteBaseを設定しないといけないと書いてあった。
/.htaccess
RewriteBase /cake_blog_tutorial
/app/.htaccess
RewriteBase /cake_blog_tutorial/app
/app/webroot/.htaccess
RewriteBase /cake_blog_tutorial/app/webroot
これで動作した。同じ事で初っ端から躓く人が居るかもしれないからここに書き残しておく。
(躓いたおかげでチュートリアルに1時間半かかったw)
参考:orihasam’s log
ttp://d.hatena.ne.jp/orihasam/20060809
0023nobodyさん
2006/11/29(水) 22:41:18ID:???0024nobodyさん
2006/11/30(木) 13:49:29ID:???database.phpにてdriverは、pear-drivernameとあったので
pear-ibaseとしてみたのですが、ファイルが見つからないとなります。
pearとすると、venderにDB.phpがないと怒られます。
PEARへのパスはinclude_pathにあり、他のスクリプトではPEARを利用できます。
(これがクリアできても、connectの書き方が不明なのですが・・・)
どなたかよろしくお願いします。
002521
2006/11/30(木) 14:42:13ID:???/trunk/cake/libs/dbo_factory.php
76 // special case for PEAR:DB -- driver name in the form of 'pear-drivername'
77 elseif (preg_match('#^pear[\-_](.*)$#i', $config['driver'], $res))
78 {
79 uses('dbo/dbo_pear');
80 $config['driver'] = $res[1];
81
82 $instance = array(new DBO_Pear($config));
83 }
/trunk/cake/libs/model/dbo_pear.php
62 function connect ($config)
63 {
64 $this->config = $config;
65
66 $dsn = $config['driver'].'://'.$config['login'].':'.$config['password'].'@'.$config['host'].'/'.$config['database'];
67 $options = array(
68 'debug' => DEBUG-1,
69 'portability' => DB_PORTABILITY_ALL,
70 );
71
72 $this->_pear =& DB::connect($dsn, $options);
73
74 return !(PEAR::isError($this->_pear));
75 }
うん、最近始めたばっかりでよく分かってないんだ。(趣味PGのFW初挑戦で手探り状態だし)
0026nobodyさん
2006/11/30(木) 16:05:16ID:???乙
左の行番号は手動で書き加えたんですか?
なんかツールとか使って、行番号を表示できるんですか?
便利なツールがあれば教えてください。
よろしく!
002721
2006/11/30(木) 16:16:08ID:???Classes で見たいクラスを選択すればメソッドとか継承関係が見れるし、そこから行番号付きのソースコードも見れて便利。
0028nobodyさん
2006/11/30(木) 16:48:52ID:???XAMPPでApacheとMySQL動かして、開発環境はPHP IDE使ってます。
>便利なツール
phpspotのPHPエディタのスタンドアロン版とかいいかも(PHPファイルを修正する時とかに愛用)
導入は簡単だし、行番号表示とかPHPの入力支援も付いてたりして、なかなか使いやすいですよ。
↓開発環境とかエディタに関しては以下のスレが参考になるかと
【ZendStudio】PHP統合開発環境 Part2【Eclipse】
http://pc8.2ch.net/test/read.cgi/php/1154082822/
PHPエディタって、どうよ?
http://pc8.2ch.net/test/read.cgi/php/1079460638/
>>23
明日から12月・・期待しておきますね。
0029nobodyさん
2006/11/30(木) 16:54:17ID:???最初 Windows XP + php-5.1.4 で http://p4life.jp/cake/ のアプリケーションを試したところ問題なく動きました。
次に環境を変えて Windows XP + php-4.4.4 としたところ
Notice: Undefined index: Item in C:\cake\cake\libs\view\templates\scaffolds\list.thtml on line 106
というエラーが発生して動かなくなりました。
http://manual.cakephp.org/chapter/intro には Compatibility with PHP4 and PHP5 とかいてあるのですが。。。
0031nobodyさん
2006/11/30(木) 17:37:35ID:???CakePHPはphp4でもphp5でも動きますよ。
原因はよく分からないけど、存在しない添え字で配列を読もうとしてエラー吐いてるみたいだから・・
Controllersでのsetを書き間違えてたりとかありそうだけど、そのまま打ってるのなら問題なく動作するような・・んー?
003324
2006/12/01(金) 18:04:24ID:???アドバイスありがとうございます。結論からいうと接続できていません。
PEARディレクトリを、vendersにコピーしました。
■driverにpearを指定すると
Your database configuration file is present.
Fatal error: Cannot instantiate non-existent class: dbopear in 'path to'\cake\libs\model\connection_manager.php on line 106
■driverにpear-ibaseを指定すると
Your database configuration file is present.
Fatal error: Unable to load DataSource file dbo\dbo_pear-ibase.php in 'path to'\cake\libs\model\connection_manager.php on line 153
です。該当行をみてみましたが、パッと見でわかるようなものじゃないので・・・。
connectについては、それ以前のようです。
どうしたものか・・・。
0034nobodyさん
2006/12/01(金) 18:20:27ID:???003524=33
2006/12/01(金) 23:38:28ID:???ibaseでいけません。
dbo以下にあるファイルを探しに行くので、使えそうなのは
adodb,mssql,mysql,mysqli,odbc,postgres,sqliteとpearっぽいです。
dbo_ibase.phpも書けそうに思えますが、
後々のことを考えpearで使いたいのです。
0036nobodyさん
2006/12/02(土) 04:38:50ID:???0038nobodyさん
2006/12/02(土) 13:58:45ID:???http://pc8.2ch.net/test/read.cgi/php/1133510693/
PHPで焼きそば作れますか? (28)
http://pc8.2ch.net/test/read.cgi/php/1164731497/
無理!!!
PHPでケーキ作れますか?
無理!!!
0039nobodyさん
2006/12/02(土) 14:09:23ID:???http://www-128.ibm.com/developerworks/edu/os-dw-os-php-cake1.html
004024=33
2006/12/02(土) 21:44:41ID:???3.A supported database engine (currently MySQL, PostgreSQL or using a wrapper around ADODB).
pearは実装できていないんですね。他のフレームワークをあたります。
0041nobodyさん
2006/12/02(土) 22:28:03ID:1bAtVRRj0044nobodyさん
2006/12/04(月) 11:00:42ID:???0046nobodyさん
2006/12/04(月) 18:02:51ID:???ということでは
004724
2006/12/05(火) 15:58:17ID:???■pearでの接続は実装されていないことを再確認しました。(cake_1.1.10.3825.zip)
cake/libs/model/dbo/dbo_pear.phpは、クラス名すら違っています。
(DBO_Pear、正しくは、DboPear)つまり、一度もテストすらされていないようです。
なぜそんなものをリリースに入れているのか不明です。文化の違いでしょうか。
クラス名を変更してもdsnが生成されません。disconnect()も「先にこっちを・・・」
といったメッセージの出力のみです。
■ADODB試してみました。Interbase,Firebirdではおそらくテーブル名、フィールド名
の規約で使えません。Interbase,Firebirdは、テーブル名とフィールド名は
大文字となります。
create table posts ...とするとPOSTSというテーブルが作成されます。
create table "posts" ...でpostsが作成されますが、
select * from posts だとテーブルPOSTSが対象となり、postsを対象に
するにはselect * from "posts"と"でくくらないといけません。
フィールド名も同じです。
そのため、チュートリアルは動作しないようです。
回避する方法もなさそうなので断念します。
004929
2006/12/07(木) 15:33:20ID:???http://p4life.jp/cake/
のアプリケーションはphp4でうごきませんでしたが、
ブログ作成チュートリアル
http://www.cakephp.jp/doc/blog_tutorial.html
はphp4で動きました!
Controllerの書き方を考える必要があったようですね。
0050nobodyさん
2006/12/12(火) 09:03:56ID:???modelのJoinで同一テーブルに対してhasAndBelongsToManyの関連を
複数設定した時に、scaffoldで生成した更新画面の関連表示が一つしか
出てくれない状態になってしまいます。
配列のキーはそれぞれのJoinTable名をつけてるので、キーを上書きしてる事は
ないと思うんですが、同様の現象を経験した方いらっしゃるでしょうか?
classNameが一緒だと駄目なのかなぁ・・・
0051nobodyさん
2006/12/14(木) 08:15:45ID:???1.1.9の段階ではDBO_Adodbはバグだらけだったよ。
使うならデータベースはMySQLかPostgreSQLにしておいたほうが無難。
0052nobodyさん
2006/12/14(木) 21:06:37ID:???自己レスです。
classNameを分けることで無事うまくいきました。
具体的な対応としては、対象テーブルを基底クラスとしてJoin毎に継承クラスを
ベタに作成してバインディングしたところ、期待した挙動になってくれました。
ん〜、いいフレームワークだ。
0053nobodyさん
2006/12/19(火) 17:04:45ID:???でアクセスしたときに静的なHTMLを表示させたいんですが、view などはどこに置けばいいのでしょう?
/app/config/core.php の
define('CAKE_ADMIN', 'admin');
はコメントをはずしてあります。
/app/views/pages/admin_home.thtml なるものを作成しましたが、以下のエラーが表示されました。
Missing controller
You are seeing this error because controller Controller could not be found.
Notice: If you want to customize this error message, create app\views/errors/missing_controller.thtml.
Fatal: Create the class below in file : app\controllers\controller.php
<?php
class Controller extends AppController {
var $name = '';
}
?>
0057nobodyさん
2007/01/11(木) 10:42:20ID:???レコードの追加・削除・編集を繰り返していると、
なぜか時々、追加したレコードの前に、「空のレコード」が
いくつか挿入されてることがあります。
これまで何度かあったのですが、うまく再現できないので、
MySQLの問題なのかCakeの方なのかの切り分けもできません・・・。
MySQLではフィールド 'id' をauto incrimentに設定してます。
(フィールド追加するときはauto incrimentにまかせてます)
どこからあたりをつけていけば良いのかのヒントでも
頂ければ助かります。
環境は
XAMPP
cake1.1.12.4205
です。
どうか、ご教示よろしくお願いします。
005857
2007/01/11(木) 10:43:37ID:???×auto incriment
でしたすんません・・・
005957
2007/01/15(月) 15:43:05ID:???デリートをPHPMyAdminでやってるから?関係ないか
0060nobodyさん
2007/01/26(金) 23:45:23ID:???もし、いたら伺いたいのですが結構バギーでしょうか?
CakePHP1.1で開発始めたのですが、メール機能等で欲しい機能が
充実しているので1.2をやっておいたほうがいいのか、と考えております。
よろしければ、現状での感想と1.2使ううえのアドバイスをお願い致します。
m( __ __ )m
0062nobodyさん
2007/01/27(土) 21:40:37ID:???貴重なアドバイス感謝です。
ドキュメントとか考えるとやはり1.1のいい感じですね。
ありがとうございましたw
他にも何かありましたら、ご教授お願い致します。
0063nobodyさん
2007/02/01(木) 09:23:03ID:???・cakePHPのキャッシングってどこからどこまでの動作を飛ばすのか
・view/elementsがviewとキャッシュの生存時間が違う場合キャッシュできない?
自前でしろってことかしらん
・view/layoutsでヘッダ部を動的に変えたい場合どうするんだろう。
css変えたいとかjsのライブラリをロードしたりしなかったりしたい
誰か知ってたら教えてプリーズ
0064nobodyさん
2007/02/01(木) 10:56:18ID:???>・cakePHPのキャッシングってどこからどこまでの動作を飛ばすのか
コントローラから吹っ飛ぶので、キャッシュファイルにはコントローラ生成のPHPが書いてある。
他はどっかにコードが落ちてそうな気がする。
0065nobodyさん
2007/02/01(木) 15:01:58ID:???適当に変数setしてそれ見ればいいんじゃないの?
0066nobodyさん
2007/02/06(火) 10:10:41ID:???サンクスです。
$title_for_layout、$content_for_layout
しか使えないのかと思ってた。
0067nobodyさん
2007/02/07(水) 06:36:38ID:???最初「ケークPHP」と読んでしまった。
0069nobodyさん
2007/02/07(水) 14:02:03ID:???だよね。俺まえも「エイジャックス」のこと「アジャックス」って読んでた前科モチだから・・・
「ペア」も「ピアー」って読んでたし・・・
0070nobodyさん
2007/02/08(木) 16:29:26ID:???0072nobodyさん
2007/02/08(木) 17:35:17ID:???0073nobodyさん
2007/02/08(木) 21:05:03ID:???いちおう下げて質問書いときます。
問題は、cakePHPでファイルアップロードが出来ない・・・
<input type="file" name="image" />
こんな感じでフツーにファイルを送信して、
$_FILESで参照してるんだけど、
cakePHPで実装すると$_FILESの値が空になります。
pr($this->rapams['form']);
では、
['image'] => hogehoge.jpg
とファイル名のみ参照できる模様で、ますます混乱するばかり。
なんか解決のヒントないですか
0074nobodyさん
2007/02/09(金) 09:21:40ID:???なわけないか
0075nobodyさん
2007/02/11(日) 08:17:38ID:???>>74 の言うとおり enctype="multipart/form-data" がないに一票。
0076nobodyさん
2007/02/26(月) 17:58:23ID:???1.テンプレートの方でファイル送信フォームのとこ
<?php echo $html->file('data[Hoge][image]', array('id' => 'hoge_image', 'size' => '40', 'value' => $hoges['Hoge']['image'], )) ?>
とする
2. $this->params['data']['Hoge']['image']['name']に名前が入ってるのと
$this->params['data']['Hoge']['image']['size']にサイズが入ってるのを確認する
3.
move_uploaded_file($this->params['data']['Hoge']['image']['tmp_name'], WWW_ROOT . "images/uploaded/". $this->params['data']['Hoge']['image']['name'])
ってな感じでどうよ
0077nobodyさん
2007/02/26(月) 22:12:58ID:???modelにhogeを追加しろってエラー出るんですが、、、Railsじゃできるんだけどなぁ
0078nobodyさん
2007/02/26(月) 22:49:28ID:???controller内に
var $uses=array();
とかやってみたらいけるんでないかい。ためしてないけど。
だめなら$useTable=array();なHogeモデルを作ったらいけるんでないかい。
ためしてないけど。
0079nobodyさん
2007/02/27(火) 00:36:01ID:???でうまくいきました!
ありがとうございます。
でも、なぜかうまくいったのかわからないので、具体的に教えてくれたらすごく嬉しいです。
0080nobodyさん
2007/02/27(火) 01:34:37ID:???78ではないが、
Hoge_ControllerはデフォルトでHogeというモデルを読み込もうとするから。
いわゆるひとつのconvention over configuration
0081nobodyさん
2007/02/27(火) 11:39:45ID:???ダミーとして、配列を無理矢理渡してあげるって幹事?
■ このスレッドは過去ログ倉庫に格納されています