【PHP】フレームワーク CakePHP 3ホール目【本命】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2008/03/14(金) 15:16:00ID:HF9x5ODX10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
CakePHP入門リンク集
ttp://pub.studio15.jp/2007/11/13/cakephp-links/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0896nobodyさん
2008/06/03(火) 22:05:07ID:7GPFTIgo0897nobodyさん
2008/06/03(火) 22:08:23ID:???0898nobodyさん
2008/06/04(水) 07:01:51ID:???Java系スクリプト言語Groovy
http://pc11.2ch.net/test/read.cgi/tech/1080052050/
0899nobodyさん
2008/06/04(水) 18:11:13ID:???0900899
2008/06/04(水) 18:17:38ID:???ちなみにフォルダ切り替えっぽいのは発見しました。
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=309&forum=12
0901nobodyさん
2008/06/04(水) 18:36:13ID:???0903nobodyさん
2008/06/05(木) 10:53:07ID:???0904nobodyさん
2008/06/05(木) 11:16:40ID:???0905nobodyさん
2008/06/05(木) 12:19:28ID:???まとめサイトきぼん
0906nobodyさん
2008/06/05(木) 12:22:58ID:???0907nobodyさん
2008/06/05(木) 19:52:47ID:GvsgA2Ue良い、IDE、エディタは、何ですか?
0908nobodyさん
2008/06/05(木) 20:39:37ID:???0909nobodyさん
2008/06/06(金) 09:50:14ID:???とりあえずeclipse触っとけば?
0910nobodyさん
2008/06/06(金) 09:54:17ID:???0911nobodyさん
2008/06/06(金) 15:12:33ID:ejUDGIWKarray_intersect_key()が使えないとかいうエラーで動きません。
PHP4の環境なので確かにそんな関数は無いんですけど、PHP5にするしか無いんでしょうか?
0912nobodyさん
2008/06/06(金) 15:34:17ID:???cake/basics.phpに書いてあるようだけど。
CakePHPはPHP4でもPHP5の関数が使えるように独自で互換関数を実装している。
それがbasics.phpに書いてあるわけだけど。バグかな?
本来はCakePHPはPHP4で動くはずだと思うけど、こういうものもある。
CakePHPに限らず、PHP4でPHP5の関数を使いたいとき便利。
PHP 4.xでPHP 5.2/6.0の機能を実現する互換キット
http://phpspot.org/blog/archives/2007/08/php_4xphp_5260.html
http://upgradephp.berlios.de/
話変わるけど、1.2 RCは1.2.0.7119が出た後で1.2.0.7125がでているので注意ね。
詳細読んで無いけど。ちょっとミスっていたっぽい?
0913nobodyさん
2008/06/06(金) 16:29:33ID:???どうもです。なるほどそういう仕組みなんですね。バージョンは7125でした。
console/cake.phpからbasics.phpは呼ばれてはいるのでパスの設定とかは問題ないようです。
とりあえず、cake.phpの中にfunction array_intersect_key()をコピーしたら動きましたけど、
何なんだろ。
0914nobodyさん
2008/06/06(金) 20:44:57ID:???console\cake.php
156行:追加 require_once( CORE_PATH . 'cake' . DS . 'basics.php');
226行:変更 if (!require($inc)) { -> if (!require_once($inc)) {
でとりあえずbakeが起動した。
0915nobodyさん
2008/06/06(金) 23:24:32ID:???0916nobodyさん
2008/06/07(土) 18:20:03ID:???テストはtest_suite_付とかで二重にテーブル定義必要じゃん。
めんどくせー。あっcake schemaってのがあるじゃんって
cake schema使ってテーブル作ろうと思ったら、
PostgreSQLはまだちゃんと実装されてないのな・・・(´・ω・`)ショボーン
かろうじてテーブルの作成は出来るみたいだけど、
データベースからschema.phpの生成でプライマリキーの取得がおかしいわ
alter table系が動かないわ。
0917nobodyさん
2008/06/09(月) 09:35:03ID:???0918nobodyさん
2008/06/09(月) 11:50:00ID:???テーブルの作成を何度もやるのって面倒なんだよね。
prefixが変わるとテーブル名も変わる。
テストではprefixが変わるから違うテーブルで再作成。
DBMSが変わるとcreate文も微妙に変わる。
0919nobodyさん
2008/06/10(火) 16:59:11ID:???今は
<?php echo $html->link('カテゴリー2', array('controller' => 'posts', 'action' => 'index', 'category:2')); ?>
のように書いているのですが・・・
0920nobodyさん
2008/06/11(水) 01:07:33ID:???0921nobodyさん
2008/06/11(水) 23:19:17ID:Ox0RFxzt<?php echo $html->link('カテゴリー2', '/posts/index/category:2') ?>
じゃ、ダメなの?
0922nobodyさん
2008/06/12(木) 10:51:48ID:???<?php echo $html->link('カテゴリー2', array('controller' => 'posts', 'action' => 'index', 'category'=>'2')); ?>
じゃ、ダメなの?
0923nobodyさん
2008/06/12(木) 13:48:51ID:UzdM2zrv仕事でMySQL使って納品したのに、
MySQLのライセンス料払ってないだろ o9m
0924nobodyさん
2008/06/12(木) 13:58:17ID:???特定のときだけ、
validateの特定のルールをスルーさせたい場合、
どのように指定すれば良いのでしょうか?
0925nobodyさん
2008/06/12(木) 14:10:17ID:???validateの特定のルールをスルー
}
0929nobodyさん
2008/06/13(金) 00:03:46ID:VdaxJKXn0930nobodyさん
2008/06/13(金) 03:03:15ID:???ttp://dev.mysql.com/doc/refman/4.1/ja/using-the-mysql-software-for-free-under-gpl.html
>MySQL データベースソフトウェアを Web サーバとともに使用する場合(提供する製品でない限り)、商用ライセンスは不要である。MySQL サーバを使用する市販の Web サーバを実行する場合も、同様である。
つまり、Webサーバにインストールして使ってるMySQLに対して、CakePHPで作ったWebアプリ動作させるなら、MySQLはGPLでいいんじゃねぇの。
ttp://www-jp.mysql.com/about/legal/licensing/foss-exception.html
で、FLOSS。MySQLは、X11ライセンスで使えるのでCakePHPも問題なく使えるんじゃないのかね。
ついでに、Webサービスの場合、バイナリを配布しているわけじゃないので、サービスを利用する人間に対して
ソースコードの公開義務は発生しないんじゃない、なんてのは各所で書かれてる期がするけど。
0931nobodyさん
2008/06/13(金) 03:09:01ID:???0932nobodyさん
2008/06/13(金) 03:17:58ID:???納品するところにはソースコード渡すね。
まぁ、ソースコードだし、見て改変するのは自由だけど、
その改変されたプログラムを保守/サポートするかしないかは、契約書とかで別途記載することになるんじゃねーの。
0934nobodyさん
2008/06/13(金) 06:06:54ID:???0935nobodyさん
2008/06/13(金) 07:18:43ID:n3lmnd89たとえば、
PostとTagがhasAndBelongsToManyの関係にあるとして、
各々のTagが、それぞれ何回使用されているかを調べたいのですが、
どのような処理が考えられますでしょうか?
つまり、posts_tagsテーブルをtag_idでGROUP BYしてCOUNT(*)したような結果がほしいのですが・・・
(わかりづらくてすみません・・・)
よろしくお願いします。
0936nobodyさん
2008/06/13(金) 11:35:00ID:AIRweHgSGPLライセンスだったらソースコードは無償で提供しなければいけないんですが。
0937nobodyさん
2008/06/13(金) 11:59:03ID:???1.2への対応は大丈夫なんだろうか?
だいぶ仕様かわってるけど・・・
0938nobodyさん
2008/06/13(金) 13:50:59ID:???PHPで作ったアプリ納品するときに、ソースコードを提供しろって
自分言っていることの意味わかっているか?
PHPはバイナリというものが無く、ソースコードそのものが
実行ファイル繩稚で、そもそもソースコードで
提供することしか出来ませんからw
ウェブサービスのように、バイナリ(=ソースコード)を
利用者に提供していないのなら、ウェブサービスの利用者に
ソースコードを提供する義務が無いのは常識。
それがいやってんで、GPLv3が出来たんだよ。MySQLはGPLv2な。
ちなみにGPLに”無償”で提供するという決まりは無い。
0940nobodyさん
2008/06/13(金) 20:06:46ID:???各コントローラのbeforeFilterで
$this->components = array('hogehoge');
のようにしても、すでにコンポーネントの処理が終了しているらしく、
意味がありませんでした。
このような場合、どういう処理を書けばよいのでしょうか?
0942940
2008/06/13(金) 21:19:57ID:???レスありがとうございます。
それは各々のコントローラ(app_controllerでない)の__constructでいいのでしょうか?
ためしにPostControllerで
function __construct() {
parent::__construct();
$this->components = array();
}
として、
$this->componentsを見ると、ちゃんと空になっているのですが、
その後、
function beforeFilter() {
parent::beforeFilter();
pr($this);
}
とすると、
var $componentsで指定したコンポーネントのインスタンスが生成されてしまっています。
どうしてでしょうか・・・?
よろしくお願いします。
0943nobodyさん
2008/06/13(金) 21:35:55ID:???MAMP (10.4)でsql5.0、php5
以下のメッセージが出ます。
index.ctpはシェルからもOSからも該当の場所に存在することを確認しています。
document routesは/Users/hoge/Sites/です。
同じようなトラブルがあったことがあれば教えてください。
Missing View
Error: The view for ItemsController::index() was not found.
Error: Confirm you have created the file: /Users/hoge/Sites/gotcha/app/views/items/index.ctp
Notice: If you want to customize this error message, create app/views/errors/missing_view.ctp
0944nobodyさん
2008/06/13(金) 21:37:33ID:???Cake1.2です。
テーブルはitems(フィールドはid,contentのみ)
コントローラはItemsControllerのみ
モデルはItemのみ
チュートリアルに沿ってやっています。
0945nobodyさん
2008/06/13(金) 21:49:56ID:???0947nobodyさん
2008/06/13(金) 22:13:10ID:???MacOSX君の優秀な"拡張子を表示しない"オプションのおかげで
"index.ctp.html" -> "index.ctp"と表示されていただけでした。
お騒がせしました。
0948nobodyさん
2008/06/14(土) 00:19:58ID:???0949nobodyさん
2008/06/14(土) 00:30:13ID:???たしか、CakePHPはすばらしくも(おせっかい?)
AppControllerで指定したComponentsの値と
そのサブクラスで指定したComponents値を
マージしているのです。
普通はサブクラスのComponentsの値のみ
有効と考えるのが普通ですが、なんとCakePHPは
AppControllerのComponentsを取得してあわせるのです。
0950nobodyさん
2008/06/14(土) 03:51:42ID:???>
> 試さずにレスしますが、1.2RCからは比較演算子はカラム名の方に付けるようになったんじゃないかと。
>
> $conds = array('id =' => $user_id);
えー。cake_1.2.0.6311-beta では前のままだよねぇ?
理由はなんとなくわかるが、すごい変更だw
0951nobodyさん
2008/06/14(土) 13:39:47ID:???ちょっとお尋ねしますけど、
/cake/libs/model/model.phpのgetColumnTypeメソッド(881行目付近から)で、
if (strpos($column, '.')) {
list($model, $column) = explode('.', $column);
}
if ($model != $this->alias && isset($this->{$model})) {
return $this->{$model}->getColumnType($column);
}
という部分がありますが、これだと$columnに'.'がない場合、$modelはNullのままですよね?
で、$modelがNullのまま if ($model != $this->alias && isset($this->{$model})) { を通ると、
$this->Null ってことになるからエラーになりますよね?
Cannot access empty propertyて叱られます。
これって私がおかしなことをしているから、
$modelがNullになってしまうんでしょうか?
普通にやっていれば$modelはNullにならない?
もしNullがありえるならisset($this->{$model})は、
isset($model)とするべきだと思うんですが…。
どうか教えてください。エロい殿方。。
0952nobodyさん
2008/06/14(土) 16:08:54ID:???データベースを使わないモデルで
$form->createを実行すると
Fatal error: Call to a member function schema() on a non-object in
〜cake\libs\view\helpers\form.php on line 127
というエラーが発生してしまうのですが、
なにか対処法はないでしょうか?
0953nobodyさん
2008/06/15(日) 02:05:22ID:???sample?foo=1&bar=2
ではなくて、
sample/foo:1/bar:2
のようにしたいのですが、
何かよい方法はないでしょうか?
0954953
2008/06/15(日) 02:20:24ID:???できればredirect以外の方法がいいです。
よろしくお願いします。
0955nobodyさん
2008/06/15(日) 03:23:38ID:???リダイレクトするしかないんじゃね?
?〜&〜 で送られるのはブラウザの仕様だからどうしようもないし。
いや、?〜&〜 で送られてきたのを /〜/〜で送られたように
アクションの引数に入れる方法もあるのか?
ややこしくなりそうだけど。
自分は、GETで?〜=〜とかがあれば、/〜/〜に変換してリダイレクトする
コンポーネントを作ってAppControllerに入れている。
あと個人的な趣味だけど URL に : を入れたくなかったので、
:の代わりに=を使っている。sample/foo=1/bar=2
0956954
2008/06/15(日) 06:49:31ID:???なるほど、、あれは仕様だったんですね。
コンポーネント化するというのはいいアイデアですね。
それから、たしかに、パラメータの区切り文字に「コロン」って見かけませんね。
Cake標準のpaginateのページ送り用パラメータは「コロン」で区切られますが、
あの区切り文字を変更する方法はありますか?
0957nobodyさん
2008/06/15(日) 08:35:39ID:???0958nobodyさん
2008/06/15(日) 21:04:05ID:???queryを打つしかないのでしょうか。
0959nobodyさん
2008/06/15(日) 21:05:34ID:???0960nobodyさん
2008/06/16(月) 09:21:00ID:???引数なしでfindAllしたら、ちゃんとモデルCの内容は取れるかい?
0961nobodyさん
2008/06/16(月) 10:22:21ID:1xj3bjFoなこたわかってるよ。
システム開発の仕事って、そのソースコードを売って儲けてるんだろ?
0962nobodyさん
2008/06/16(月) 16:03:58ID:???>システム開発の仕事って、そのソースコードを売って儲けてるんだろ?
だから、どうだと言うのかと・・
自分でちょっとは調べて考える頭が無いんだったら帰ってくれ
あとMYSQLのライセンスについて議論したいんだったらMYSQLスレ行けばいいかと、皆さん簡潔に答えてくださりますよ。
http://pc11.2ch.net/test/read.cgi/db/1213319883/
0963nobodyさん
2008/06/16(月) 19:05:51ID:???> システム開発の仕事って、そのソースコードを売って儲けてるんだろ?
そうとは限りません。MySQLはどうやって儲けていると思う?w
0964nobodyさん
2008/06/16(月) 21:07:51ID:???取れます。
findAllすると、まずCをSELECTし、そのあとAをCとJOINしてSELECTしているようです
0965nobodyさん
2008/06/16(月) 23:13:47ID:???0966nobodyさん
2008/06/17(火) 03:18:46ID:???0967nobodyさん
2008/06/17(火) 09:03:45ID:???Cが取れるならアソシエーション設定はクリアできてると思うけど、
「まずCをSELECTし、そのあとAをCとJOINしてSELECT」するのが妙?
ウチだと
SELECT (略) FROM [Aのテーブル名] WHERE `A`.id`=1 (略)
SELECT (略) FROM [Cのテーブル名] JOIN [Bのテーブル名] ON ((略))
A→B→Cの順になる。
一応初心に戻ってjoinテーブルと外部キーの命名規則の確認を。
http://cakephp.jp/doc/ch06s04.html#id4803164
あとはfindAllの引数でrecursiveを明示してみるとか?
0968nobodyさん
2008/06/17(火) 12:29:54ID:???CakePHPは、設置が簡単過ぎてワロタ。
でも、いい本が無いね。
0969nobodyさん
2008/06/17(火) 12:42:49ID:???,、-──────-、
/ `ヽ、
/● .● \
/ ⌒ ▼ ⌒ \
/ 彡 ∵人∵ ミ \
/ ミ ミ ,r-ト-、
,' f /⌒ヽ!
,' i L、-、ヽ\
0970nobodyさん
2008/06/17(火) 15:00:09ID:???これから勉強しようと思うけど正式版で仕様変わったら萎える
0971nobodyさん
2008/06/17(火) 15:08:04ID:???0972nobodyさん
2008/06/17(火) 15:28:14ID:???0973nobodyさん
2008/06/17(火) 16:08:37ID:???$this->requestActionでadmin routingにできなくなったんだけど
こういう仕様になっちゃったのかな
困った
0975nobodyさん
2008/06/17(火) 16:48:38ID:???完全に時期がおかしいよね。
・・・まぁ、予約したけどw
0976nobodyさん
2008/06/17(火) 20:26:43ID:???Model内の$displayFieldに$belongsToで設定した別テーブルのカラムを
設定するにはどういう風に記述すれば良いでしょうか?
0978nobodyさん
2008/06/17(火) 22:25:25ID:???これから新しい安定版が出るって時に、
わざわざ古い方の解説書は買いたくない。
本棚にあるPHP4関連の本は、もはや軒並み時代遅れ。
0979nobodyさん
2008/06/17(火) 22:43:58ID:???フレームワークのコードは、varに::みたいなPHP4ばかりだろ。本当に意図不明だけどな。どこにPHP4の需要があるのか訊いてみたい。
0980nobodyさん
2008/06/17(火) 22:59:30ID:???ちょっと古めのサーバとかのサービスの追加更新とか?
レン鯖でPHP4まだ使ってるところもあるからそういうのにも対応できるとか?
まぁ、フレームワークも海外産のものばかりだし、海外の事情はどんななってんのか分からないから、
なんともいえないんじゃ。
開発開始もPHP4のサポート切れる話が出る前だったから、互換考えて作ったんじゃないの。
ある程度下位互換するし。
バージョンの違いすらも柔軟に対応できるってのもフレームワークとして、コンセプトが間違ってるとは思わないなぁ。
0981nobodyさん
2008/06/17(火) 23:00:00ID:???0982nobodyさん
2008/06/18(水) 00:56:10ID:???>バージョンの違いすらも柔軟に対応できる
いや、逆に、5に対応できてないからw
PHP5環境でPHP4の文法にトリッキーな小手先の技をちりばめたフレームワークを使うのがどれほど負担になってるか知らないだろw
0983nobodyさん
2008/06/18(水) 01:23:47ID:???0984nobodyさん
2008/06/18(水) 12:47:15ID:???別にぜんぜん負担になってないけどな。
自分で書く部分に関してはPHP5で書いて問題ないし。
さて、俺は、その「トリッキーな小手先の技」というものが
何を指しているのか知りたいわけだが。
0985nobodyさん
2008/06/18(水) 16:17:58ID:???0986nobodyさん
2008/06/19(木) 10:27:34ID:???0987nobodyさん
2008/06/19(木) 12:03:58ID:???ファイルのアップロードをするプログラムを書いているのだけれど、
アップロードされたファイルをDBではなくてストレージに(永続的に)保存する場合、
cakeのディレクトリ構造のどの中に入れるのが正しいのでしょうか?
それらのファイルはそのまま表示しないファイルなので、
外から見えないようにwebroot/files以外の場所で保管したいと考えています。
0988nobodyさん
2008/06/19(木) 12:55:35ID:???英語読めない・・・
0990nobodyさん
2008/06/19(木) 14:21:27ID:???0993nobodyさん
2008/06/19(木) 19:56:47ID:???まだ気が早いのでは
0994nobodyさん
2008/06/19(木) 21:48:59ID:???けっこういい感じ。
お〜こんな関数もあるか。って感じ。
少なくとも今まで出てきたcakephpの本よりは 1.2に対応している。
おすすめです。
0995nobodyさん
2008/06/19(木) 22:36:59ID:1PdTbWblおまいら教えて
レス数が950を超えています。1000を超えると書き込みができなくなります。