私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】フレームワーク CakePHP 10ホール目【v1.3】
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
actionを自動で作るって無理ですよね?
やりたいことはビューのテンプレート(アクション)をプログラムで作成して
それにアクセスしたいんです。Pagesを使うとURLが変わるし・・。
やりたいことはビューのテンプレート(アクション)をプログラムで作成して
それにアクセスしたいんです。Pagesを使うとURLが変わるし・・。
等質の発言を俺がエスパーしてみる
Pages -> = PagesController
URLが変わるし・・・ -> 同一のURL内で複数の内容を表示させたい
テンプレート(アクション) -> View TemplateなのかController Actionなのかわからん
actionを自動で作る -> ????????
CakePHPにエスパーしてもらうって無理ですよね?と等質が言ってると思われます。
Pages -> = PagesController
URLが変わるし・・・ -> 同一のURL内で複数の内容を表示させたい
テンプレート(アクション) -> View TemplateなのかController Actionなのかわからん
actionを自動で作る -> ????????
CakePHPにエスパーしてもらうって無理ですよね?と等質が言ってると思われます。
データベースにViewテンプレートを格納する
改造かプラグインか何かを見かけた事あるし、
出来なくはないんじゃない?
なにしたいのかよく分からんから、
勝手に受け取った印象でだけど。
改造かプラグインか何かを見かけた事あるし、
出来なくはないんじゃない?
なにしたいのかよく分からんから、
勝手に受け取った印象でだけど。
俺も出来ると思う。
でも何がしたいのかよく分からないし言ってることが分からないので、
俺も印象でだけど。
でも何がしたいのかよく分からないし言ってることが分からないので、
俺も印象でだけど。
/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 でアクセスできませんよね?
コントローラーにアクションを書かなくてもアクセスできる方法ってないですか?
と言うのが質問です。本気で何したいかわからないレベルの質問で済みません。
http://example.com/test/index
になりますよね?対象となるビューは/views/test/index.ctpにあるわけです。
では、/views/test/aaa.ctpというファイルを作ったとします。
当然、コントローラーに
function aaa(){}
と書かないと、http://example.com/test/aaa でアクセスできませんよね?
コントローラーにアクションを書かなくてもアクセスできる方法ってないですか?
と言うのが質問です。本気で何したいかわからないレベルの質問で済みません。
pages_controllerをコピーしてきて
名前変えればいい。
それだけだろ
名前変えればいい。
それだけだろ
>>461
いくつかヒントな
> 対象となるビューは/views/test/index.ctpにあるわけです。
コントローラアクションとビューは、必ずしも同じ名前である必要はないよ。
どのビューを使うかはコントローラアクション内で指定できる。だから条件分岐でビューを切り替えることも出来る。
> 当然、コントローラーに
> function aaa(){}
> と書かないと、http://example.com/test/aaa でアクセスできませんよね?
ConfigのRoutes.php の設定方法(ルーティング)をよく調べれ。
URLの操作もそこでできる。
あとはどう実装したいのか次第。
いくつかヒントな
> 対象となるビューは/views/test/index.ctpにあるわけです。
コントローラアクションとビューは、必ずしも同じ名前である必要はないよ。
どのビューを使うかはコントローラアクション内で指定できる。だから条件分岐でビューを切り替えることも出来る。
> 当然、コントローラーに
> function aaa(){}
> と書かないと、http://example.com/test/aaa でアクセスできませんよね?
ConfigのRoutes.php の設定方法(ルーティング)をよく調べれ。
URLの操作もそこでできる。
あとはどう実装したいのか次第。
質問です。
CakePHP v 1.3.3
時間のかかる処理(a)のビューかルーティングが、
後から実行した処理(b)に奪われる現象に遭遇して困っております。
aのurlにアクセスすると、bのurlで表示されるべき内容が表示されてしまうと言った具合です。
urlはaのままです。
開発時には、そのような現象は発生せず、公開後、多くのユーザが訪れて発生しました。
複数の処理が実行される状況で発生するようです。
ですので、シングルトンが関わっているのかなと考えておりますが、
このような経験をした方は他にいらっしゃいますか?
または、ルーティングの設定ミスでもこのような現象は発生しますでしょうか?
解決方法をご存知でしたらご教示頂ければありがたいですmm
CakePHP v 1.3.3
時間のかかる処理(a)のビューかルーティングが、
後から実行した処理(b)に奪われる現象に遭遇して困っております。
aのurlにアクセスすると、bのurlで表示されるべき内容が表示されてしまうと言った具合です。
urlはaのままです。
開発時には、そのような現象は発生せず、公開後、多くのユーザが訪れて発生しました。
複数の処理が実行される状況で発生するようです。
ですので、シングルトンが関わっているのかなと考えておりますが、
このような経験をした方は他にいらっしゃいますか?
または、ルーティングの設定ミスでもこのような現象は発生しますでしょうか?
解決方法をご存知でしたらご教示頂ければありがたいですmm
>>465
そもそもアプリ側にバグはない前提?
ログ見ても見当つかないんなら、応急処置でユーザ毎にある情報
(DBのレコード等)をロックするようにしてからじっくり考えるとか。
遅くなるのを要件が許せばね。
Cake側の機構でありえるのは知らず知らずのうちに
クエリかViewのキャッシュが働いているとかかな。
それもアプリ側の制御ミスだけど。
それとCakeを1.3.3で止めてるのは
最新だとパッチが当たらないくらいにコード改変しまくりなの?
そもそもアプリ側にバグはない前提?
ログ見ても見当つかないんなら、応急処置でユーザ毎にある情報
(DBのレコード等)をロックするようにしてからじっくり考えるとか。
遅くなるのを要件が許せばね。
Cake側の機構でありえるのは知らず知らずのうちに
クエリかViewのキャッシュが働いているとかかな。
それもアプリ側の制御ミスだけど。
それとCakeを1.3.3で止めてるのは
最新だとパッチが当たらないくらいにコード改変しまくりなの?
処理というのはアクションと読み替えても良いんだろうか。
詳しく書いてはあるといえばあるんだけど、
トラブルが複雑そうなだけに、やっぱりよく分からないな。
まぁurlとも書いてあるからアクションで良いんだと思うんだけど、
その場合、routesの処理のところかdispatcherのとこのソースを見るのが良いんじゃないか?
別アクションが動く可能性のある分岐なのかそうじゃないか。
あと、このトラブルの場合、aとbの関係性が気になる。
同じコントローラーの別メソッドなのか、同じメソッド名だけど別コントローラーなのか、
片方がPrefixルーティングなのか、routesでのaとbの書かれ方などなど。
まぁ複雑そうだから、最終的にはソース嫁になりそうだけど。
詳しく書いてはあるといえばあるんだけど、
トラブルが複雑そうなだけに、やっぱりよく分からないな。
まぁurlとも書いてあるからアクションで良いんだと思うんだけど、
その場合、routesの処理のところかdispatcherのとこのソースを見るのが良いんじゃないか?
別アクションが動く可能性のある分岐なのかそうじゃないか。
あと、このトラブルの場合、aとbの関係性が気になる。
同じコントローラーの別メソッドなのか、同じメソッド名だけど別コントローラーなのか、
片方がPrefixルーティングなのか、routesでのaとbの書かれ方などなど。
まぁ複雑そうだから、最終的にはソース嫁になりそうだけど。
皆様ご意見ありがとうございます。
やはり最初はキャッシュを疑いましたが、
キャッシュ機能を無効にしても同様の現象が続いたので、
ルーティングに原因を求めた次第です。
サーバーの問題も疑いましたが、
aのページキャッシュにbの内容が保存されていたので、やはりアプリの問題だなと考えています。
>466
期待を胸に最新にアップデートしましたがダメでした、、。
少し説明が足りず申し訳なかったですが、
一般で言う、フロント,表側での現象なのでユーザ個別の情報をDBに取りに行くという処理はありません。
セッションやクッキーとは無縁のもっと単純なレベルの問題と考えています。
>467
処理と書かせて頂いたのは、リクエストを受けてからレンダリングまでの間で何が原因か不明なのでそう書きました。
ご指摘の通り、もう少し詳しく確認したところ、
同一コントローラで発生しているようで、コントローラ間を跨いで発生することは無いようです。
そして、それらはroutes.php内で独自のルーティング処理を記述しています。
ですので、やはりこの辺りが怪しいですね、、。
>468
"時間のかかる処理"ですが、単にリクエストからレンダリングが少々重たいページなんですよね、、。
ただやはり現象の発生が100%ではないのが、気持ち悪いです。
再現性、トラッキングが難しく、少々頭が痛いですが、やはりルーティング周りを確認していきたいと思います。
でも、ルーティング設定ミスなら100%再現されそうですよね、、。
やはり最初はキャッシュを疑いましたが、
キャッシュ機能を無効にしても同様の現象が続いたので、
ルーティングに原因を求めた次第です。
サーバーの問題も疑いましたが、
aのページキャッシュにbの内容が保存されていたので、やはりアプリの問題だなと考えています。
>466
期待を胸に最新にアップデートしましたがダメでした、、。
少し説明が足りず申し訳なかったですが、
一般で言う、フロント,表側での現象なのでユーザ個別の情報をDBに取りに行くという処理はありません。
セッションやクッキーとは無縁のもっと単純なレベルの問題と考えています。
>467
処理と書かせて頂いたのは、リクエストを受けてからレンダリングまでの間で何が原因か不明なのでそう書きました。
ご指摘の通り、もう少し詳しく確認したところ、
同一コントローラで発生しているようで、コントローラ間を跨いで発生することは無いようです。
そして、それらはroutes.php内で独自のルーティング処理を記述しています。
ですので、やはりこの辺りが怪しいですね、、。
>468
"時間のかかる処理"ですが、単にリクエストからレンダリングが少々重たいページなんですよね、、。
ただやはり現象の発生が100%ではないのが、気持ち悪いです。
再現性、トラッキングが難しく、少々頭が痛いですが、やはりルーティング周りを確認していきたいと思います。
でも、ルーティング設定ミスなら100%再現されそうですよね、、。
> キャッシュ機能を無効にしても同様の現象が続いたので、
> aのページキャッシュにbの内容が保存されていたので、やはりアプリの問題だなと考えています。
ここ、矛盾して無いか?
ただ、キャッシュという事でひとつ思い出した。
http://dxd8.com/archives/209/
これじゃないか?
CentOS5でパッケージリポジトリからのPCRE使ってると、
確かこれにぶち当たるはずだよ。
> aのページキャッシュにbの内容が保存されていたので、やはりアプリの問題だなと考えています。
ここ、矛盾して無いか?
ただ、キャッシュという事でひとつ思い出した。
http://dxd8.com/archives/209/
これじゃないか?
CentOS5でパッケージリポジトリからのPCRE使ってると、
確かこれにぶち当たるはずだよ。
>470
あっすみません。キャッシュを無効にする前の事です、、。
URLありがとうございます。
ルーティングでも何らかの場面でスラッグ変換処理行っている可能性はありますね。
ちょっと確認してみます。
しかし、発生頻度が数%で、アクセス数に比例して頻度が上がるんですよね、、。
ルーティングが別々のプロセス間で共用されている事を考えています。
シングルトンと言えども、
リクエストa,bに対して、プロセスa,bが実行される中、aとbが互いに干渉し合う事ってあるんでしょうか?
あっすみません。キャッシュを無効にする前の事です、、。
URLありがとうございます。
ルーティングでも何らかの場面でスラッグ変換処理行っている可能性はありますね。
ちょっと確認してみます。
しかし、発生頻度が数%で、アクセス数に比例して頻度が上がるんですよね、、。
ルーティングが別々のプロセス間で共用されている事を考えています。
シングルトンと言えども、
リクエストa,bに対して、プロセスa,bが実行される中、aとbが互いに干渉し合う事ってあるんでしょうか?
ですのよね、、。何も信じられない、、。
今なら新興宗教とか信じられそうです。
年越さないようにがんばります、、。
今なら新興宗教とか信じられそうです。
年越さないようにがんばります、、。
ですのよって、、。おねぇか。
ですよねの間違いでした。
ですよねの間違いでした。
「ルーティングの設定に穴があった」だったら明るく解決だけど、
そうでない場合、少しイヤなバグだな・・・
Cake使ってる高負荷サイトってどの辺だろう
そうでない場合、少しイヤなバグだな・・・
Cake使ってる高負荷サイトってどの辺だろう
つーか、そんな時こそプロファイラじゃないか?
もしくはステップ実行。
xdebug使ってみては?
もしくはステップ実行。
xdebug使ってみては?
重いと評判のhtmlHelperですが、ローカル環境と本番環境のリンクずれを
気にしなくてよいので、Linkは積極的に使っています。
しかし、<base>でURLを切り替えれば、この問題もクリアされ、
簡潔なhtmlコードを書けばよいだけになる気がします。
リンクずれ以外にはhtmlヘルパーを使うメリットって何があるでしょうか?
教えていただければ幸いです。
気にしなくてよいので、Linkは積極的に使っています。
しかし、<base>でURLを切り替えれば、この問題もクリアされ、
簡潔なhtmlコードを書けばよいだけになる気がします。
リンクずれ以外にはhtmlヘルパーを使うメリットって何があるでしょうか?
教えていただければ幸いです。
HTTP→HTTPSの切替がしやすいってのがあった。
ま、相対パスだから当たり前なんだけど。
ま、相対パスだから当たり前なんだけど。
というかHtmlHelper重いから使わないほうがいいとか言ってる奴は、
CakePHP重いからピュアなPHPで書いたほうがいいって言ってるのと同じなんだけど。
速度気にするならビューやDBやらをキャッシュすればいいだけだし。
本末転倒もいいところだわ
CakePHP重いからピュアなPHPで書いたほうがいいって言ってるのと同じなんだけど。
速度気にするならビューやDBやらをキャッシュすればいいだけだし。
本末転倒もいいところだわ
こういう、画像に対して、サイト内の画像をリンクするのはヘルパーでどうやるのでしょうか?
<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',
)
);
<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',
)
);
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()でやるのは無理
<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()でやるのは無理
あーごめんID入れるの忘れてた
echo $html->link(
$html->image("sample_mail.jpg"),
"/img/sample_mail.jpg",
array('escape'=>false, 'id'=>'sampleMail')
);
echo $html->link(
$html->image("sample_mail.jpg"),
"/img/sample_mail.jpg",
array('escape'=>false, 'id'=>'sampleMail')
);
IMEの予測変換が邪魔したみたいだわ
× ID変えて入れなきゃなんないなら
↓
○ ID入れてやんなきゃなんないなら
つまりhtml->image()ではAタグにidやらclassやらを指定できないってことね。
× ID変えて入れなきゃなんないなら
↓
○ ID入れてやんなきゃなんないなら
つまりhtml->image()ではAタグにidやらclassやらを指定できないってことね。
俺はむしろurlだけ使う方法を採用してるな。
その方がソースも綺麗で分かりやすいし。
その方がソースも綺麗で分かりやすいし。
遅いレスだけど $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だったかな)
こんな書き方もあります
<?= $html->tag('a',
$html->image('sample_mail.jpg'),
array(
'id' => 'sampleMail',
'href' => $html->url('/img/sample_mail.jpg')
)
) ?>
タグ書きたくない病なので$html->tag結構使ってる
(1.1系だったら$html->contentTagだったかな)
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
Happy Holiday yule cake - CakePHP 2.0-dev released
>>490書くならタグ書いたほうがましだろ
何のメリットもないww
何のメリットもないww
>>490
素直にタグ書けよw
素直にタグ書けよw
>>492
例外処理がまともになるのかな。予期せぬ例外もきちんとcatchしてくれるならうれしい。
例外処理がまともになるのかな。予期せぬ例外もきちんとcatchしてくれるならうれしい。
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));
?>
ビューの中でこんな感じでサブメニューを出力させたりするのに使ったりしてるよ
自前のヘルパー作ってもいいんだけど
まあこんなやりようもあるということで
たとえばこんな感じで繰り返し書くときに見通し考えてタグ書きたくないときとか
<?
/* サブメニュー定義(実際は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));
?>
ビューの中でこんな感じでサブメニューを出力させたりするのに使ったりしてるよ
自前のヘルパー作ってもいいんだけど
まあこんなやりようもあるということで
だから誰もとくしねえコードかいてんじゃねーよ
<li>って書いてたほうが他の人も分かりやすいわ
一人でオナニーやってろ
<li>って書いてたほうが他の人も分かりやすいわ
一人でオナニーやってろ
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- 【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 ○
トップメニューへ / →のくす牧場書庫について