のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,828人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【PHP】フレームワーク CakePHP 14ホール目【v2.1】

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    452 : nobodyさん - 2012/07/31(火) 22:26:19.86 ID:??? (+15,+22,+0)
    すいません、ありがとうございます!
    453 : nobodyさん - 2012/07/31(火) 22:51:02.56 ID:??? (-27,-30,-50)
    何度も申し訳ないですが、
    Router::url()のソースが挙動の操作をしているとのことで、少し見てみましたが
    <?php echo $html->base; ?>をすると、
    /cake_install がでたり、何もでない(空文字)だったりするようです。
    454 : nobodyさん - 2012/07/31(火) 23:13:11.82 ID:??? (-26,-30,-162)
    もう一度.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 となっています。

    456 : nobodyさん - 2012/07/31(火) 23:37:52.23 ID:??? (+12,+18,-12)
    >>454
    .htaccess は最初のままでいいよ、たぶん。
    457 : nobodyさん - 2012/07/31(火) 23:47:04.93 ID:??? (-27,-30,-167)
    メモ:


    HtmlHelper::link で吐き出すURLは Router::url で生成されてるんだけど、
    ベースURLはRouterのインスタンスの$__paths[0]['base'] に保存されてる。
    で、これは Dispatcher::baseUrl() の戻り値。

    この Dispatcher::baseUrl() をみてやると、
    最初の方に Configure に書き込んだ設置を展開していて、
    もしそこに 'base' があればそれを優先する仕組み。

    デフォはこれは設定されていないんで、 dirname( env( 'PHP_SELF' ) ) から算出してるってこと
    458 : nobodyさん - 2012/07/31(火) 23:49:45.96 ID:??? (-27,-30,+0)
    指摘いただいた内容でやってみたところ、
    確かに /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>
    と変更すると、うまくいきました!
    修正後の記述も、ネットから拾ってきたものでよく理解はしていないのですが、
    なんとかこれで動きそうです。

    本当にありがとうございました&すいませんでした。
    459 : nobodyさん - 2012/07/31(火) 23:50:05.45 ID:??? (+27,+29,-21)
    とにかく .htaccess の設定とか体当たりで確かめるのはやめれw
    身体もたないぞw
    460 : nobodyさん - 2012/07/31(火) 23:51:50.45 ID:??? (-27,-30,-53)
    メモまで丁寧にありがとうございます!
    $__paths[0]['base'] に値が入ってるのがダメなような気はしたんですが
    それがどこでどうセットされてるかまでは見れなかったんで
    今後の参考にさせていただきます!!
    461 : nobodyさん - 2012/08/01(水) 00:09:50.35 ID:??? (-27,-30,-250)
    > とにかく .htaccess の設定とか体当たりで確かめるのはやめれw
    > 身体もたないぞw
    まさにそのとおりでした。

    実は
    /cake_install
     ├/app
     └/cake
    でインストールしたあと、うまくいかなかったんで
    /app
    /cake
    で直下にぶちまけて動かしてたんです。
    で、先ほどからずっと/cake_installの方のファイルをさわったりしてたんですが
    .htaccessの修正で対応できた!と思い、
    /app
    /cake
    の方を消したら、また元に戻りました。
    URLがころころ変わってたのも、環境が複数あったのが問題だったようで…
    そして、指摘された Configure::write( 'App.base', '/' ); を入れて、
    リンクURLは問題なく出力されていますが、
    先ほど書いた通りプラグインのUploadPackの画像出力URLが//になることだけが問題になりました。
    UploadPackのソースを確認してみます
    462 : nobodyさん - 2012/08/01(水) 00:56:24.96 ID:??? (-27,-30,-248)
    センスのかけらもないコーディングですが、
    プラグインの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);
    }
    463 : nobodyさん - 2012/08/02(木) 17:37:50.48 ID:??? (+17,-29,-27)
    DBでビューを管理したいのですが、
    ググっても情報が1.2や1.3系で古いです。

    2.x系ではどうすればいいのでしょうか?
    DBでビュー管理ししている人が居たら教えてください。
    464 : nobodyさん - 2012/08/02(木) 20:48:40.47 ID:??? (+37,+29,-116)
    どこまでDBに任せるのか分からないけど、View の描画ロジックそのものが
    ファイルシステムと分離されていないからコアを変更することになるけどいいの?

    もっとも、PHPのソースコードをDBに格納してそれを取り出して云々て話だったら1.3系であろうが2.x系であろうが同じ。
    466 : nobodyさん - 2012/08/02(木) 21:02:45.91 ID:??? (+31,+29,-65)
    >>464
    ブログのテンプレート編集ってあるじゃないですか?
    ああいうことをしたいと思っているんです。
    公開画面ではCakeのビューは使わずにDBのみで対応するとか
    467 : nobodyさん - 2012/08/02(木) 21:07:49.84 ID:??? (+4,+3,-2)
    >>466
    DBにする必要あんの?
    468 : nobodyさん - 2012/08/02(木) 21:08:00.72 ID:??? (-23,-25,-9)
    >>466
    テーマ使えばいいんじゃないか?
    baserCMSのテーマ管理が参考になると思うよ
    469 : 463 - 2012/08/02(木) 21:20:15.13 ID:??? (+17,+18,-11)
    >>467-468
    ファイルを直接編集するよりもDBの方が修正しやすいと思いまして。
    初期化やコピーする場合とか。
    470 : nobodyさん - 2012/08/02(木) 21:40:40.11 ID:??? (+30,+29,-89)
    その程度のことなら実体はファイルのままにしておいた方が良い。

    パスの情報をコアに教えるのは簡単だし結合は緩いんで、
    ディレクトリの構造を工夫して、パスの管理をDBに委ねるっていうのがいいと思うが。
    あと、更新履歴なんかはDBに任せられるな。
    471 : nobodyさん - 2012/08/02(木) 21:44:35.65 ID:??? (+25,+27,-30)
    ちなみにテンプレートファイルを呼び出してるロジックがどこにあるか分かってる?
    472 : nobodyさん - 2012/08/02(木) 22:09:38.31 ID:??? (-28,-29,-124)
    >>465
    最近Azureが更新されて、Linuxの仮想サーバを立てられるようになったり、
    仮想ネットワークが組めるようになってる。データの永続化のしきいも下がってる。
    俺が試したのはLinuxの仮想サーバ上。CentOS6.2だから素直な環境が組める。
    これからPHPの運用環境をAzureに組むなら、どういう基盤が良いか再考したほうがいいよ。
    473 : nobodyさん - 2012/08/02(木) 22:13:49.40 ID:kl7SocZ+ (-23,+29,-17)
    >>472
    サンキュー

    個人的にはAWSで行きたいんだけど
    お上からの指令でAzureでやんちゃくちゃならない案件なんだよね。
    474 : 463 - 2012/08/03(金) 01:19:17.08 ID:??? (-22,-30,-152)
    >>470
    例えばなんですが、ブログのテンプレ(テーマ)って
    修正しても元に戻したり、別の物を選べるじゃないですか?
    それをファイルで管理するって事は、元ファイルをwebroot以外の場所に置いて、
    使用する時に/app/views/themed/以下にコピーするって事でしょうか?
    そして、/app/views/themed/に作ったテーマのソースを
    file_get_contentsで取得してfopen→fwriteで編集するみたいな。

    そうであれば、DBに記録するのも、
    ファイルとして用意するのも同じような気がしますね・・・
    更新履歴宿のテーマを使うかだけをDBに記録するだけで良いのかなぁ
    475 : nobodyさん - 2012/08/03(金) 07:21:24.39 ID:??? (+35,+29,-172)
    >>463
    WPしか知らんが、あれはファイルの本体があって、更新履歴はDBに保存してる。
    テーマの管理はファイルの記述ルールにのっとってリクエストのたびに解決してる。

    それをたとえばCakePHPでやりたいんなら、更新履歴の管理はコアとは関係のない実装が可能なので、
    コアの拡張はテンプレートのファイル構造の変更だけで済む。
    で、それ(ファイル構造)だけならコアの設計ですでに綺麗に切り離されてるから
    アプリケーションで対応できると思う。

    あと、コアの変更に関してはアプリケーション側でほとんどのコアライブラリファイルを
    上書きできるようにしてあるわ。
    俺の知識不足だった。
    すまん。
    476 : 463 - 2012/08/03(金) 14:43:49.29 ID:??? (+39,+30,-165)
    >>475
    詳しく教えていただいたのに恐縮ですが、
    おっしゃる意味がいまいち想像できず、理解できませんでした・・。

    ここでいう「更新履歴」とは、「どのユーザがどのファイルを更新した」
    と言う情報のみを記録するデータでしょうか?
    それとも、ソース毎管理するのでしょうか?

    当初、私が>>463で記載した「DBをビューで管理したい」が、
    別にDBでなくても、もっと便利で簡単な方法があるなら
    DBにこだわりはありません。

    最終的な目的としては、ブログのように
    複数のデザインを切り替えて編集できる機能を持ちたいのです。
    それを管理画面から操作したいと思っています。
    (そう言う点で言えばWordpressと同じなのかもしれません
    477 : nobodyさん - 2012/08/03(金) 15:25:35.11 ID:??? (+34,+20,-59)
    お前らに質問です。

    ちょっとしたシステムを作る場合とかだと

    cakePHP とかのFWを使わずにpure php を使って組んだ方が

    環境構築時間を短縮出来て効率が良いと思うんだけど、

    お前らはどう思いますか?
    478 : nobodyさん - 2012/08/03(金) 15:33:52.08 ID:??? (+8,+6,-13)
    フレームワークを使うやつはアホ
    479 : nobodyさん - 2012/08/03(金) 15:44:57.43 ID:??? (+39,+29,-72)
    >>477
    「ちょっとしたシステム」の規模が、掲示板とかお問い合わせフォームとか
    その程度の物を指すなら、cake使わなくて良いと思う。

    ただ、オープンソースや自作ライブラリを使いながら作るから、
    pure phpと違うとは思うけど。
    480 : nobodyさん - 2012/08/03(金) 16:14:27.55 ID:??? (+35,+29,-2)
    >>477
    もちろん場合によります。
    当たり前です。
    481 : nobodyさん - 2012/08/03(金) 16:15:48.17 ID:??? (+28,+29,-10)
    >>478
    使う阿呆に使わぬ阿呆
    同じ阿呆なら使わにゃそんそん
    482 : nobodyさん - 2012/08/03(金) 18:12:50.67 ID:S+tv8I6e (+19,+30,+0)
    483 : nobodyさん - 2012/08/03(金) 18:13:45.87 ID:S+tv8I6e (+34,+29,-62)
    >>479
    自作ライブラリを使った方が
    あらゆる機能を把握出来るから
    カスタマイズもスムーズに行くと思うんだよね。

    >>480
    あたりまえだのくらっかー

    今回の案件は、オレオレFWで行きますぜ。
    484 : nobodyさん - 2012/08/03(金) 19:08:06.08 ID:??? (+27,+29,-16)
    オレオレ作って使いたいんだけど、どうしても時間がないから
    渋々Cake使ってる
    まあ確かに開発は速い、動作は遅い
    485 : nobodyさん - 2012/08/03(金) 19:36:57.12 ID:??? (+41,+30,-228)
    >ここでいう「更新履歴」とは、「どのユーザがどのファイルを更新した」
    >と言う情報のみを記録するデータでしょうか?
    >それとも、ソース毎管理するのでしょうか?

    そんなことは好きにやればいいじゃん。
    CakePHPのコアから見れば全く関係ない。
    テンプレートファイルのパスさえ渡してくれたらちゃんと処理してくれる。

    分かってるとは思うけど、やろうとしていることはどっちかっていうと、
    Cakeが本来想定していない使用方法という意味において応用レベルだよ。
    少なくともコアの通常のロジックを一通り理解していないと対応できないんじゃないかなぁ

    なんとなく質問のレベルと目指す目標が離れすぎてる気がする。。。
    まぁ発想としては面白いんで頑張ってw

    あと、WPの更新履歴に関しては勘違いしていた。実際には履歴は保存されていなかった。
    でも、それを実装したいならさっき書いたようにDBで保存すればいいんじゃない?
    486 : nobodyさん - 2012/08/03(金) 19:51:51.79 ID:??? (+33,+29,-18)
    >485 は、>>476 のレスね

    ちなみに
    >それとも、ソース毎管理するのでしょうか?
    は、俺の脳内ではソースを丸ごと保存するイメージ
    487 : 463 - 2012/08/03(金) 20:25:43.13 ID:??? (+33,+29,-3)
    >>485-486
    わかりました。アドバイスいただいたことを参考に、試してみます。
    488 : nobodyさん - 2012/08/05(日) 01:21:49.66 ID:R26XMbHJ (-20,+29,-12)
    ようやく さくら にcake2 の設定ができたわ。

    嘘っぱちの情報を公開しているブログのせいで苦戦したぜw
    490 : nobodyさん - 2012/08/05(日) 19:33:36.03 ID:??? (+22,+29,-1)
    むしろいじるものだよ
    491 : nobodyさん - 2012/08/05(日) 19:43:03.99 ID:R26XMbHJ (-20,+29,-21)
    サンクス。

    しっかしcakePHP2.0の設定ってメンドクサイね。
    もっと手軽にならないものか。
    494 : nobodyさん - 2012/08/05(日) 23:00:58.57 ID:??? (+17,+24,-28)
    .htaccess とかいじり倒してない?
    495 : nobodyさん - 2012/08/05(日) 23:04:47.87 ID:??? (+21,+28,-26)
    十中八九設置ミス。
    ディレクトリの配置、各種パスの設定をもう一度見直してみたら?
    497 : nobodyさん - 2012/08/06(月) 02:18:43.07 ID:??? (+32,+29,-148)
    いや、どっちも正しいよ。
    っていうか、ほぼどんなパターンも間違いではない。

    ブラウザの要求が webroot の index.php に渡せて、
    なおかつ webroot/index.php がアプリケーションを実行できて、
    tempディレクトリ内に書き込み権限があれば
    どんなパターンでも動く。

    で、そういう柔軟な配置に対応させうるために、index.php とかにパスの指定をするようになっている。
    中にはデフォルトではコメントアウトしてるのもあったりするので、
    量はそう多くないから実行するファイルの順に一度目を通したらいいと思う。

    いずれにせよ、それらを逐一順にきっちり設定すれば動くように設計されてる。
    むしろ、動かないパターンを見つけて報告すれば話題になるかもしれんよ。
    コメントは英語だけど簡単だから絶対読める。
    498 : nobodyさん - 2012/08/06(月) 02:31:25.59 ID:??? (-27,-30,-107)
    >index.php とかにパスの指定をする

    補足すると、公開するWebページの設定だけなら webroot/index.php の設定
    Shell を実行するときは App/Console/cake.php の設定
    Webページのテストするときは webroot/test.php の設定

    で OK だったと思う。
    1.3に比べたらかなり設定は楽になってる。
    499 : nobodyさん - 2012/08/06(月) 14:34:51.02 ID:??? (+42,+29,-117)
    CakePHP の1.3を最後に使ってから2年以上経過して、
    今その後継のサイトを作る話が出てるんだけど、
    やっぱ最新版を使うべきだよね?

    噂では3が出るとかでないとかって話もあるんだけど、それは時期尚早かな?

    まだ企画段階で、実際に制作に入るのは10月頃だと思うんだけど。

    ちなみにうちは基本、デザインの会社なんで
    フレームワーク触れる人間が俺しかいないという惨状 orz...
    500 : nobodyさん - 2012/08/06(月) 14:51:40.29 ID:??? (+2,+13,+0)
    炎上必死
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について