私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】フレームワーク CakePHP 14ホール目【v2.1】
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
何度も申し訳ないですが、
Router::url()のソースが挙動の操作をしているとのことで、少し見てみましたが
<?php echo $html->base; ?>をすると、
/cake_install がでたり、何もでない(空文字)だったりするようです。
Router::url()のソースが挙動の操作をしているとのことで、少し見てみましたが
<?php echo $html->base; ?>をすると、
/cake_install がでたり、何もでない(空文字)だったりするようです。
もう一度.htaccessを見直し、
/.htaccess
RewriteBase /cake_install
/cake_install/.htaccess
RewriteBase /
/cake_install/app/.htaccess
RewriteBase /app
/cake_install/app/webroot/.htaccess
RewriteBase /app/webroot
にしたところ、http://www.example.com/controller のページでは、
常に正しくhttp://www.example.com/controller と出力するようになりました。
($html->base に何も入らなくなりました)
が、トップページhttp://www.example.com/ にアクセスした場合だけ、
$html->base に cake_install が入り、
http://www.example.com/cake_install/controller となっています。
/.htaccess
RewriteBase /cake_install
/cake_install/.htaccess
RewriteBase /
/cake_install/app/.htaccess
RewriteBase /app
/cake_install/app/webroot/.htaccess
RewriteBase /app/webroot
にしたところ、http://www.example.com/controller のページでは、
常に正しくhttp://www.example.com/controller と出力するようになりました。
($html->base に何も入らなくなりました)
が、トップページhttp://www.example.com/ にアクセスした場合だけ、
$html->base に cake_install が入り、
http://www.example.com/cake_install/controller となっています。
>>454
.htaccess は最初のままでいいよ、たぶん。
.htaccess は最初のままでいいよ、たぶん。
メモ:
HtmlHelper::link で吐き出すURLは Router::url で生成されてるんだけど、
ベースURLはRouterのインスタンスの$__paths[0]['base'] に保存されてる。
で、これは Dispatcher::baseUrl() の戻り値。
この Dispatcher::baseUrl() をみてやると、
最初の方に Configure に書き込んだ設置を展開していて、
もしそこに 'base' があればそれを優先する仕組み。
デフォはこれは設定されていないんで、 dirname( env( 'PHP_SELF' ) ) から算出してるってこと
HtmlHelper::link で吐き出すURLは Router::url で生成されてるんだけど、
ベースURLはRouterのインスタンスの$__paths[0]['base'] に保存されてる。
で、これは Dispatcher::baseUrl() の戻り値。
この Dispatcher::baseUrl() をみてやると、
最初の方に Configure に書き込んだ設置を展開していて、
もしそこに 'base' があればそれを優先する仕組み。
デフォはこれは設定されていないんで、 dirname( env( 'PHP_SELF' ) ) から算出してるってこと
指摘いただいた内容でやってみたところ、
確かに /cake_install だったのが / に変わり、$html->linkも、cake_installなしで
出力されましたが、UploadPackというプラグインの画像出力が
<img src="//uploaddir/image.png"> のようになり、画像がでなくなりました…
これはプラグインのソースを修正する必要があるのかもしれません。
そして、色々やっていただいて本当に申し訳ないのですが、
ドキュメントルート直下の /.htaccess の記述が間違っていたようで、
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /cake_install
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
としていたのを、
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^$ cake_install/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ cake_install/$1 [L]
</IfModule>
と変更すると、うまくいきました!
修正後の記述も、ネットから拾ってきたものでよく理解はしていないのですが、
なんとかこれで動きそうです。
本当にありがとうございました&すいませんでした。
確かに /cake_install だったのが / に変わり、$html->linkも、cake_installなしで
出力されましたが、UploadPackというプラグインの画像出力が
<img src="//uploaddir/image.png"> のようになり、画像がでなくなりました…
これはプラグインのソースを修正する必要があるのかもしれません。
そして、色々やっていただいて本当に申し訳ないのですが、
ドキュメントルート直下の /.htaccess の記述が間違っていたようで、
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /cake_install
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
としていたのを、
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^$ cake_install/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ cake_install/$1 [L]
</IfModule>
と変更すると、うまくいきました!
修正後の記述も、ネットから拾ってきたものでよく理解はしていないのですが、
なんとかこれで動きそうです。
本当にありがとうございました&すいませんでした。
とにかく .htaccess の設定とか体当たりで確かめるのはやめれw
身体もたないぞw
身体もたないぞw
メモまで丁寧にありがとうございます!
$__paths[0]['base'] に値が入ってるのがダメなような気はしたんですが
それがどこでどうセットされてるかまでは見れなかったんで
今後の参考にさせていただきます!!
$__paths[0]['base'] に値が入ってるのがダメなような気はしたんですが
それがどこでどうセットされてるかまでは見れなかったんで
今後の参考にさせていただきます!!
> とにかく .htaccess の設定とか体当たりで確かめるのはやめれw
> 身体もたないぞw
まさにそのとおりでした。
実は
/cake_install
├/app
└/cake
でインストールしたあと、うまくいかなかったんで
/app
/cake
で直下にぶちまけて動かしてたんです。
で、先ほどからずっと/cake_installの方のファイルをさわったりしてたんですが
.htaccessの修正で対応できた!と思い、
/app
/cake
の方を消したら、また元に戻りました。
URLがころころ変わってたのも、環境が複数あったのが問題だったようで…
そして、指摘された Configure::write( 'App.base', '/' ); を入れて、
リンクURLは問題なく出力されていますが、
先ほど書いた通りプラグインのUploadPackの画像出力URLが//になることだけが問題になりました。
UploadPackのソースを確認してみます
> 身体もたないぞw
まさにそのとおりでした。
実は
/cake_install
├/app
└/cake
でインストールしたあと、うまくいかなかったんで
/app
/cake
で直下にぶちまけて動かしてたんです。
で、先ほどからずっと/cake_installの方のファイルをさわったりしてたんですが
.htaccessの修正で対応できた!と思い、
/app
/cake
の方を消したら、また元に戻りました。
URLがころころ変わってたのも、環境が複数あったのが問題だったようで…
そして、指摘された Configure::write( 'App.base', '/' ); を入れて、
リンクURLは問題なく出力されていますが、
先ほど書いた通りプラグインのUploadPackの画像出力URLが//になることだけが問題になりました。
UploadPackのソースを確認してみます
センスのかけらもないコーディングですが、
プラグインのuploadpackを下記の通り修正し、今回の一連の問題が解決しました。
ありがとうございました。
function image($data, $path, $options = array(), $htmlOptions = array()) {
$options += array('urlize' => false);
// src="//imageurl" になって出力されるのを修正
// 生成されたタグから、"//example/example.png" の最初の / を一本削除
// return $this->output($this->Html->image($this->url($data, $path, $options), $htmlOptions));
$imgtag = $this->Html->image($this->url($data, $path, $options), $htmlOptions);
$imgtag = str_replace('//', '/', $imgtag);
return $this->output($imgtag);
}
プラグインのuploadpackを下記の通り修正し、今回の一連の問題が解決しました。
ありがとうございました。
function image($data, $path, $options = array(), $htmlOptions = array()) {
$options += array('urlize' => false);
// src="//imageurl" になって出力されるのを修正
// 生成されたタグから、"//example/example.png" の最初の / を一本削除
// return $this->output($this->Html->image($this->url($data, $path, $options), $htmlOptions));
$imgtag = $this->Html->image($this->url($data, $path, $options), $htmlOptions);
$imgtag = str_replace('//', '/', $imgtag);
return $this->output($imgtag);
}
DBでビューを管理したいのですが、
ググっても情報が1.2や1.3系で古いです。
2.x系ではどうすればいいのでしょうか?
DBでビュー管理ししている人が居たら教えてください。
ググっても情報が1.2や1.3系で古いです。
2.x系ではどうすればいいのでしょうか?
DBでビュー管理ししている人が居たら教えてください。
どこまでDBに任せるのか分からないけど、View の描画ロジックそのものが
ファイルシステムと分離されていないからコアを変更することになるけどいいの?
もっとも、PHPのソースコードをDBに格納してそれを取り出して云々て話だったら1.3系であろうが2.x系であろうが同じ。
ファイルシステムと分離されていないからコアを変更することになるけどいいの?
もっとも、PHPのソースコードをDBに格納してそれを取り出して云々て話だったら1.3系であろうが2.x系であろうが同じ。
>>466
DBにする必要あんの?
DBにする必要あんの?
その程度のことなら実体はファイルのままにしておいた方が良い。
パスの情報をコアに教えるのは簡単だし結合は緩いんで、
ディレクトリの構造を工夫して、パスの管理をDBに委ねるっていうのがいいと思うが。
あと、更新履歴なんかはDBに任せられるな。
パスの情報をコアに教えるのは簡単だし結合は緩いんで、
ディレクトリの構造を工夫して、パスの管理をDBに委ねるっていうのがいいと思うが。
あと、更新履歴なんかはDBに任せられるな。
ちなみにテンプレートファイルを呼び出してるロジックがどこにあるか分かってる?
>>465
最近Azureが更新されて、Linuxの仮想サーバを立てられるようになったり、
仮想ネットワークが組めるようになってる。データの永続化のしきいも下がってる。
俺が試したのはLinuxの仮想サーバ上。CentOS6.2だから素直な環境が組める。
これからPHPの運用環境をAzureに組むなら、どういう基盤が良いか再考したほうがいいよ。
最近Azureが更新されて、Linuxの仮想サーバを立てられるようになったり、
仮想ネットワークが組めるようになってる。データの永続化のしきいも下がってる。
俺が試したのはLinuxの仮想サーバ上。CentOS6.2だから素直な環境が組める。
これからPHPの運用環境をAzureに組むなら、どういう基盤が良いか再考したほうがいいよ。
>>470
例えばなんですが、ブログのテンプレ(テーマ)って
修正しても元に戻したり、別の物を選べるじゃないですか?
それをファイルで管理するって事は、元ファイルをwebroot以外の場所に置いて、
使用する時に/app/views/themed/以下にコピーするって事でしょうか?
そして、/app/views/themed/に作ったテーマのソースを
file_get_contentsで取得してfopen→fwriteで編集するみたいな。
そうであれば、DBに記録するのも、
ファイルとして用意するのも同じような気がしますね・・・
更新履歴宿のテーマを使うかだけをDBに記録するだけで良いのかなぁ
例えばなんですが、ブログのテンプレ(テーマ)って
修正しても元に戻したり、別の物を選べるじゃないですか?
それをファイルで管理するって事は、元ファイルをwebroot以外の場所に置いて、
使用する時に/app/views/themed/以下にコピーするって事でしょうか?
そして、/app/views/themed/に作ったテーマのソースを
file_get_contentsで取得してfopen→fwriteで編集するみたいな。
そうであれば、DBに記録するのも、
ファイルとして用意するのも同じような気がしますね・・・
更新履歴宿のテーマを使うかだけをDBに記録するだけで良いのかなぁ
>>463
WPしか知らんが、あれはファイルの本体があって、更新履歴はDBに保存してる。
テーマの管理はファイルの記述ルールにのっとってリクエストのたびに解決してる。
それをたとえばCakePHPでやりたいんなら、更新履歴の管理はコアとは関係のない実装が可能なので、
コアの拡張はテンプレートのファイル構造の変更だけで済む。
で、それ(ファイル構造)だけならコアの設計ですでに綺麗に切り離されてるから
アプリケーションで対応できると思う。
あと、コアの変更に関してはアプリケーション側でほとんどのコアライブラリファイルを
上書きできるようにしてあるわ。
俺の知識不足だった。
すまん。
WPしか知らんが、あれはファイルの本体があって、更新履歴はDBに保存してる。
テーマの管理はファイルの記述ルールにのっとってリクエストのたびに解決してる。
それをたとえばCakePHPでやりたいんなら、更新履歴の管理はコアとは関係のない実装が可能なので、
コアの拡張はテンプレートのファイル構造の変更だけで済む。
で、それ(ファイル構造)だけならコアの設計ですでに綺麗に切り離されてるから
アプリケーションで対応できると思う。
あと、コアの変更に関してはアプリケーション側でほとんどのコアライブラリファイルを
上書きできるようにしてあるわ。
俺の知識不足だった。
すまん。
>>475
詳しく教えていただいたのに恐縮ですが、
おっしゃる意味がいまいち想像できず、理解できませんでした・・。
ここでいう「更新履歴」とは、「どのユーザがどのファイルを更新した」
と言う情報のみを記録するデータでしょうか?
それとも、ソース毎管理するのでしょうか?
当初、私が>>463で記載した「DBをビューで管理したい」が、
別にDBでなくても、もっと便利で簡単な方法があるなら
DBにこだわりはありません。
最終的な目的としては、ブログのように
複数のデザインを切り替えて編集できる機能を持ちたいのです。
それを管理画面から操作したいと思っています。
(そう言う点で言えばWordpressと同じなのかもしれません
詳しく教えていただいたのに恐縮ですが、
おっしゃる意味がいまいち想像できず、理解できませんでした・・。
ここでいう「更新履歴」とは、「どのユーザがどのファイルを更新した」
と言う情報のみを記録するデータでしょうか?
それとも、ソース毎管理するのでしょうか?
当初、私が>>463で記載した「DBをビューで管理したい」が、
別にDBでなくても、もっと便利で簡単な方法があるなら
DBにこだわりはありません。
最終的な目的としては、ブログのように
複数のデザインを切り替えて編集できる機能を持ちたいのです。
それを管理画面から操作したいと思っています。
(そう言う点で言えばWordpressと同じなのかもしれません
お前らに質問です。
ちょっとしたシステムを作る場合とかだと
cakePHP とかのFWを使わずにpure php を使って組んだ方が
環境構築時間を短縮出来て効率が良いと思うんだけど、
お前らはどう思いますか?
ちょっとしたシステムを作る場合とかだと
cakePHP とかのFWを使わずにpure php を使って組んだ方が
環境構築時間を短縮出来て効率が良いと思うんだけど、
お前らはどう思いますか?
>>477
「ちょっとしたシステム」の規模が、掲示板とかお問い合わせフォームとか
その程度の物を指すなら、cake使わなくて良いと思う。
ただ、オープンソースや自作ライブラリを使いながら作るから、
pure phpと違うとは思うけど。
「ちょっとしたシステム」の規模が、掲示板とかお問い合わせフォームとか
その程度の物を指すなら、cake使わなくて良いと思う。
ただ、オープンソースや自作ライブラリを使いながら作るから、
pure phpと違うとは思うけど。
オレオレ作って使いたいんだけど、どうしても時間がないから
渋々Cake使ってる
まあ確かに開発は速い、動作は遅い
渋々Cake使ってる
まあ確かに開発は速い、動作は遅い
>ここでいう「更新履歴」とは、「どのユーザがどのファイルを更新した」
>と言う情報のみを記録するデータでしょうか?
>それとも、ソース毎管理するのでしょうか?
そんなことは好きにやればいいじゃん。
CakePHPのコアから見れば全く関係ない。
テンプレートファイルのパスさえ渡してくれたらちゃんと処理してくれる。
分かってるとは思うけど、やろうとしていることはどっちかっていうと、
Cakeが本来想定していない使用方法という意味において応用レベルだよ。
少なくともコアの通常のロジックを一通り理解していないと対応できないんじゃないかなぁ
なんとなく質問のレベルと目指す目標が離れすぎてる気がする。。。
まぁ発想としては面白いんで頑張ってw
あと、WPの更新履歴に関しては勘違いしていた。実際には履歴は保存されていなかった。
でも、それを実装したいならさっき書いたようにDBで保存すればいいんじゃない?
>と言う情報のみを記録するデータでしょうか?
>それとも、ソース毎管理するのでしょうか?
そんなことは好きにやればいいじゃん。
CakePHPのコアから見れば全く関係ない。
テンプレートファイルのパスさえ渡してくれたらちゃんと処理してくれる。
分かってるとは思うけど、やろうとしていることはどっちかっていうと、
Cakeが本来想定していない使用方法という意味において応用レベルだよ。
少なくともコアの通常のロジックを一通り理解していないと対応できないんじゃないかなぁ
なんとなく質問のレベルと目指す目標が離れすぎてる気がする。。。
まぁ発想としては面白いんで頑張ってw
あと、WPの更新履歴に関しては勘違いしていた。実際には履歴は保存されていなかった。
でも、それを実装したいならさっき書いたようにDBで保存すればいいんじゃない?
ようやく さくら にcake2 の設定ができたわ。
嘘っぱちの情報を公開しているブログのせいで苦戦したぜw
嘘っぱちの情報を公開しているブログのせいで苦戦したぜw
サンクス。
しっかしcakePHP2.0の設定ってメンドクサイね。
もっと手軽にならないものか。
しっかしcakePHP2.0の設定ってメンドクサイね。
もっと手軽にならないものか。
十中八九設置ミス。
ディレクトリの配置、各種パスの設定をもう一度見直してみたら?
ディレクトリの配置、各種パスの設定をもう一度見直してみたら?
いや、どっちも正しいよ。
っていうか、ほぼどんなパターンも間違いではない。
ブラウザの要求が webroot の index.php に渡せて、
なおかつ webroot/index.php がアプリケーションを実行できて、
tempディレクトリ内に書き込み権限があれば
どんなパターンでも動く。
で、そういう柔軟な配置に対応させうるために、index.php とかにパスの指定をするようになっている。
中にはデフォルトではコメントアウトしてるのもあったりするので、
量はそう多くないから実行するファイルの順に一度目を通したらいいと思う。
いずれにせよ、それらを逐一順にきっちり設定すれば動くように設計されてる。
むしろ、動かないパターンを見つけて報告すれば話題になるかもしれんよ。
コメントは英語だけど簡単だから絶対読める。
っていうか、ほぼどんなパターンも間違いではない。
ブラウザの要求が webroot の index.php に渡せて、
なおかつ webroot/index.php がアプリケーションを実行できて、
tempディレクトリ内に書き込み権限があれば
どんなパターンでも動く。
で、そういう柔軟な配置に対応させうるために、index.php とかにパスの指定をするようになっている。
中にはデフォルトではコメントアウトしてるのもあったりするので、
量はそう多くないから実行するファイルの順に一度目を通したらいいと思う。
いずれにせよ、それらを逐一順にきっちり設定すれば動くように設計されてる。
むしろ、動かないパターンを見つけて報告すれば話題になるかもしれんよ。
コメントは英語だけど簡単だから絶対読める。
>index.php とかにパスの指定をする
補足すると、公開するWebページの設定だけなら webroot/index.php の設定
Shell を実行するときは App/Console/cake.php の設定
Webページのテストするときは webroot/test.php の設定
で OK だったと思う。
1.3に比べたらかなり設定は楽になってる。
補足すると、公開するWebページの設定だけなら webroot/index.php の設定
Shell を実行するときは App/Console/cake.php の設定
Webページのテストするときは webroot/test.php の設定
で OK だったと思う。
1.3に比べたらかなり設定は楽になってる。
CakePHP の1.3を最後に使ってから2年以上経過して、
今その後継のサイトを作る話が出てるんだけど、
やっぱ最新版を使うべきだよね?
噂では3が出るとかでないとかって話もあるんだけど、それは時期尚早かな?
まだ企画段階で、実際に制作に入るのは10月頃だと思うんだけど。
ちなみにうちは基本、デザインの会社なんで
フレームワーク触れる人間が俺しかいないという惨状 orz...
今その後継のサイトを作る話が出てるんだけど、
やっぱ最新版を使うべきだよね?
噂では3が出るとかでないとかって話もあるんだけど、それは時期尚早かな?
まだ企画段階で、実際に制作に入るのは10月頃だと思うんだけど。
ちなみにうちは基本、デザインの会社なんで
フレームワーク触れる人間が俺しかいないという惨状 orz...
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- 【PHP】フレームワーク CakePHP 16ホール目【v2.4】 (1001) - [96%] - 2014/3/3 3:00
- 【PHP】フレームワーク CakePHP 15ホール目【v2.2】 (985) - [96%] - 2013/9/7 8:30
- 【PHP】フレームワーク CakePHP 13ホール目【v2.0】 (995) - [96%] - 2012/4/23 21:16 ○
- 【PHP】フレームワーク CakePHP 17ホール目【v2.4】 (984) - [96%] - 2015/1/10 2:45
- 【PHP】フレームワーク CakePHP 10ホール目【v1.3】 (1001) - [95%] - 2011/2/13 8:32
- 【PHP】フレームワーク CakePHP 11ホール目【v1.3】 (1001) - [95%] - 2011/6/30 22:32
- 【PHP】フレームワーク CakePHP 19ホール目【v3.3】 (844) - [95%] - 2023/2/2 14:30
- 【PHP】フレームワーク CakePHP 17ホール目【v3α】 (955) - [93%] - 2016/11/15 20:45
- 【PHP】フレームワーク CakePHP 9ホール目【v1.3】 (1001) - [93%] - 2010/11/1 2:53
- 【PHP】フレームワーク CakePHP 4ホール目【v1.2】 (1001) - [92%] - 2008/12/19 21:06 ○
- 【PHP】フレームワーク CakePHP 12ホール目【笑】 (1001) - [92%] - 2011/11/8 7:01
- 【PHP】フレームワーク CakePHP 8ホール目【1.3】 (1001) - [91%] - 2010/7/22 22:16
- 【PHP】フレームワーク CakePHP 5ホール目【v1.2】 (985) - [90%] - 2009/3/7 4:53 ☆
- 【PHP】フレームワーク CakePHP 7ホール目【v1.2】 (1001) - [90%] - 2010/3/18 1:18 ○
- 【PHP】フレームワーク CakePHP 6ホール目【v1.2】 (933) - [90%] - 2009/8/19 2:06 ○
- 【PHP】フレームワーク CakePHP 3ホール目【本命】 (1001) - [84%] - 2008/6/19 7:19 ○
トップメニューへ / →のくす牧場書庫について