元スレ【PHP】フレームワーク CakePHP 10ホール目【v1.3】
php覧 / PC版 /みんなの評価 :
451 = :
450です。
ごめんかぶった
452 = :
>>449 >>450
どうもありがとうございます。
cakePHP独自のやり方があるのかなとも思ったのですが、
特にそんなことはないのですね。
453 = :
お前らさぁ
いつまでORMとかキモいことやってんだよ。
454 = :
そこにデータがある限り
455 = :
OOPとRDBを採用するのをやめるまで
457 = :
本気で何言ってっかわかんね
458 = :
等質の発言を俺がエスパーしてみる
Pages -> = PagesController
URLが変わるし・・・ -> 同一のURL内で複数の内容を表示させたい
テンプレート(アクション) -> View TemplateなのかController Actionなのかわからん
actionを自動で作る -> ????????
CakePHPにエスパーしてもらうって無理ですよね?と等質が言ってると思われます。
459 = :
データベースにViewテンプレートを格納する
改造かプラグインか何かを見かけた事あるし、
出来なくはないんじゃない?
なにしたいのかよく分からんから、
勝手に受け取った印象でだけど。
460 = :
俺も出来ると思う。
でも何がしたいのかよく分からないし言ってることが分からないので、
俺も印象でだけど。
461 = :
/controllers/test_controller.phpのindexアクションはURLだと
http://example.com/test/index
になりますよね?対象となるビューは/views/test/index.ctpにあるわけです。
では、/views/test/aaa.ctpというファイルを作ったとします。
当然、コントローラーに
function aaa(){}
と書かないと、http://example.com/test/aaa でアクセスできませんよね?
コントローラーにアクションを書かなくてもアクセスできる方法ってないですか?
と言うのが質問です。本気で何したいかわからないレベルの質問で済みません。
463 = :
>>461
いくつかヒントな
> 対象となるビューは/views/test/index.ctpにあるわけです。
コントローラアクションとビューは、必ずしも同じ名前である必要はないよ。
どのビューを使うかはコントローラアクション内で指定できる。だから条件分岐でビューを切り替えることも出来る。
> 当然、コントローラーに
> function aaa(){}
> と書かないと、http://example.com/test/aaa でアクセスできませんよね?
ConfigのRoutes.php の設定方法(ルーティング)をよく調べれ。
URLの操作もそこでできる。
あとはどう実装したいのか次第。
464 = :
コントローラー通さないならhtmlでも置いとけば?
465 = :
質問です。
CakePHP v 1.3.3
時間のかかる処理(a)のビューかルーティングが、
後から実行した処理(b)に奪われる現象に遭遇して困っております。
aのurlにアクセスすると、bのurlで表示されるべき内容が表示されてしまうと言った具合です。
urlはaのままです。
開発時には、そのような現象は発生せず、公開後、多くのユーザが訪れて発生しました。
複数の処理が実行される状況で発生するようです。
ですので、シングルトンが関わっているのかなと考えておりますが、
このような経験をした方は他にいらっしゃいますか?
または、ルーティングの設定ミスでもこのような現象は発生しますでしょうか?
解決方法をご存知でしたらご教示頂ければありがたいですmm
466 = :
>>465
そもそもアプリ側にバグはない前提?
ログ見ても見当つかないんなら、応急処置でユーザ毎にある情報
(DBのレコード等)をロックするようにしてからじっくり考えるとか。
遅くなるのを要件が許せばね。
Cake側の機構でありえるのは知らず知らずのうちに
クエリかViewのキャッシュが働いているとかかな。
それもアプリ側の制御ミスだけど。
それとCakeを1.3.3で止めてるのは
最新だとパッチが当たらないくらいにコード改変しまくりなの?
467 = :
処理というのはアクションと読み替えても良いんだろうか。
詳しく書いてはあるといえばあるんだけど、
トラブルが複雑そうなだけに、やっぱりよく分からないな。
まぁurlとも書いてあるからアクションで良いんだと思うんだけど、
その場合、routesの処理のところかdispatcherのとこのソースを見るのが良いんじゃないか?
別アクションが動く可能性のある分岐なのかそうじゃないか。
あと、このトラブルの場合、aとbの関係性が気になる。
同じコントローラーの別メソッドなのか、同じメソッド名だけど別コントローラーなのか、
片方がPrefixルーティングなのか、routesでのaとbの書かれ方などなど。
まぁ複雑そうだから、最終的にはソース嫁になりそうだけど。
468 = :
>>465
requestActionで、コントローラアクションから別のコントローラアクションを呼びまくったりしてると
もう最悪だな
それと「時間のかかる処理」がなんなのかだろうけど、
>>466 で言及してるキャッシュ周り
>>467 で言及してるルーティング周り
あたりから見ていく感じかな
470 = :
> キャッシュ機能を無効にしても同様の現象が続いたので、
> aのページキャッシュにbの内容が保存されていたので、やはりアプリの問題だなと考えています。
ここ、矛盾して無いか?
ただ、キャッシュという事でひとつ思い出した。
http://dxd8.com/archives/209/
これじゃないか?
CentOS5でパッケージリポジトリからのPCRE使ってると、
確かこれにぶち当たるはずだよ。
472 = :
phpって1HTTP リクエスト毎に独立してんじゃないっけ?
473 = :
ですのよね、、。何も信じられない、、。
今なら新興宗教とか信じられそうです。
年越さないようにがんばります、、。
474 = :
ですのよって、、。おねぇか。
ですよねの間違いでした。
475 = :
「ルーティングの設定に穴があった」だったら明るく解決だけど、
そうでない場合、少しイヤなバグだな・・・
Cake使ってる高負荷サイトってどの辺だろう
476 = :
もしかして動的にモデルの構造が変更されるようなページ?
478 = :
重いと評判のhtmlHelperですが、ローカル環境と本番環境のリンクずれを
気にしなくてよいので、Linkは積極的に使っています。
しかし、<base>でURLを切り替えれば、この問題もクリアされ、
簡潔なhtmlコードを書けばよいだけになる気がします。
リンクずれ以外にはhtmlヘルパーを使うメリットって何があるでしょうか?
教えていただければ幸いです。
479 = :
HTTP→HTTPSの切替がしやすいってのがあった。
ま、相対パスだから当たり前なんだけど。
480 = :
>>478
Routingを使うならURLの記述はarray()でしたほうが良い
アクション名変えるだけですべてのページ書き直すとか無理
481 = :
>>479
hmhm。 そういう利点もあるのですね。
>>480
なるほど、自分はRouting使っているので、やはりLinkは引き続き使ったほうがよい
気がしてきました。
482 = :
というかHtmlHelper重いから使わないほうがいいとか言ってる奴は、
CakePHP重いからピュアなPHPで書いたほうがいいって言ってるのと同じなんだけど。
速度気にするならビューやDBやらをキャッシュすればいいだけだし。
本末転倒もいいところだわ
483 = :
こういう、画像に対して、サイト内の画像をリンクするのはヘルパーでどうやるのでしょうか?
<a href="/test/img/sample_mail.jpg" id="sampleMail">
<img src="/test/img/new/sample_mail.png">
</a>
このスレを参考に、こんな感じで試したけど上手くいかない。。
echo $html->image(
"new/sample_mail.png",
array(
'url' => 'sample_mail.jpg',
'id' => 'sampleMail',
)
);
484 = :
IDとか付くときはurlだけ使ったほうがいいよ
<a href="<?php echo $html->url('/img/sample_mail.jpg');?>" id="sampleMail">
<?php echo $html->image('sample_mail.jpg');?>
</a>
一応こういう方法があるんだけど。
echo $html->link(
$html->image("sample_mail.jpg"),
"/img/sample_mail.jpg",
array('escape'=>false)
);
ID変えて入れなきゃなんないなら>>483みたいなimage()でやるのは無理
485 = :
あーごめんID入れるの忘れてた
echo $html->link(
$html->image("sample_mail.jpg"),
"/img/sample_mail.jpg",
array('escape'=>false, 'id'=>'sampleMail')
);
486 = :
>>484
凄い!
urlだけ使う方法があるとは、考えてみればカンタンだけど盲点でした。
>>485 のやり方で、上手くいったのですが、
id変えて入れなきゃとはどういう意味でしょうか?
なんにせよ、素晴らしいリプライをありがとうございます!
487 = :
IMEの予測変換が邪魔したみたいだわ
× ID変えて入れなきゃなんないなら
↓
○ ID入れてやんなきゃなんないなら
つまりhtml->image()ではAタグにidやらclassやらを指定できないってことね。
488 = :
>>487
納得。ありがとうございます。
489 = :
俺はむしろurlだけ使う方法を採用してるな。
その方がソースも綺麗で分かりやすいし。
490 = :
遅いレスだけど $html->link使わないときは
こんな書き方もあります
<?= $html->tag('a',
$html->image('sample_mail.jpg'),
array(
'id' => 'sampleMail',
'href' => $html->url('/img/sample_mail.jpg')
)
) ?>
タグ書きたくない病なので$html->tag結構使ってる
(1.1系だったら$html->contentTagだったかな)
491 = :
ショートタグ使うなや
492 = :
http://bakery.cakephp.org/articles/markstory/2010/12/26/happy_holiday_yule_cake_-_cakephp_2_0-dev_released
Happy Holiday yule cake - CakePHP 2.0-dev released
493 = :
>>490書くならタグ書いたほうがましだろ
何のメリットもないww
494 = :
>>490
素直にタグ書けよw
495 = :
>>492
例外処理がまともになるのかな。予期せぬ例外もきちんとcatchしてくれるならうれしい。
496 = :
490です メリットなくはないよ
たとえばこんな感じで繰り返し書くときに見通し考えてタグ書きたくないときとか
<?
/* サブメニュー定義(実際はcontrollerからsetしたり) */
$subMenuList = array(
'テスト1' => array('image' => 'test1.jpg', 'url' => '/hoge/test1', 'id' => 'test1'),
'テスト2' => array('image' => 'test2.jpg', 'url' => '/hoge/test2', 'id' => 'test2'),
);
/* 繰り返し処理でli要素作成 */
$subMenu = '';
foreach($subMenuList as $menuName => $menu) {
$subMenu .= $html->tag('li', $html->tag('a',
$html->image($menu['image'], array('alt' => $menuName)),
array(
'id' => $menu['id'],
'href' => $html->url($menu['url'])
)
));
}
?>
<? /* サブメニュー出力 */
echo $html->div('submenu', $html->tag('dl', $subMenu));
?>
ビューの中でこんな感じでサブメニューを出力させたりするのに使ったりしてるよ
自前のヘルパー作ってもいいんだけど
まあこんなやりようもあるということで
497 = :
だから誰もとくしねえコードかいてんじゃねーよ
<li>って書いてたほうが他の人も分かりやすいわ
一人でオナニーやってろ
498 = :
へーい すいませんでした
499 = :
それで慣れちゃったんだろうけど、
俺はそのコードを触りたくないな
500 = :
>>496
>見通し考えてタグ書きたくないときとか
見通しを悪くしたいとは、変わった方もいらっしゃるんですね
みんなの評価 :
類似してるかもしれないスレッド
- 【PHP】フレームワーク CakePHP 11ホール目【v1.3】 (1001) - [98%] - 2011/6/30 22:32
- 【PHP】フレームワーク CakePHP 19ホール目【v3.3】 (844) - [96%] - 2023/2/2 14:30
- 【PHP】フレームワーク CakePHP 9ホール目【v1.3】 (1001) - [96%] - 2010/11/1 2:53
- 【PHP】フレームワーク CakePHP 15ホール目【v2.2】 (985) - [95%] - 2013/9/7 8:30
- 【PHP】フレームワーク CakePHP 13ホール目【v2.0】 (995) - [95%] - 2012/4/23 21:16 ○
- 【PHP】フレームワーク CakePHP 17ホール目【v2.4】 (984) - [95%] - 2015/1/10 2:45
- 【PHP】フレームワーク CakePHP 16ホール目【v2.4】 (1001) - [95%] - 2014/3/3 3:00
- 【PHP】フレームワーク CakePHP 14ホール目【v2.1】 (1001) - [95%] - 2012/12/3 19:16
- 【PHP】フレームワーク CakePHP 8ホール目【1.3】 (1001) - [95%] - 2010/7/22 22:16
- 【PHP】フレームワーク CakePHP 17ホール目【v3α】 (955) - [93%] - 2016/11/15 20:45
- 【PHP】フレームワーク CakePHP 5ホール目【v1.2】 (985) - [92%] - 2009/3/7 4:53 ☆
- 【PHP】フレームワーク CakePHP 6ホール目【v1.2】 (933) - [92%] - 2009/8/19 2:06 ○
- 【PHP】フレームワーク CakePHP 7ホール目【v1.2】 (1001) - [92%] - 2010/3/18 1:18 ○
- 【PHP】フレームワーク CakePHP 4ホール目【v1.2】 (1001) - [92%] - 2008/12/19 21:06 ○
- 【PHP】フレームワーク CakePHP 12ホール目【笑】 (1001) - [92%] - 2011/11/8 7:01
- 【PHP】フレームワーク CakePHP 3ホール目【本命】 (1001) - [84%] - 2008/6/19 7:19 ○
トップメニューへ / →のくす牧場書庫について