私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】フレームワーク CakePHP 12ホール目【笑】
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
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
前スレ
【PHP】フレームワーク CakePHP 11ホール目【v1.3】
http://hibari.2ch.net/test/read.cgi/php/1297860755/
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
前スレ
【PHP】フレームワーク CakePHP 11ホール目【v1.3】
http://hibari.2ch.net/test/read.cgi/php/1297860755/
>PEARとかのクラス名とCakeのコアクラスが衝突しちゃう場合
>どう対応してますか?
PHPてnamespaceないんだっけか?
なんちゅーダサい言語w
>どう対応してますか?
PHPてnamespaceないんだっけか?
なんちゅーダサい言語w
>>2
あるよ
あるよ
前スレ990からのやつ
Cake的にはConfigure::load()/read()じゃなくて?
Cake的にはConfigure::load()/read()じゃなくて?
携帯サイトとPCサイトをCakeで作るとき、
- routes.php
Router::connect('/m/', array('controller' => 'home', 'action' => 'index', 'prefix' => 'mobile'));
Router::connect('/m', array('controller' => 'home', 'action' => 'index', 'prefix' => 'mobile'));
Router::connect('/m/:controller/:action/*', array('prefix' => 'mobile'));
- app_controller.php
function afterFilter() {
if (!preg_match("/^m(\/)?/", $this->params['url']['url'])) {
$this->redirect('/m/' . $this->params['url']['url']);
}
if ($this->isMobile) {
$this->output = mb_convert_kana($this->output, 'k');
$this->output = mb_convert_encoding($this->output, 'SJIS', 'UTF-8');
}
}
こんな感じで振り分けたりしてるんだけど、
function show() {
$this->set('abc', $this->Model->find('all'));
}
function mobile_show() {
$this->set('abc', $this->Model->find('all'));
}
上記のようにコントローラにPC用と携帯用で全く同じ処理なのに
別々のアクションを作らないといけない。
これはしょうがないのかな?
もっとナイスな実装方法があれば助言お願いします
- routes.php
Router::connect('/m/', array('controller' => 'home', 'action' => 'index', 'prefix' => 'mobile'));
Router::connect('/m', array('controller' => 'home', 'action' => 'index', 'prefix' => 'mobile'));
Router::connect('/m/:controller/:action/*', array('prefix' => 'mobile'));
- app_controller.php
function afterFilter() {
if (!preg_match("/^m(\/)?/", $this->params['url']['url'])) {
$this->redirect('/m/' . $this->params['url']['url']);
}
if ($this->isMobile) {
$this->output = mb_convert_kana($this->output, 'k');
$this->output = mb_convert_encoding($this->output, 'SJIS', 'UTF-8');
}
}
こんな感じで振り分けたりしてるんだけど、
function show() {
$this->set('abc', $this->Model->find('all'));
}
function mobile_show() {
$this->set('abc', $this->Model->find('all'));
}
上記のようにコントローラにPC用と携帯用で全く同じ処理なのに
別々のアクションを作らないといけない。
これはしょうがないのかな?
もっとナイスな実装方法があれば助言お願いします
>>5
beforeFilter()かそれ以前で携帯か判定して
beforeRender()でviewを切り替えるComponentをつくる。
Controllerのactionは基本共通で場合によって処理も分けられる。
beforeFilter()かそれ以前で携帯か判定して
beforeRender()でviewを切り替えるComponentをつくる。
Controllerのactionは基本共通で場合によって処理も分けられる。
>>6-7
サンクス
いや、多分コントローラのアクション同一のものを使えると思う
>beforeRender()でviewを切り替える
なるほど。
処理が全て終わったあとで、
$this->render('mobile_' . 現在のaction名);
みたいな感じかな。
>beforeFilter()かそれ以前で携帯か判定して
これがちょっとわからない
beforeRender()のview切り替え時に携帯かどうか判断したらだめなの?
サンクス
いや、多分コントローラのアクション同一のものを使えると思う
>beforeRender()でviewを切り替える
なるほど。
処理が全て終わったあとで、
$this->render('mobile_' . 現在のaction名);
みたいな感じかな。
>beforeFilter()かそれ以前で携帯か判定して
これがちょっとわからない
beforeRender()のview切り替え時に携帯かどうか判断したらだめなの?
>>8
> >beforeFilter()かそれ以前で携帯か判定して
> これがちょっとわからない
> beforeRender()のview切り替え時に携帯かどうか判断したらだめなの?
actionの中身が完全に同一ならいいんだけど
たまに場合分けしたい部分もあるかと思ってね。
利用するModelも変わるかもしれないし。
> >beforeFilter()かそれ以前で携帯か判定して
> これがちょっとわからない
> beforeRender()のview切り替え時に携帯かどうか判断したらだめなの?
actionの中身が完全に同一ならいいんだけど
たまに場合分けしたい部分もあるかと思ってね。
利用するModelも変わるかもしれないし。
>$this->render('mobile_' . 現在のaction名);
切り替えにはテーマを使うほうがいいんじゃないかな?
http://book.cakephp.org/ja/view/1093/%E3%83%86%E3%83%BC%E3%83%9E
切り替えにはテーマを使うほうがいいんじゃないかな?
http://book.cakephp.org/ja/view/1093/%E3%83%86%E3%83%BC%E3%83%9E
>>11
結局どうやったのかまとめて書いてくれるとありがたい。
結局どうやったのかまとめて書いてくれるとありがたい。
>>12
- app_controller.php
function beforeFilter() {
$agent = Net_UserAgent_Mobile::factory();
// 携帯
if (!$agent->isNonMobile()) {
if ($agent->isDoCoMo()) {
ini_set('session.use_cookies', FALSE);
ini_set('session.use_only_cookies', FALSE);
ini_set('session.use_trans_sid', TRUE);
session_start();
}
$this->isMobile = true;
$this->layout = 'mobile';
$this->theme = 'mobile';
// PC
} else {
:
:
}
}
routes.php の携帯関係(/m/)のマッピングと、
afterFilter() の redirect の記述は全て消した
携帯でアクセスすると、テーマがmobileになるので、
mobileテーマを用意すると、それをrenderしてくれる
結局テーマでほぼ解決できた感じ
- app_controller.php
function beforeFilter() {
$agent = Net_UserAgent_Mobile::factory();
// 携帯
if (!$agent->isNonMobile()) {
if ($agent->isDoCoMo()) {
ini_set('session.use_cookies', FALSE);
ini_set('session.use_only_cookies', FALSE);
ini_set('session.use_trans_sid', TRUE);
session_start();
}
$this->isMobile = true;
$this->layout = 'mobile';
$this->theme = 'mobile';
// PC
} else {
:
:
}
}
routes.php の携帯関係(/m/)のマッピングと、
afterFilter() の redirect の記述は全て消した
携帯でアクセスすると、テーマがmobileになるので、
mobileテーマを用意すると、それをrenderしてくれる
結局テーマでほぼ解決できた感じ
$this->data の中にあるデータ全てに置換処理をしたい場合どうしたらいいですか
>>16
再帰的?にやらないとだめですよね?
再帰的?にやらないとだめですよね?
バリデーションで、
同じフォームのある特定のselectのある選択肢が選択された時のみ、
ある input をrequiredにする、
ってできる?
↓これでできそうな気がするけど、同じフォームの値は取ってこれないのかな
http://book.cakephp.org/ja/view/1179/%E7%8B%AC%E8%87%AA%E3%81%AE%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%AB%E3%83%BC%E3%83%AB
同じフォームのある特定のselectのある選択肢が選択された時のみ、
ある input をrequiredにする、
ってできる?
↓これでできそうな気がするけど、同じフォームの値は取ってこれないのかな
http://book.cakephp.org/ja/view/1179/%E7%8B%AC%E8%87%AA%E3%81%AE%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%AB%E3%83%BC%E3%83%AB
>>22
$this->data覗いてみればわかるんじゃないの?
$this->data覗いてみればわかるんじゃないの?
CakePHPってAppControllerやAppModelにかなり手を入れないと
使い物にならないよね。
あと、標準のコンポーネントやヘルパーはホント使い物にならない。
特にFormヘルパーは心の底から使えない。
こんな屑フレームワークが何故こんなに持てはやされているのか謎。
使い物にならないよね。
あと、標準のコンポーネントやヘルパーはホント使い物にならない。
特にFormヘルパーは心の底から使えない。
こんな屑フレームワークが何故こんなに持てはやされているのか謎。
>>24
required は「その項目の存在を必須とするか?」の設定で、 allowEmpty は「空の値を許容するか?」
分かりやすく言うと、
パスワードとかで、
required = false
allowEmpty = false
にすれば、
フィールドがある場合は、必須入力。
フィールドがない場合は、保存可能。
required は「その項目の存在を必須とするか?」の設定で、 allowEmpty は「空の値を許容するか?」
分かりやすく言うと、
パスワードとかで、
required = false
allowEmpty = false
にすれば、
フィールドがある場合は、必須入力。
フィールドがない場合は、保存可能。
そもそもなんで使っている人が増えたかだよ。
最初から使用者が多かったわけではないのに
「みんなが使ってるから」は理由にならないと思う。
ちょっと、formヘルパーがなんで使えないか聞いてみたい。
最初から使用者が多かったわけではないのに
「みんなが使ってるから」は理由にならないと思う。
ちょっと、formヘルパーがなんで使えないか聞いてみたい。
それは「分かりやすいから」じゃないか?
俺はZendとかEthnaで挫折したけど、Cakeだと続けて来れた
俺はZendとかEthnaで挫折したけど、Cakeだと続けて来れた
コントローラーやモデルは面倒だからそのまま使ってる
カスタマイズに本気になる時間があったら俺俺作るわ
ヘルパーが使えないには同意。使ったことない。
カスタマイズに本気になる時間があったら俺俺作るわ
ヘルパーが使えないには同意。使ったことない。
htmlヘルパーはほぼ使わないな
ビューでaddScript書く時だけ使う。
ビューでaddScript書く時だけ使う。
HTMLヘルパーで出力するHTMLをカスタマイズしようとすると
記述が煩雑になってありがたみが薄れるからなー。
簡単なelement書くか、変数展開だけで済ますかな。
記述が煩雑になってありがたみが薄れるからなー。
簡単なelement書くか、変数展開だけで済ますかな。
???
<?php echo Router::url('/') ?>
とかしらないのか?
<?php echo Router::url('/') ?>
とかしらないのか?
formヘルパーなんかDBの設定読み込んで、
maxlength自動で設定してくれたりして、便利だと思うけどなぁ。
(保守が楽)
アソシエーションの設定をちゃんとしとけば
saveallで一発で保存できるし。
maxlength自動で設定してくれたりして、便利だと思うけどなぁ。
(保守が楽)
アソシエーションの設定をちゃんとしとけば
saveallで一発で保存できるし。
まぁ、唯一気になるのが「name="data['User']['name']"」
となってしまう事だけど、これは仕方ないよな
となってしまう事だけど、これは仕方ないよな
???
<a href="<?php echo Router::ulr('/')?>">URL</a>
htmlヘルパー使わないんだから、こうなるよな
<a href="<?php echo Router::ulr('/')?>">URL</a>
htmlヘルパー使わないんだから、こうなるよな
Jsヘルパーって使ってますか?
複雑になるだけな気がするんですが、メリットがあったら教えてもらいたいです。
複雑になるだけな気がするんですが、メリットがあったら教えてもらいたいです。
$this->Model->getLastInsertID()
を使って他テーブルの外部IDを設定(ひもづけ)するのは危険かな?
例えばショッピングサイトで注文テーブルの注文IDを、注文内容テーブルの外部IDに設定するような場合。
処理の途中で別のINSERTが入った場合はどうなるんだろう・・・?
を使って他テーブルの外部IDを設定(ひもづけ)するのは危険かな?
例えばショッピングサイトで注文テーブルの注文IDを、注文内容テーブルの外部IDに設定するような場合。
処理の途中で別のINSERTが入った場合はどうなるんだろう・・・?
類似してるかもしれないスレッド
- 【PHP】フレームワーク CakePHP 17ホール目【v3α】 (955) - [92%] - 2016/11/15 20:45
- 【PHP】フレームワーク CakePHP 14ホール目【v2.1】 (1001) - [92%] - 2012/12/3 19:16
- 【PHP】フレームワーク CakePHP 19ホール目【v3.3】 (844) - [92%] - 2023/2/2 14:30
- 【PHP】フレームワーク CakePHP 16ホール目【v2.4】 (1001) - [92%] - 2014/3/3 3:00
- 【PHP】フレームワーク CakePHP 11ホール目【v1.3】 (1001) - [92%] - 2011/6/30 22:32
- 【PHP】フレームワーク CakePHP 15ホール目【v2.2】 (985) - [92%] - 2013/9/7 8:30
- 【PHP】フレームワーク CakePHP 17ホール目【v2.4】 (984) - [92%] - 2015/1/10 2:45
- 【PHP】フレームワーク CakePHP 10ホール目【v1.3】 (1001) - [92%] - 2011/2/13 8:32
- 【PHP】フレームワーク CakePHP 13ホール目【v2.0】 (995) - [92%] - 2012/4/23 21:16 ○
- 【PHP】フレームワーク CakePHP 8ホール目【1.3】 (1001) - [91%] - 2010/7/22 22:16
- 【PHP】フレームワーク CakePHP 9ホール目【v1.3】 (1001) - [90%] - 2010/11/1 2:53
- 【PHP】フレームワーク CakePHP 3ホール目【本命】 (1001) - [87%] - 2008/6/19 7:19 ○
- 【PHP】フレームワーク CakePHP 6ホール目【v1.2】 (933) - [87%] - 2009/8/19 2:06 ○
- 【PHP】フレームワーク CakePHP 5ホール目【v1.2】 (985) - [87%] - 2009/3/7 4:53 ☆
- 【PHP】フレームワーク CakePHP 7ホール目【v1.2】 (1001) - [87%] - 2010/3/18 1:18 ○
トップメニューへ / →のくす牧場書庫について