【PHP】フレームワーク CakePHP 14ホール目【v2.1】
1 :
nobodyさん :
2012/05/01(火) 16:58:44.53 ID:fVBzm1/A
落ちてたっぽいから立てたけど・・・大丈夫かな
乙!いきなりDAT落ちしててびっくりしたから・・・ それにしても2.1.1でしかも2.2.0のベータって・・・早すぎだろw
2.1.2使用中で変な事になりました。 Aというコントローラがあります。 > public $uses = 'Bモデル'; という記述がしてあります。 Aのindexページで、 > echo $this->Form->create(null,array('type'=>'post','action'=>'Aのfunction')); というフォームを作って送信すると、 Aファンクションのページに飛ぶかと思ったらなぜか/Bモデル/Aのファンクション/に飛んで、 当然ながらMissing Controllerが出ます。 indexページのソースを読むとフォーム自体が/B/Aファンクションに飛ぶようになってます。 どなたか原因分かりますでしょうか?
7 :
nobodyさん :2012/05/03(木) 18:56:39.25 ID:2xcwqeF0
cakephpで作ったDBの中身をiphoneアプリからhttpで呼び出すと色々とめんどい?
>>7 簡単ではないけど面倒ってほどじゃないよ。
FlashBuilder(FlexBuilder?)でDBアクセスする方法がそのまま使えるんで、そのあたり調べるといいと思う。
体験版でandroidとかiPhoneのアプリ作り始めてサーバのDBアクセスのサービスを追加するとウィザードでコードを追加してくれるんで、必要な部分だけ流用してもいいかも。
(読み出しだけじゃなくて、追加・更新あたりのコードが全部追加されるので)
倫理的にはやり方だけ理解して自分で作った方が良いと思うけどw
まぁどうしてもcakeで作るなら結局作り直すことになるけどね
プラグインのwebroot直下にPHPファイルをおいて直接アクセスさせたいんだけど無理なのかな? app/js/plugin_name/file_name.ext を解釈するから、そもそも直下へのアクセス方法がない?? あばば
10 :
↑ :2012/05/05(土) 19:44:03.73 ID:???
あ、勘違い臭い。さあせん
アクセスはできるけどPHPとして動かしてはくれないのか そりゃそうか。そうなのか?まぁ仕方ないや。
バリデーションルールって、そもそもdataにそのカラムのキーが存在しない時はスルーしちゃうのね。 notEmptyスルーするからハマったわ。 requiredにtrueセットすればいいんだろうけど、この場合updateでうざいことになる。 じゃあってんで、onをcreateにして新規のときだけってしちゃうと、 更新時にnotEmptyが効かない=空でもスルーしちゃう 'field' => array( 'notempty' => array( 'rule' => array('notempty'), 'on' => 'update', // Limit validation to 'create' or 'update' operations ), 'notempty2' => array( 'rule' => array('notempty'), 'required' => true, 'on' => 'create', // Limit validation to 'create' or 'update' operations ), ), こうしろってこと? 相当めんどくさいんだけど
'field' => array( 'notempty' => array( 'rule' => array('notempty'), ), 'required' => array( 'required' => true, 'on' => 'create', ), ), これでよさげ。これなら許せる。
codeigniterと比較するとバリデーションの可読性が悪いな。 配列が入れ子になってるのが悪い。
15 :
nobodyさん :2012/05/09(水) 22:39:47.65 ID:rDWus5fC
CakePHPでGDを使いたいんだけど、viewにそのままGDのコード(色つきの長方形を描くような) 文字化けしてしまいます。 php.iniではUTF8、<?phpの前に余計なものもはいってない状態ですが、 CakePHPでGDを使う際には何か注意すべき点はあるのでしょうか
今後の案件はじめるなら2のほうがいいの? 1.3で作ったシステムがあるんだけどこれからも使える?
>>13 だめだったrule設定がないと確実にそのバリデーションがエラーになる。
>>16 「何で」作るかじゃなくて「何を」作るかだと思います。
はぁ?あれは1.3で作ったほうがいいがこれは2で作った方がいいとかあるの?
ない
強いて言えば何処の命で作るか。はあるかも。
参考になるかわからないけど、以前からCakePHPを採用している会社は新規案件も1.3だったけど、うちは1.xの実績ないから2.x採用してる
23 :
nobodyさん :2012/05/10(木) 23:19:54.66 ID:eaLKfNi7
cakephp1.3でボタンにロールオーバーさせたいんだけどうまくいかない。 smartRollover.js使って画像を_onと_offできりわけたいです。 だれかご教授くださいお願いします。
cake関係ないので嫌です
cssでやれよ
cakePHP2.0 を使っています。 現在、cakePHPのsave()を使ってupdateしようと 思っているのですが、そもそも更新対象のテーブルに主キーが2つある場合には どうしたら更新(update)させる事が出来るのでしょうか? (saveはinsertとupdateを自動で判定するそうなのですが 下記コードだと常にinsertが走ってしまい主キー違反エラーが出てしまいます。) ■table(hoge) p_id_1 (int) 主キー p_id_2 (int) 主キー name (varchar) ■php $p_id_1 = 11; $p_id_2 = 22; $name = "ななし子"; $hoge_data = array( 'hoge' => array ('p_id_1' => $p_id_1,'p_id_2' => $p_id_2,'name' => $name)); $this->hoge->save($hoge_data);
主キーが2つ???
ありえない
完全に設計が破綻しています。本当にあry
複合キー cakephp で検索
このスレの奴は複合キーを知らないから聞いても無駄だな
主キーを複合キーにするとか(笑)
CakePHP は複合主キーをサポートしません。 ってcookbookに書かれてるよ。
>>34 ありがとうございます。
諦めて delete / insert する事にします。
SQL直書きすればいいだろ
ビューの$paginator->prev('前へ')、$paginator->next('次へ')で それぞれリンクが無くてもテキストとして表示されます。 これをリンクがない場合はテキスト自体表示しないようにするには どうすればいいのでしょうか?
CakePHP+MySQLのシステムで、 DBのテーブル構成を、モデルから管理する方法で既存のもの何かないでしょうか モデルのコンストラクタで、CREATE TABLE IF NOT EXISTする カラムの追加なんかもソースに記述し、ソースに合った最新の状態になるようにALTER TABLEする もちろん、不要であれば何もしない こういうのがあれば理想ですが、自分で作るしかない?
DB設計見なおすべき。 そんな気軽にてーぶるいじらないでよ
せめてcake shemaでも使うようにすれば?
42 :
nobodyさん :2012/05/17(木) 22:55:40.27 ID:JCS/4U80
Hogeモデルから hoge、foo、barってテーブルから連結したデータを取るとき CASEとかCOUNTした値を バーチャルフィールドで取得するとき Hogeの配列では取得できるんだけど Fooの配列にいれることってできる? バージョン2.1.2です。
43 :
42 :2012/05/18(金) 01:47:39.34 ID:???
ゴメソ。自己解決しました。 $this->virtualFieldsをモデルで読んでたけど コントローラーから$this->Foo->virtualFields にしたらいけました。
>>1 cakeqs.orgのリンク消えてるけど?
>>44 1年くらい前につぶれた気がする
もう少し前かも
オワコンだからねー
47 :
nobodyさん :2012/05/19(土) 10:28:02.36 ID:o1Jo2iU0
MITライセンスだと販売・改変はOKだよ
49 :
nobodyさん :2012/05/19(土) 15:18:26.07 ID:MiaPSFRR
cakephpでシステム関係のファイルなどはドキュメントルートの外に起きたいんだけど zend frameworkとかcodeigniterとかyiiみたいに個別にパスを設定して変更できないの?
>>50 できるよ。マニュアルの最初の方に書いてあるはず
>>50 それってindex.phpでいじるやつでそ?
APP_DIRとかROOTとかあるけど
pluginsとかvendorsの項目が見当たらないんだが
質問なら何をやりたいのか省略しないできちんと書いてや pluginとかvendorsをどうしたいの?
>cakephpでシステム関係のファイルなどはドキュメントルートの外に起きたいんだけど
全部ドキュメントルート外において、wwwrootをドキュメントルートに指定しろ そしてもう来るな
バカが質問をよく読まないで回答しようとするからこうなる
バカなのに死なないで生きているからこうなる
>>55 だからその「システム関係のファイル」ってなんだよ?
cakeのコアのことならマニュアルに書いてある通りだし、
>>56 の言う通りだ。
vendorsやプラグインも個別にどこにでも好きなところに置けるけど、
>>50 には一言も書いてねえし
60 :
nobodyさん :2012/05/20(日) 19:10:25.50 ID:FJzAEkIA
cakeってファットモデルはあまりやらないほうがいいの?
稼働中のシステムでDBのALTER TABLEをしてそれに合わせてソース更新した場合、前の状態がキャッシュされてて動かない ことがしばしば起こるんだけど、自動でキャッシュ更新する方法ありませんか? キャッシュはmemcachedを使っています
>>60 ロジックをコントローラでなくモデルに書くってことか?
個人的にはそうすべきだと思う。
63 :
60 :2012/05/21(月) 20:21:34.67 ID:???
>>62 $this->Model->find('all')
みたいなやつでもモデルに書くようにしてる?
ケースバイケースだな。 何度も使う場合は書くけど、そうでない場合はコントローラで済ます
65 :
60 :2012/05/22(火) 01:03:15.16 ID:???
>>64 ありがとう。
複雑なクエリや、他のコントローラーから呼ぶようなやつはファットモデルにするよ。
規約は守ってもフレームワークだからって型に縛られないようにするよ。
>>61 テーブルに変更が加えられたかどうかをチェックしてしまったらキャッシュしている意味がなくなるから原理的にそれは出来ないんじゃないかな
俺は手動で消してる
ランキングやトピックスは随時更新じゃなくて、一定期間で更新だよな 一定期間毎にキャッシュを作っていると思うけど、その形で良いと思う
>>66 手動でどうやって消してますか?
全部消せば簡単だけどそうすると今アクセス中の客のセッションデータが吹っ飛ぶ
更新したいキャッシュだけ消す簡単な方法あります?というかどのキャッシュを消せば良いのか
それはマニュアル見ろとしか言えないな
70 :
nobodyさん :2012/05/22(火) 12:26:33.17 ID:mOE2ZVav
フォームによってモデルの必須条件を適宜変えたいんだけど、どうしたらいいんだろう
72 :
68 :2012/05/22(火) 14:05:53.81 ID:???
んー、なんか今Cakeのマニュアル見れないなあ なんか見れるページと、見れないページがある、どうなってんだ とりあえず助言ありがとう
しかもDB構造のキャッシュについては載ってなさそうだなあ 仕方ないソース見るか…
1.3で開発してるアプリケーションを2.xに変更しようと思ってるんだけど大変かな? コントローラ20個、モデル15個ぐらいの規模なんだが パッと手直しするだけで移行できる?
もう少し様子見た方が良いと思うけどな。今は情報少ないだろ 自分だけで使うなら別だが、仕事だと1.3で良いと思うよ
コントローラー3個のサイトでさえ移行めんどくさい でも新規サイトは2.xで作ってるから古いサイトのメンテナンスするときに混乱する でも移行したくない
2.1を使用中です。 例えば$tmp = "5,2,3,4,1"と言う並びを記憶した文字列があったとします。 それを$id_order = explode(',",$tmp);として、 $this->Hoge->find('all',array('conditions'=>array('id'=>$id_order))); として読み出します。読み出し自体は5件、ちゃんと拾ってきます。 ただこの場合、そのままだとid順に並び変わってしまうんです。 (この場合だと 1 2 3 4 5 に並び変わってしまう) そのまま5,2,3,4,1の順を保持するようには出来ないのでしょうか? queryで id IN (5,4,3,2,1)も試してみたのですが、やはりID順で並び変わってしまいます。 Hogeそのものにorder用のフィールドを準備して並び替えれば当然出来るんですが・・・ 今は配列を全部読んで新たに配列を作成するという力技でやっているのでうまい方法は無いかと思いまして・・ Cakephpとは関係ない様な気もしますが参考意見でもあれば宜しくお願いします。
>>77 SQLはorderを指定しないと読み出し順は保証されないよ
たまたま1,2,3,4,5になるかもしれないし、そうでないかもしれない。
だからちゃんとfindのオプションでorderを指定すべき
2.0で組んでます。 Componentから呼び出した、他のComponentのinitializeが、 実行されないんだけど、実行されるようにする方法はないですか?
80 :
nobodyさん :2012/05/25(金) 19:20:46.92 ID:/BxfQcHO
>>80 普通は表示できると思うんだけど。
Apacheのエラーログ見たら?
82 :
80 :2012/05/26(土) 00:55:32.99 ID:???
>>81 様
レスありがとうございます。
エラーログで分からなかったので、XMAPPもCAKEPHPもインストールし直したら解決しました。
>>70-71 これを1.3で実現したいんですけど、何か方法はありますか?
id以外のPrimaryKeyを指定できるのは、2系だけですか?
JsonView だと Forbidden になる現象遭遇した人いませんか? 2.1 です。
Apache の MIME type が原因でした。
本を見て勉強中なのですが <?=$form->create(null,array('type'=>'post','action'=>'.')) ?> 等のように、 <?= から始まるコードがあります。これをこのまま本の通りに入力するとエラーになってしまうのですが これは、 <?php echo と同じ意味なのでしょうか? 「<?php echo 」と書くと長いから「<?=」と書いているけど、コードを書くときは「<?php echo」に直してね っという事なのか 私の書き方や設定がおかしいから「<?=」でエラーが出るだけで、何かをすれば「<?=」でもエラーが出ないのか? 教えていただけると助かります。よろしくお願いします。
流れ関係ない質問ですが マニュアルに書いてないことを知るには、ソースを読めですか?
>>89 cakeは関係ない。php自体のshort_open_tag設定
>>90 生ソースの前にAPI一覧を見るといいよ
こんなメソッドあったのか。なんてのも結構あるし。
それで使い方気になったらソース見ていく。って感じで俺はずいぶん勉強になったよ
バリデーションの切り替えの質問したものだけど、 $this->User->validates(array('fieldList' => array('email', 'password')) こういう方法もあるんだね。 これでよかった。
ちなみに1.3で日本語のブックには載ってない方法だった
saveした際にvalidate errorだとviewのformに値が自動的に戻ります。 hasMany tableをsaveAllした際のvalidate errorだと、formに値が自動的に戻りません。 saveAllのvalidate errorの場合は手動でformに入力値を展開するものですか? 流儀があれば教えて頂きたいです。
bakeというものを使おうとしたのですが コマンドプロンプトでパスを設定後、 cake bake でデータベース設定しようとすると 最後にエラーになってしまいます。 Look okay? (y/n) [y] > y Do you wish to add another database configuration? [n] > n Creating file c:\xampp\htdocs\cake\baking\myapp\config\database.php Wrote `c:\xampp\htdocs\cake\baking\myapp\config\database.php` どうしたら直るでしょうか?教えていただけると助かります。 よろしくお願いいたします。
あ?エラーが出てるならエラーメッセージを貼れつってんだよ
99 :
95 :2012/06/03(日) 15:48:10.86 ID:???
失礼しました。 Creating file c:\xampp\htdocs\cake\baking\myapp\config\database.php Wrote `c:\xampp\htdocs\cake\baking\myapp\config\database.php` ではなく Fatal error: Class 'DATABASE_CONFIG' not found in C:\xampp\htdocs\cake\baking\ca ke\console\libs\tasks\db_config.php on line 260 でした。
でーたべーすこんふぃぐがねえんじゃねえのー?
ええ・・・ $form->input() でしかエラーを自動で表示してくれないって知ってた? $form->radio() じゃ表示してくれない。 今初めて知った・・・めちゃハマってたわ・・・くそが バーションは1.3
102 :
nobodyさん :2012/06/04(月) 16:16:23.03 ID:npZV9BUE
radioでも何も選択されてない状態でsubmitすればエラー出るんじゃないの?
103 :
101 :2012/06/05(火) 03:40:59.31 ID:???
104 :
nobodyさん :2012/06/06(水) 09:28:58.59 ID:KukcN70n
さくらインターネットを使ってるんですが、サブディレクトリでCakePHPを運用したい場合可能ですか? RewriteBaseをいじくりまわして、 ググってありとあらゆるパターンを試してみたんだけど どうやっても500エラーが出てできない・・・
htaccessじゃなくてindex.phpの設定だけでサブディレクトリ運用できたような記憶が 500出てるってことはhtaccessの記述が間違っているっぽい
直接Cakeに関係ないならすみません。 バージョンは2.1です。 cakeフォルダを作成してそこに配置したとします。 通常だとブラウザのアドレスバーにはhoge.xx.yy/cake/controller/actionと成るわけですが、 それをhoge.xx.yy/controller/actionと表示するようには出来ませんか? (見た目だけで良くて、アドレスバーに入力してその通りに動作する必要はありません) ネットでhtaccessというかRewriteのページをかなり見たのですが、見た限りは上で言うcontroller/action/*1/*2の順番というか、パラメータの記述方法を変えたりするような方法ばかりでした。 何かヒントになるサイトとかでも良いのでご指導頂けませんでしょうか?
PHP素人(触り始めて数日)ゆえ質問がCakePHP固有じゃなかったらすみません。 あるカテゴリキーワード(可変数。10個前後)が格納されたDBテーブルが あって、さらに別のテーブルにはカテゴリキーワードごとのトッピックスが 1000個程度登録されています。 トップページで各カテゴリキーワード毎にトピックを5件だけ表示させたいの ですが、やり方がわかりません。 カテゴリキーワードを取ってきて表示されるだけなら、findAllで取ってきて VIEW内でforeachでまわす事で実現できました。 foreachのループ内で、現在着目中のカテゴリキーワードで詳細テーブルから 5件だけ取ってくる方法が分かりません。 トピックを全レコード事前に取得しておいて、viewの中で無理やりキーワー ドが一致するものを5件だけ表示させる方法は思いつきますが、もっとスマー トな方法はありませんでしょうか?
>>106 htaccessで書き換えられないこともないだろうけど推奨されてないだろうし不具合の原因だからやめた方がいいよ
app/webrootをウェブルートに置けない理由はあるの?
>>107 アソシエーションを学ぶんだ
一発でカテゴリキーワードごとにトピックスを5件とってこれる
PHP全般の問題なのか、CakePHP固有の問題なのか判断できないような人は、 判断できるようになってから質問しろよ
110 :
104 :2012/06/07(木) 07:36:24.96 ID:T3CmHb0t
>>105 index.phpの設定ってどのindex.phpでしょう??
ちなみにどのように設定すると良いのが教えていただけると幸いです
>>108 返答ありがとうございます。
単純に今現在すでにHPがあり、機能追加をする形でcakeを使用するのですが、
現状appフォルダがすでにあるのでと言う理由だけです。
既存フォルダ名の変更が不可の為、フォルダを作って・・と言うのを考えてたのです。
既存フォルダ名の変更不可というのはURL的に見た目がappじゃないとまずいということでして、サーバ上はapp2とかにしてもURLの見た目がappになればOKなんです。
どうすればよいかわからなかったので先ほどの質問として書いたと言う訳なんです。
単純な結合(とはちょっと違うけど)にいちいちアソシェーション使うくらい ならDB側にView作ってしまいたくなるんだけど、そういう人はいないの? まあ、実装箇所が複数に分かれるデメリットもあるのでビュー禁止ってとこも 結構あるけど。
htmlヘルパーのnestedListで、li要素ごとにclassを変えたい場合はどうすれば いいんでしょうか?
>>111 そもそもappをドキュメントルートに置いちゃダメ。
webrootをドキュメントルートにおいて
それ以外はwebroot以外に配置する。
ごめん、ちょいミスった
>>111 そもそもappをドキュメントルートに置いちゃダメ。
webrootをドキュメントルートにおいて
それ以外はドキュメントルートの外に配置する。
116 :
nobodyさん :2012/06/08(金) 02:27:11.80 ID:RAatNy5a
>>110 app/webroot/index.php
もちろんここがウェブルートになるように設置しないとダメだよ
>>111 まず
>>115 の言うようにapp/webrootをドキュメントルートに置かないとダメ
サーバーの設定でドキュメントルートが変更できない場合の対策は、xrea、コアサーバー、さくらあたりでのノウハウがいっぱいあるから
それを調べて実行するとよい
>>112 規約に沿うのがフレームワークだからDBはモデルで扱うしか考えたことがないなあ
>>113 俺はなんか実装めんどくさそうならHTMLで書いちゃうわ
117 :
104 :2012/06/08(金) 09:16:24.94 ID:u8Vc96TE
>>116 ありがとうございます。
ウェブルート=ドキュメントルートってことですか?
118 :
104 :2012/06/08(金) 09:16:57.73 ID:???
>>117 あ、全部読んでませんでした。
そういうことですね。
もうちょっと試してみます。
ありがとう!
>>113 1ずつ全部変えるのは無理だけど
itemOptionsで、even,oddの指定を入れると、奇数行、偶数行のクラスは指定できる
続きはソースで…
120 :
111 :2012/06/08(金) 16:35:33.96 ID:???
>>114 >>116 私のフォルダ配置に対する理解が足りなかった訳ですね・・
レス頂いてから試してみました。
wwwの下にフォルダを作成してそこにappやlibなどのファイルを配置。
でwebrootフォルダの中身をwwwに置いてindex.phpを触れば(ROOTとかの位置を指定すれば)ちゃんとcakeとして動作してくれたのは確認できました。
home
|--ユーザアカウント
|
|--cake
| |--app
| |--lib
| |--・・・その他
|
|--www
|--css
|--img
|--js
|--index.php
のような感じで動作したのは確認できました。
でもう一つ疑問がわいてきましたが、先の話で既存のHPがある場合、index.phpとindex.htmlがかぶることになります。
今回もそのパターンで、ネットでさくらにインストールした場合を探してみるとwwwよりhome側に置くのはよく出てるのですが、
どれもwwwに一つフォルダを作成してそこに元のwebroot内のデータを置いてる感じでした。
動かしてみましたがindex.html index.phpの優先になってる方が起動するだけでした(当たり前ですが・・)
今回のようにcakeのindex.phpと元のindex.htmlがあるような場合はどのようなやり方がありますか?
121 :
111 :2012/06/08(金) 16:36:54.35 ID:???
>>120 あああ、すみません。
書き込んだらスペースが削除されちゃいました。
cssから下はすべてwww内とのつもりです。
宜しくお願いします。
122 :
nobodyさん :2012/06/09(土) 00:03:03.20 ID:7iLO1txZ
>>120 いまwwwになってるところをwww/cakeとかにすればいいんじゃないの?
htaccessの修正も必要になるかもしれないけど
俺なら既存のファイルが全部スタティックならcakeに統合しちゃうけどな
123 :
nobodyさん :2012/06/09(土) 16:53:54.98 ID:u4onJvJp
バージョン上げたら、Eclipse+PDTでヘルパーの補完できなくなったorz $this->Http-> 補完する方法ないのですか?
nanapiが訪問者1000万とかでインタビュー記事が出てたけど、 Cakeで作ってるんだろ?どうやってアクセスこなしてるんだろ・・・ キャッシュ使えばパフォーマンスは気にならないのかな
>>124 記事のページとかPV稼いでいる部分は生PHPで書いて、それ以外のあんまりPVないところはCakePHPで作ってるって話をしていた気がする
30万UU/monthくらいのサイト持ってるけど、ビューキャッシュだけで共用レンタルサーバーでも余裕でさばけるから、
パフォーマンス追求しなければキャッシュだけで十分いけると思う
後はスケーリングの問題だな
>>125 記事ページもcakeっぽいルーティングなんだけど生PHPなの?
うまく工夫しているのかな。凄いな。
127 :
nobodyさん :2012/06/14(木) 02:08:15.49 ID:nFrC9cht
>>126 別にそれは記事ページだけならReWriteして1行で変更できるでしょ
普通にwebサーバを複数台並べてるだけじゃないの?
CakePHPのAuthコンポーネントを使ってますが、よくあるような ユーザ仮登録 ↓ メール ↓ メールに記載されたURLクリック ↓ 本登録 という流れの中で、本登録ページが正しく表示されたらログイン後状態に したいです。controllersの内部で認証後状態にするにはどうすればいい でしょうか?
loginメソッドに引数渡す
>>132 少なすぎないか?
月30万UUって、1人が2ページしか見てないって事だろw
就職を控えた学生の間で、ブラック企業探しが流行し、中には流されてしまう人もいるらしい。サービス残業の多い会社や有給休 暇を取れない会社のことを指しているようだ。僕自身、「違法な只働きの多い会社はどこですか?」なんて質問はよく受ける。だ が、はっきりいってみんな甘い。甘すぎる。そんなのブラックでもなんでもなくて、日本企業なら当たり前の話なのだ。「フラン スやドイツより年間300時間程度は長時間労働で、有給休暇も消費せず、辞令一枚で全国転勤」というのは、日本が世界に誇るカ ルチャーである。日本は今でも終身雇用が建前の国である。いつ潰れるかわからないような中小の下請け企業ならともかく、普通 の会社では解雇なんて不祥事でも起こさない限りは行われない。もちろん、こういう楽ちんなシステムを維持するためには、それ なりの工夫が必要だ。まず、一定の残業は大前提だ。新規採用の代わりに残業でカバーしておけば、不況時に残業カットで人件費 を抑えられる。有給休暇が取れないのも理由は同じだ。全国転勤なんて制度があるのは日本だけだが、これも終身雇用を維持する ためのものだ。つまり、人事部がハローワークの代わりに社内の空きポストを見つけ、再就職の斡旋をしているようなものなのだ。 であるため、大手優良企業ほど、残業も転勤も有給取得制限も確実に存在するし、雰囲気的に文句は言えない。たまに、日本企業 の労組が「組合員の長時間残業や転勤を黙認している」といって非難する人もいるが、ちょっと違う。すべては終身雇用システム を守るための、やむを得ない副産物なのだ。たまに「勇気を持って拒否できないんですか?」という質問も受けるけど、そんなこ と主張して村八分に耐えるだけの強靭な精神力があるなら、最初から年俸制の企業に行って頑張ることをおススメする。ところで、 真のブラック企業とは何だろうか。それは上記のロジックからすれば明らかだろう。最初から終身雇用を守るつもりも、成果に応 じた年俸を上乗せする気もなく、長時間残業が当たり前で有給も取れない会社のことだ。新卒の時点でそういう会社に遭遇するこ とは「滅多に」ないし、入ったら入ったで何年か修行して転職すればよいだけの話なので、入る前からあれこれ心配する必要は無 い。最悪なのは右往左往した挙句、内定無しで卒業してしまうことだというのはおぼえておくといい。
>>133 直帰率高いからな
趣味だから特に施策もしてないし
formのcreateの際の第一引数をnullにしても、form->inputが生成したhtmlを 見るとpostデータにmodel名が含まれてしまう事があるのですが、postデータ にmodel名を含ませないように出来ないのでしょうか? <input name="data[test]" type="text" value="" id="test" /> こうなる場合と <input name="data[models][test]" type="text" value="" id="test" /> こうなる場合があります
自己解決 nullじゃなくてfalseにすれば期待した動作になりました
Cakephp歴2年 CodeIgniter歴1年 ZendFramework歴2年 の俺が言う Cakephpはやめとけ
人がいないと駄目ってウメハラが言ってた
ダメな理由くらい言えw Cakeは国内の知名度だけはいい線いってるよ
やっぱり知名度が一番重要だよ いくらFUELPHPが凄くても一人で細々とやっててもねぇ あ、英語できるならいいけど
OSSだと知名度つうか使う人が多いと開発陣のモチベにも関わってくるしね 2.2ももうすぐ出そうだし、最近のCakeは順調…すぎてついていけなくなってるけどw
mysqlとの組み合わせで、外から与えた変数で取得結果を変えたいです。 レコードのとあるフィールドの値で取得結果を変えるなら select case field1 when 0 then 'ぬるぽ' else field2 end from tblA; こんな感じでSQLの記述だけで完結出来るんですが、外から与えた変数で 同じような事を簡単に出来ないでしょうか? 取得結果は最終的にはviewで表示するのですが、 view内でforeachで回す際にループごとに条件判定をして…という方法は避 けたいです(viewにあまりゴテゴテとロジックを書きたくないので)
>145 mysqlならIFって関数があるから、fieldsかモデルの$virtualFieldsで、 "IF(Model.field1 = 0 , 'ぬるぽ' , Model.field2)" って書いてる。条件が複数あるなら入れ子でもいける。
>>144 お前そればっかりだな
どこがいいとか具体的なこと教えてくれよ
148 :
nobodyさん :2012/06/21(木) 18:17:56.38 ID:bhjX0YXl
149 :
148 :2012/06/21(木) 18:18:47.19 ID:bhjX0YXl
140と間違えた
cakephpで有用なのはSetのみ
151 :
nobodyさん :2012/06/21(木) 19:49:36.93 ID:0C9bmUAd
マジで?じゃ、どうやってビューに値を渡すの?
PHP本体に組み込まれたら嬉しいな〜
Setクラスと Controller->set()は別物
やべえ2系に全然ついていけてないw
>>147 ・速い
・小規模、大規模にも対応できる
・CIより高機能、CakePHPより簡潔
・その他あらゆる点、全体の思想やARなどなどが洗練されてる
デメリット: ・設置に関する情報が少ない ・既存プラグインが少ない
1.3系を使っています。 function index($id){ $this->_idcheck($id); } function _idcheck($id){ if ($id != 1) { $this->layout = 'error'; $this->render('/errors/error'); return false; } } こんな感じで$idが指定と違うとエラーページを表示させたいのですが、 上の書き方だと2回renderされます。(indexのビューもrenderされます) $this->render('/errors/error');の次行に$this->_stop();をしたら ページ全体が表示されないし、どうやって特定のエラーページのみ 表示したら良いか分かりません。ご存じの方はアドバイスお願いします。
render()のとこでreturnしてよかったんじゃなかったっけか もしくはautoRenderで検索
161 :
159 :2012/06/22(金) 11:52:47.08 ID:???
>>160 159のコードで、
$this->render('/errors/error');
$this->autoRender = false;
return ;
としてもindexのビューは表示されます。
出来ればidcheckのerrorビューで止めたいのですが・・・
てか2回renderされること自体がおかしいんじゃないのか? viewが2個連なってでてるの? そんなことあったっけ? 解決しないようなら後で試してみるけど、 ↓この順番にしたらどう? $this->autoRender = false; $this->render('/errors/error'); あとは、 idcheck()ではbooleanを返すようにして、 falseが帰ればそのindex()内でreturnしてみるとか? つまりidcheckでreturnしてもidcheckを抜けるだけだから全く意味ない。
163 :
159 :2012/06/22(金) 13:07:10.41 ID:???
>>162 その方法も一緒でした。
おっしゃるとおり、idcheckでreturnしても意味無いのですが、
index内で分岐をさせる場合
if ($this->_idcheck($id)) {
trueの場合の処理
} else {
falseの場合の処理(エラページ出力)
}
としていかなければならず、idcheckが必要な全アクションに
これを入れるのはどうかと思い、idcheck内で解決出来ないかと探していました。
renderで出力ではなく、cakeErrorで404を出力すれば
ページエラーとして表示され、その後の処理も止まるんですけどね・・。
これを $this->_idcheck($id); こうしろ if(!$this->_idcheck($id)) return false;
まぁレンダーもしなきゃだろうから if (!$this->_idcheck($id)) return $this->render('/errors/error'); こーすりゃいいのかな
166 :
159 :2012/06/22(金) 14:19:08.34 ID:???
エラーページのrenderはidcheckの中に書きたかったので、
>>164 の方法を使用したいと思います。
みなさん、アドバイスありがとうございました。
Yiiに乗り換えるか、使い慣れたCakeでさくっと作るか悩む…
CakePHPerのためのYii乗り換えガイド みたいなのが書かれた時が、俺の乗り換え時と決めている
最低Yiiのリファレンスページが日本語化したときかなぁ
中途半端にYii行く位なら今ならsymfonyに行くわ
どれが一番railsに似てるか競争なんだから railsに行くのが一番中途半端じゃないんだろうな
railsに行く位なら別にcakeのままで良いんじゃねーの?
試しに少しrails触ってみたが確かに凄いとは思ったよ これがweb frameworkの完成形なんだって まぁruby覚えるの面倒くさいから常用はしないけど
CakeとRailsとどう違うんだ?ざっくり言うと 言語以外で
railsやってるけど 分からないことがあったら リソースが沢山転がってるcakephpのほうがいいなぁと思う railsのスレみてみなよ 過疎ってるし荒んでるよ cakephpだと必要なプラグインとかをvendorフォルダにぶっこんで ftpであげるだけで大抵うごくけど railsはサーバー環境を 1から構築していく必要がある これが大変 敷居が高い しかも、プラグイン同士の依存関係がかなり厄介だから コーディング始める云々の前に つまづいて辞める人がほとんど cakephpに戻ろうかなと思う
Cakeでメール配信システムとか広告配信のような 負荷がかかりそうなアプリ開発している人いる? 素のPHPでやった方がパフォーマンス出ると思うんだが、 Cakeの作り方に慣れてるから困る
>>167 少し時間かけてYii習得したほうが後々その時間は回収できるよ
今も前のシステムの関係上CakePHP触らないといけないんだけど、
開発スピードが段違い
>>176 とある商用サイト作って運用してるけど、ユーザ登録でユーザに仮IDメール出
してるし、同時一斉配信つーならメルマガも運用してる。
今のとこパフォーマンスが問題になった事は無い。
俺もパフォーマンス気にしてCake使うのいつもためらうけど 幸い、問題が起きるほどユーザーが増えたことがない 負荷とか最初から気にするだけ無駄なんだなと気付いた 負荷対策は万が一サービスが当たってから考えるのが、結局効率が良い
高負荷になってきたらサーバ複数台を並列にしてLBすればいいじゃない
2系になってパフォーマンスよくなったとか聞いたけどまだやっぱ重いの?
182 :
nobodyさん :2012/06/23(土) 23:41:07.25 ID:9D2aOBXb
重いに決まってんだろ、Frameworkなんて全部重いわ
検証!検証
だめだ誰か助けて><; さくらインターネットでサブディレクトリにCakeディレクトリを入れて運用したいんだけどできない /home/username/www/cakephp www/がドキュメントルート その下にcakephpをつっこんでそのまま運用したい URLも/cakephpにアクセスする形でいいんだけど 500エラーが出るんで、.htaccessあたりの設定だろうと思うんだけど、 いじりまくっても回避できなかった アドバイスください!
>>178 メール配信ってshell機能使って配信してるんだよね?
自分はそうしているけど、特にパフォーマンスの違いはないな。
>>179 当たってから変えるってのもどうかな?とは思うからね。
最初から「ユーザ数100万人!」とか目標にするのもどうかと思うが、
せめて1万人は想定する必要があると思う。
で、1万人の一斉配信って負荷やら配信ログやらの問題が出てくるから、
設計も考えなきゃいけないんだよね。
ま、どちらかというとCakeよりもサーバ側の問題だけど。
極端なメール配信ってレンサバだと注意受けるよね
質問させて下さい CakePHPに下記のプラグインありますか? ・会員登録、ログイン認証 ・画像アップロード ・ページネーション ・キャプチャ ・会員同士のプライベートメッセージ
ないからほかにいけカス
>>187 なんかのCMSでも探した方がいいのでは
>>187 >・会員登録、ログイン認証
登録の機能は自分で作りこんで下さい。プラグイン不要です。
ログイン認証はAuthコンポーネントがあります。
>・画像アップロード
CakePHPの標準機能で作りこんで下さい
>・ページネーション
CakePHPの標準機能でよきに計らってくれます。プラグイン不要。
>・キャプチャ
???
>・会員同士のプライベートメッセージ
自分で作りこんで下さい。
要はプラグインなんかねーから1からテメーで作れってこと
お前らカスばっかりクズスレ噴いた
CAPTCHAだろ? いくつかあるテメーでさがせかす
こわっ
>197 は放置の方向で。
>>200 htaccessのbaseUrlのあたりだろう
うろ覚えなので調査して判明したら教えてくれ
本番環境とテスト環境があるからサブフォルダ切ってその中に一式全部突っ 込んでるけど、問題なく運用出来てる。まあがんがれ。
CakePHP サブディレクトリ htaccess あたりでぐぐると多分解決する
今ダウンロードしたさらの状態のものを /home/www/cake_test/ として解凍したんだけど、アクセスすると 400 Bad Requestと出ます
205 :
nobodyさん :2012/06/24(日) 21:37:55.05 ID:mIG0xQos
206 :
nobodyさん :2012/06/25(月) 00:03:36.30 ID:bAX9Bc0l
新しいアカウント契約して単純に解凍したら見れたわ 別の既存の原因だったみたいだわ
$this->User->id = $user_id; $user = $this->User->read(); var_dump($user); ↑これがローカルではちゃんと取得できていて、 サーバにアップするとfalseが帰ってくるんだけど、何が原因? サーバもローカルも1.3だったはずだけど、もしかしてマイナーバージョンぐらいがかもしれないんだけど、 マイナーバージョンアップで上記に影響されるような変更あったのかな?
>>207 単に、ローカルと公開鯖とのDB構成が違うだけじゃないの
209 :
207 :2012/06/25(月) 10:17:38.50 ID:???
if (getenv('server_name') == 'localhost') {
Configure::write('debug', 3);
} else {
Configure::write('debug', 0);
}
原因分かった
こういうふうにローカルとサーバでdebugの値変えてたからだった。
ただ、なぜこれが
>>207 に影響するんだ???????
まぁ直ったからいいんだけど・・・
違いはキャッシュぐらいじゃないの
2を業務で使ってる人いる?
はい
ごめんちょっと教えて。 cake ver.1.x から cake ver.2 への移行ってメンドクサイ? まだcakeに手をつけてなくて、 この移行作業が初めてなんだけど。
authコンポーネントで嵌っています。 loginページでログインしてokだったらtopページにredirectさせているんで すが、loginページとtopページはコントローラが別で、かつloginページは https接続です。 loginページではちゃんとAuth->user()が取得出来るのに、topページだと Auth->user()が取得出来ません(nullしか取れない)
>>213 新規に作るのだけ2系にしたらどうだ?
移行は止めた方が良いと思う。
216 :
213 :2012/07/01(日) 15:48:37.46 ID:???
>>215 そもそもサーバのリプレースに合わせて、
PHPとDBのバージョンアップが主目的で、
PHPとDBをバージョンアップしたら、
もちろんcakeもバージョンアップでしょ、
みたいな感じなんだよね。
「移行は止めた方が良い」という理由を
簡単で良いので教えてくれると助かる。
よろしくおねがいします。
マイグレーションガイド読んでテメーで判断しろカス 二度と来るな
>>217 マイグレーションガイドっていうのがあるんだな?
そういうことは早く家カス
ってかお前ら暇だろ?
んで、その無駄な知識ひけらかす場所も此処ぐらいしかないんだから、
「二度とくるな」とか言ってないで答えとけよw
暇じゃねえよ ああ、まだ今日は6月31日
>>216 「移行する時間とコストが無駄だから」
っていう幼稚園児でも分かる答えだと納得しないの?
221 :
213 :2012/07/01(日) 20:30:48.36 ID:???
>>220 残念ながら納得はしねぇんだなぁ。
「バージョン上げないとセキュリティ的にヤベェんじゃねぇの?」
っていう幼稚園児でもわかる動機があるのさ。
PHPが ver4 ⇒ ver5.2 は必達なわけよ。だとすると、cake ver2 は必須だろ?
もともとが cake ver0.2 とかで作られちゃってるわけで・・・
>>219 「今日は6月31日」のガンバリ屋さん
マイグレーションガイドちょっと目を通したわ・・・
けっこうめんどくせぇのな・・・
教えてくれてサンクス。
仕事がんばれ。死ぬな。
作りなおしを提案するかなぁ・・・・
どなたか設計手法について教えてください。 例えばSNSのようなウェブアプリを作ったとして、 ログインしていると仮定します。 他のメンバー一覧画面から送信先の人の行で「メッセージ送信」ボタンをクリックすると メッセージ送信フォームが現れるようにしたいのですが、送信先の情報はどのように送信フォームへ引き渡しますか?
>>222 一覧にチェックボックスを配置して、そのチェックボックスにはメンバーIDを入れ、
送信ボタンを押した時に、選択したメンバーID宛にメールが送信されるように
するのはどうだ?
>>223 なるほど、ナイスアイデアです!
配信先が配列(複数)になってもOKってことですね。
例えばAさんから来てるメッセージの内容表示画面(scaffoldでいうshow)で
返信するボタン押したときは
新規メッセージの編集画面(edit)へは
どのように送信先の情報は渡して
持たすべきですか?
hiddenフィールドにすべき?
getで渡したら送信先のidとかがURLに表示されますよね?
スパマーとかにそのURLのID部分だけ書き換えられてスパムメッセージされまくりが不安です。
今MSAccessを使ってショボイ生産管理をしているんですが、知り合いのところで PHP&Mysqlを使ったよさげなシステムを作ったのを見てPHPちょっとづつ勉強してます。 でも、PHPでいちからゴリゴリ作るのはどうもって事で、フレームワークを探してたら こちらにたどり着きました。 Accessに慣れきった体にはMVCの概念を理解するのはちときついと思いますが、cake 何とかものにしたいと思ってこちらのレス眺めさせてもらってます。 で、時々思うのですが、Accessからスンナr移行しやすいフレームワークって何かないでしょうか? なんだろうなぁって思うのですが、だめもとで聞いてみました。。。。。 お手柔らかにお願いします。
>>225 イベント駆動とかってことなら、PRADOかな?
いまいち情報少ないし、素直にMS謹製asp.net web formsの方がいい気がするが。 .netも最近はasp.net mvcが多いみたいだけどね。
>>226 情報ありがとうございます。
こちらも調べて見ます。でもやっぱりWebはMVCアーキテクチャを採用するものが多いようですね。
後学のために両方調べつつ勉強することにします。
なぜcakeのスレで他のフレームワークを相談するかわかんねえわ
嫌味だな
その質問cake関係ねえだろカス getで渡したくなけりゃpostでわたしゃいいだろ。 スパマー? getで渡そうが渡さなかろうが、悪意を持ってたらいくらでも送信出来んだろ つまりそんなところの対策は連続送信対策を打てよ 送信者は不特定多数じゃなく会員ユーザーなんだからいくらでも対策打ちやすいだろ
編集画面へ移動だけなんだからGETでいいだろ それをポストする時に何らかの対策をすればいい話だしCakeと関係ないっていうのも全く同意
>>230 「体系的に学ぶ 安全なWebアプリケーションの作り方」って本読め
会員数10万人のサイトをCakeで作るかオレオレで作るか悩んでいるんだけど、 皆さんならどっちで作りますか? 開発工数が少なくなると言う意味でCakeでしょうが、 社内フレームワークもCakeを縮小した感じでそれなりに使えます。 ちなみに自分はディレなんでかじる程度にしか知りません。 明日の会議でどっちにするか決めなければ行けないのですが、 ずっと悩んで結論が出せずじまいです・・・。
オレオレの方が細かくカスタマイズ出来るな。
ですよねー。一応、CakeのMVCを元にしてまして findすると連想配列で結果を得られるような形にはなっています。 ただ、簡易的にしようしていたので、SQLiteがベースなんですよね・・・ MySQL用に書き換えなければ行けないというのはネックかも。 会員数10万人もいてマッチングサイトっぽい事したいらしいから、 やっぱり出来るだけ柔軟性のある方が良いですよね
会員制で100万人とかだとrailsのほうがいいですか?
FW使って最後に舵取りできなくなって失敗しろや。
こんな時間なのに2.x系の移行マニュアル読んでしまった・・・ そして読めば読むほどに移行したくなってきた
そもそもsqliteで10万てキツそうだな
なんで2.x系ってファイル・フォルダ名がキャメルケースで統一したんだろ? アンダースコア使う方が見やすいと思うんだけどな あと、ヘルパーも$this->Htmlになったし
ヘルパー内部でのオブジェクト化はタイプ数は増えたけど管理しやすいんじゃないか? この感覚になれるともう戻りたくはないわ。 それよりキャメルケース云々の件は、コントローラのURLがキャメルケースでもアンダースコアードでも処理できちゃうこと方が問題と思うんだが。 あと、メソッドをキャメルケースで書いてもテンプレートはアンダースコアードにしなくちゃダメというのも統一感が無いのが気持ち悪い。
>>236 FW使ってやってみて。
破たんするのを実体験出来るから。
FWってフレームワークの略称じゃないの?
ドットインストールにcakeができたぞな。。。。。。
それなりに規模があるんならsymfony使えや
2系の情報が少ないからと敬遠してたけど、移行にそんなに困らないな。 ファイル名の書き方も成れたら気にならなくなった。 CakePHP辞典の人が執筆準備しているらしいから、 それが出たらもっと広まりそう。
2.x使いだすと戻れないな。 1.3系のメンテの仕事やりたくなくなる。 コンソール周りがかなり使いやすい。
俺、cakeでコンソールはほとんど使わないけど、 2.xはやっぱ処理が早い(気がする)のが良い symfony使わなくてもそこそこの規模のサイトでも行けると思う
cakephpってレコード件数増えると比例して重くなる?
まずレコード件数に比例して速くなるデータベースを見たことが無い
インデックスとクエリ次第だろう
O(1/n)的なアルゴリズムを発見したら革命が起きるな
会員同士のメッセージ機能を実装してみました。 連続スパム送信防止のために工夫すべきことって 最終送信日時から、どれくらい間隔が空いたかで制御するくらいかな?
だからcake関係無いだろヴォケ
Cakeに絡めるとすれば最低でもcaptchaのプラグインぐらいは導入すべき スパマーは手動なのかスクリプトなのか知らんけど会員になるぐらいは普通にやってくるからな 「会員」なんて信用しちゃダメ
>>256 メッセージ一通送る度にキャプチャ入力って面倒すぎない?
会員登録時はキャプチャを実装しておいて、
登録メールへアクティベート用リンクを送信してクリックされるとアクティベート。
ってだけで充分じゃないかな?
あとはメッセージ送信は30秒規制入れるとか。
スパマー対策はアクセス禁止フラグみたいなのを設けて、
そこだけ外出先からでも操作していけばいい。
さすがのスパマーも会員登録を1から、やり直しは面倒くさいでしょ。
mixiとかはどうしてるんだろうね
てか、そんなことせずとも会員同士のやりとりだろ? 同じ会員が何回も同じ相手に送信できないようにすればいいだけじゃん。
>>254 設計はどうなってるの?
日記みたいに単にメッセージが保存されるやり方だと
頻繁にやりとりがある場合、テーブルを圧迫すると思うけどな。
俺の実験では100万レコードだと重くなった。
すれち
>>259 メッセージがテーブルへ保存されつつ
サイドでsendmailってかんじです
会員は二万人は見込んでます
>>261 サイドでsendmailってどういう意味?
>>262 同じアクション内で
sendmailを使って送るって意味です
いつまでスレチやっとんねんボケ
2.2が正式に公開されたな
はやく2の本出ないかなぁ
2.2.0で何度試してもAuthのログイン失敗するんだが原因がわかった IE8使っているからだ・・・他のブラウザならログインできた IE8でもキャッシュ関係のファイルを削除したら表示された。
268 :
207 :2012/07/07(土) 22:53:27.28 ID:???
1.3使ってるんだが、Configureのdebugの値によって変わる挙動がわからん。 どっかにまとめて解説してるページないかな?
1.3から頑張って2.2に移行するメリットある? コストとメリットのバランス的に メリットは主に少し速度改善するぐらい?まあそれでも1日程度で移行できるなら考えるんだけど
2.xの勉強も兼ねてブログを作っているのですが、 ブログのサイドバーに「最新記事」とか「カテゴリ」の一覧ってありますよね? 例えばカテゴリ一覧を取得したい場合、ビューからrequestActionで Categoriesコントローラにアクセスしてfindの値を取ると思うのです。 でもこれってコントローラ通すのおかしいですよね? Categoryモデルに直接アクセスして取る方がスムーズだと思いますし、 カテゴリ表示用のページを用意しないのに、 Categoriesコントローラを通すのに違和感があります。 皆さんの場合ならどうしてますか?
なぜそうしてるかというとrequestActionで取得したものをキャッシュにして、 つまり毎リクエストでカテゴリの取得はしてないってことでしょ? いやならサイドカラムに表示する必要のあるアクションで、 直接Categoryモデルに取りに行けばいいけどデメリットもわかるよね?
cakePHP導入を考えております。 直接関係ないかもしれませんが、ちょっとお付き合いください。 帳票を出力する部分は皆さんどのようにされてますか? PDF作成してクライアントで印刷させるのが一般的でしょうか? 良い運用方法があれば教えていただきたく、、、、、 よろしくお願いします。
スレ違い。 よそで聞け
教えて君や初心者はCakePHPするなよ
2.2.0のテストをしているのですが、エレメントキャッシュについて教えて下さい。 レイアウトにこんな感じで指定しているのですが、 echo $this->element('header', array(), array('cache' => '+1 minutes')); キャッシュファイルが/app/tmp/cache/viewsではなく、 /app/tmp/cache以下に生成されています。 しかも1分後にキャッシュが削除されず、+1を+10に変えても一緒です。 なにかエレメントキャッシュの指定方法が変わったのでしょうか?
すぐにググレカスとか返しちゃう人は、ググって答が出てくるか確かめてから言ってんの?
>>278 ググれよ
似たようなことはほとんどが既に英語で出てる
まずは英語を勉強しろ
分からん奴はCakePHPするな
と、日本語でほざいてる奴がいた
だってお前に英語で言っても、理解出来ないだろ?
英語ができる奴はこんなところにこないよ
>>276 そのメソッドのAPIリファレンスみてみな
結構前にcache指定方法は変わってる
それ読んでわからんなら辞めろマジで。 皿洗いのバイトでもしてろ
惨めな人生送ってるからって、荒らして発散しないで欲しい
いつものごとくRoRスレから出張しにきたんだろ
284=286=おれだけど、 リンク先見てみろよ。全部書いてあんだろ。 なにごちゃごちゃ文句いってんの? 何か答えてあげる気になるならてめえで答えてやれよ。
>>289 文句書いてません。ですが、本当に理解できないのです・・・。
なぜなら、キャッシュタイムの記述はどこにもないじゃないですか。
configとかkeyとか書いてありますが、これが何を指すのか書かれていません。
一日調べて、keyやconfigを数値にしたり、ソースも読みましたが、
私が求める
>>276 の要件が満たされません。ググても出てきません。
ググり方は「cakephp2 キャッシュ エレメント」です。
cakeめんどくせーよー いみわかんねーよー よくこんなんで開発できるな。
294 :
276 :2012/07/10(火) 10:16:11.30 ID:???
>>292 ありがとうございます!思い通りに出来ました!
まず、core.phpに
Cache::config('short', array(
'engine' => 'File',
'duration' => '+1 minutes',
'path' => CACHE . DS . 'views',
));
というようにキャッシュの指定をして、ビューのエレメントは
echo $this->element('header', array(), array('cache' => array('config' => 'short')));
のようにするんですね。
設定は少々手間ですが、自由度は上がったわけですね。
本当に助かりました。ありがとうございました。
Cakephp厨って どんだけ array( とか言ってるんだw めんどくさい記載だよな Railsとかだとスマートなやり方になりますが何か? お前らのことを今度からArrayPHPと呼んでやろう
独り言なら電車の中ででもやっててください
arrayってcakeというよりphpの仕様じゃないの
でもArrayPHPはいい名前だ。
新しいバージョンのPHPを使っていい案件なら、とっくにcakeなんぞ捨ててるわ…
俺はむしろCakeの規約じゃないと駄目な人間になってしまった オレオレですらCake風の作り方してるし
railsはrailsでversion管理がガチガチで使い難いところもあるのだよな
ところでお前らcake好きなんか?嫌いなんか?どっちだ? 俺か? 俺は嫌いだ
好きでも嫌いでもないがソース覗いてみると もっとシンプルに効率的にやれよ…と思ってしまう
railsはバージョン管理が糞すぎる
>>302 俺は好きだな。他と比べるのは意見が分かれるだろうが
ZendやEthnaやsymfonyより分かりやすかった
確かにSynfonyは辛い感じがあるな
シェア的には凄いんだよね?なぜだ
>>303 下位互換性のためでしょ
ぶっちゃけ、1年ぐらい暇があれば圧倒的にCake以上のFW作れる気がする けど、そんな時間はないからCake使ってる 他のに乗り換えるための暇さえ惜しい
でも、2ちゃんで俺すげーする時間はあるんですね
1年でcake以上のフレームワークだってよwwww おめー頭おかしいんじゃねえの
>>309 いやー、実はすごいハッカーなのかもしれないぞ。。。307は、、、
出たら使ってみたいのでぜひ作ってみてください。
楽しみにしてます。
ハッカー???
rails厨を煽って内乱起こすのが楽しすぎる件w
時間は有効に使えよ
>>309 たぶん1年あれば可能なんだよ。
>>307 は1から作り直すとは言ってない。
(確かにフルスクラッチで一人でこれ以上のものって言うんなら頭おかしいとしか思えないが)
ただ、1年後にはそれ以上のものをほかの誰かが作ってる可能性の方が高い。
しかもそれが同じCakePHPである確率が一番高い。
なぁ、こんなかでCake PHPのこと完全に理解してる人間て何人ぐらいいんの?
マジレスすると、開発者の人も完全に理解していないと思う
PHP勉強してたらcakeにたどり着いたんですが、お勧めの本とかありますか? 本家のチュートリアルも一応試してみているんですが、、、、
>>317 和書は1.3以前のものしかない。
2.0で結構変わったんで、今から1.3以下をやる無駄を考えたら書籍からスタートは無駄が多すぎる。
学生さんとかなら、チュートリアルやったあと自分の作りたいアプリをCakePHPのルールにのっとって作ってたら?
その時肝心なのは、独自のアイデアを一切はさまずにCakePHPが敷いたレールの中で完結するようにすることじゃないかな。
まぁ俺自身が中途半端にオレオレをやった結果、そういう意見にたどり着いたわけだが。
>>317 その前にPHPでいくつかシステム作った方が良いよ。
いきなりCakeやってもオブジェクト指向すら意味分からないでしょ
意味分からないまま学ぶより、基礎から学ぶ方が良い
cakephpで継承という概念を覚えたにょ
318様、319様 アドバイスありがとうございます。 PHP&フレームワークの思想を体で覚える必要があるっていう感じですね。 精進いたします。
cake2.0以降の本出てるよ…?
Cake3.0はまだですか
バージョン2の書籍って オープンソース徹底活用 CakePHP 2.1によるWebアプリケーション開発 これ以外になんかある? CakePHP辞典の人が執筆中だとかの話もあるようだけど。
>>325 デザイナーのためのビューがなんたらっていうのがある
Cakeの書籍なんか作ろうと思っても、利益出しにくいんだろうな
あと今頃執筆してるようじゃ完成したころには3.0が出てるっていうオチじゃねぇかw
CakePHP辞典は結構売れてるみたいだけどな。 何度か売り切れになっているのを目撃した。 とにかく2系のリファレンス出して欲しい。4000円ぐらいでも良いから。 cookbookは未完だし、ネット上の情報も少ないしな。
>>319 なぁなぁ、巣のPHPでいくつかシステムつくってcakePHPを始めたら
>>318 の言ってる「CakePHPが敷いたレールの中」ってのに
やたらとイラつく事がおおいんだが、これは仕方が無いのかね?
ってか
>>318 の「中途半端にオレオレをやった結果、そういう意見にたどり着いた」ってのが
ちょっときになるんだが、おそらく、それcake使いとしては正解だと思うんだ。
でもなぜ、自分を捨てて「CakePHPが敷いたレールの中」に入れたんだ?
>>328 何を主張したいのか分からん。
どんな言語にしろ学問にしろ、基礎を学んで応用していくもんだろ?
>>329 すまんわかりにくかったな。
言いなおそう。
一言でいえば「なんでフレームワークなんぞ使おうと思ったんだ?」ってことだ。
まぁ対象システムがcakeだったって、のが多いんだろうけどさ。
逆になぜ車輪の再発明をしたがるのかを聞きたいぞ。 別にCakeじゃなくても目的に合うようなフレームワークは転がってるだろ。
>>331 そうだな、Zendとかのほうが俺のスタイルには合ってるんだと思う。
だけど、「なんであんたはcakeを選んだの?」ってとこ。
それと車輪の話題だけど、
すでにある車輪が気に食わない。
軽自動車作ろうってのにトラックの車輪持ってこられてもなぁ・・って感じ。
車輪の再発明ってcake等フレームワーク自体のこと言ってるんじゃないとおもうが? フレームワーク使わない=そのフレームワークで書かれてるコードを自前で再発明 ってことだし。
>>324 Bakery読む限り、あと半年もすれば出るんじゃないの?
最近開発スピード早くなったんか?
通りすがりのものです。。。 そもそもcakeってどんなシステムを作ることを前提として 作られたフレームワークなんでしょうか? 業務システム(っていうと色々突っ込まれるでしょうけど。。。。。) を構築するのに使った人っているんでしょうか?
>>335 そもそも足し算という計算は、何と何を足すことを前提として
作られた計算方法なんでしょうか?
みたいな質問だな
業務システム構築するのにバリバリ使ってますが何か? 具体的には書けないけど、誰もが知ってる某社のサイトとかCakePHPで作ったよ。 今現在も、誰もが知ってる大手外資金融の社員向けシステム構築でCakePHPを使 うか検討してる最中。でも流石にDBにMySQLは使いたくねーし、金が許せば本当 はASP.NET+C#でイキたいんだけどなー
>>335 スタートはRORのPHP版だからROR板に行って聞いてくれば?
>>335 よくあるWeb系システムじゃね?
会員制サイト、ECサイト、ブログなんかは良くサイト例として挙がるよ。
もう3がでるのか まだ2すら触っていないというのに
5ぐらいになったら使うか、出たら起こしてくれ
>>337 それちゃんと速度でてるん?
cakeとか使うとおそいんじゃねぇの?ってイメージがあるんだけど。
もちろん遅いよ 鯖のスペックでカバーじゃないの
ソーシャルゲームをCakeで作ったよ ゲームをMVCに当てはめるの難しいな
どーでもいいけど、 日本ではなんで Drupal 流行んないの? 凄くよくできたCMSだと思うんだけど。
宣伝不足だろ
>>344 名前忘れたけど、どこかのスライドショーで公開してたよね?
確か、管理画面はCakeだけど、表のユーザが利用する箇所は
素のPHP+memcachedを使って速度を出していたはず
俺のは全部Cakeだよ
>>349 アクセスが集中するページはどうしてるの?普通にキャッシュ使うだけ?
何もやってないよ ゲームは更新が激しくて、キャッシュはほとんど使えないんだ
>>347 Drupal マンセーのステマでもして広めようぜ
>>346 スレ違い
だが、Drupalの発音がよく分からない、発音しにくい、キャラクターがあまり可愛くない
っていうのは最初の壁として地味に効いてる気がする。
一度突破すれば無関係になるんだろけど。
俺の脳内で今の今まで「ドルフィン」って読んでた よく見ると全然綴りが違うが
Drupalスレが過疎り過ぎて誰もいないのでこちらで質問させて下さい。
Drupal7 でIMCEとCKEditorを使ったファイルのアップロード設定を行ったのですが
画像をアップロードしても何も表示されません、どこに落ち度があるのでしょうか?
そこでCKEditor上でIMCEの機能を使って
挿入した画像のパスを確認してみたところ次の様になっていました。
http://domain.com/drupal/sites/default/files/pictures/large_picture.jpg そもそも、この画像に対してブラウザ上からアクセスする事は出来るのか?
と思いアクセスしてみたところ次のエラーが出てしまいます。
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Drupalをインストールしたディレクトリ上の .htaccess はコメントアウトしており外すとそもそも
コンテンツ自体の表示が出来なくなります。
#Options -Indexes
#Options +FollowSymLinks
困ってます。お助け下さい。
>>355 頼むから止めてくれ。全く用途が違う。英語とフランス語並みに違う。
>>356 Drupalスレマジで過疎ってるんですよ・・・
すごくよくできたCMSなのに・・・
世界ではメジャーなんだぜ!!
>>357 問題をもっと細かく切り分けろ
問題の発生する状況を少し変えてどうなるかやって比較しろ
なんか大変なことになってきたな、、、 Excelがフレームワークだっていいきる俺がきましたょ
1.3使ってるんだけど、 フォームにエラーがあったときに inputの下だけじゃなくて、 一番上に出たエラーをまとめたもの出したいんだけど、どうしたらいい?
formヘルパーにエラーを出すメソッドがある。 APIリファレンス読んでみ
<?php echo $form->error('hoge');?> <?php echo $form->input('hoge', array('type' => 'text', 'error' => false));?>
これCakePHPの問題かわからないけど、 <?php echo $this->Form->create('User', array('inputDefaults' => array('label' => false)));?> echo $this->Form->input('User.email'); echo $this->Form->input('User.password'); ?> こんな感じでPOSTデータ送ったら、 passwordだけすっぽり抜けて送られるんだが・・・ $this->dataに入れるときになんかやってるのかと思って、 $_POSTをdumpしてみたけど、やっぱりpasswordだけ送られてない こんなこと初めてだ・・・お手上げ状態
echo $this->Form->input('User.email'); echo $this->Form->input('User.password'); echo $this->Form->input('User.test1'); とかやってみると、最初のemailだけしか送られていない ほかのページでも最初のinputだけがPOSTされているみたいです。。。 やばい・・・本番サイトなのに・・・どうしよう 検討がつかないのがほんとにやばい 誰か知恵を貸して下さい
生PHPでPOSTするとちゃんと送信されているので、やっぱりCakePHPの問題だわ 最初のinputだけPOSTするってどういうことだ???
CakeのFormヘルパーは使っちゃ駄目な機能の一つ でも初めての時はわからないよね、俺もそうだった とりあえずないものだと思って開発した方が捗る
とりあえずCake使う時は、提供されてる機能を無理に使おうとしないことだ ちょっと試して期待した動作しなかったらやめる このポリシーで貫いて、ほとんど使える所がなかったらそれは駄目FWだから捨てる (幸いCakeはそこまで駄目ではない FWなんて工数短縮のためにあるもの(そしてそのメリット以外は犠牲にするもの)なのに、 機能を使うために時間を費やすなんて本末転倒だ 出されたご飯は全部食べたいのが人情だが、冷静になろう
>>367 <?php
echo $this->Form->input('User.email');
?>
<label>パスワード</label>
<?php
echo $this->Form->input('User.password');
?>
<input name="data[User][test1]" type="text" id="UserTest1">
と書き換えてみましたが、
同じように最初のデータしか送信されませんでした
array(2) { ["_method"]=> string(4) "POST" ["data"]=> array(1) { ["User"]=> array(1) { ["email"]=> string(22) "
[email protected] " } } }
というか、今まで正常に動いてたのが、急に動かなくなった、、、
確か何か作業したような記憶があるけど、MySQLのテーブルを消しただけだし、
ファイルいじった覚えがない・・・多分いじってしまったんだろうけど、
なんにせよこんな不可解な動きをして焦りまくってます;;;
>>368 次からそうします
本番ですぐに動かさないと業務に支障きたしていて、
今から全部formタグに書き換えるのもちょっと時間が無いですね、、、
というか今まで動いてたのが、急に動かなくなったので、
原因がわかればすぐに戻せそうなのですが、、、
こんな根本的な動きが変わるってことはコアのファイルをいじらないと変わらない気がするんですが
そんなファイルいじった覚えがない、、、
確実に覚えている作業は、 DBの要らないテーブル(test_*)を15テーブルほど消したことです。 ローカルと見比べても、間違えて消したテーブルはありません。 このテーブル消す作業はPHPMyAdminで行いました この作業のときにコアファイルが壊れたとか??ありえないか・・・と思いつつ cake/libを見ているんですがやはりとくに変わった様子はありません
全文読んでないが、 動かないformだけformタグに置き換えるとかできんの
>>369 で問題はformヘルパーじゃないって分かったのに
>>370 ではformヘルパー脱却を検討
ほんと馬鹿を増やすスレだわ
>>372 動かないformというか、
全formが最初のinputしか送信していない状態ですね
なにか根本の部分で変わってしまったとしか思えない
376 :
365 :2012/07/18(水) 15:40:41.14 ID:???
>>375 語弊がありました
送信していないかどうかは定かではありません。
とにかく、
送信先のcontroller内で、
var_dump($_POST)とやると
array(2) { ["_method"]=> string(4) "POST" ["data"]=> array(1) { ["User"]=> array(1) { ["email"]=> string(22) "
[email protected] " } } }
このように、1つのinputだけしか入っていません。
>同じように最初のデータしか送信されませんでした ってあるけどたとえば順番入れ替えてpasswordを先頭に持ってきたらpasswodだけ受け取れるのかよ?
あと、cakeって$_POST書き換えたっけ? webrootのindex.phpの先頭でvar_dump($_POST)すると何出るの
どうせformがfromになってるとかだろ
いやform->end()後に $form->input(...)書いてました(てへぺろ な展開だろ
381 :
365 :2012/07/18(水) 15:55:03.20 ID:???
なぜか直りました・・・まだなにもアップロードしていないのに・・・
わけがわからん・・・
いやここにいる人も僕以上にわけわかってないと思うのですが、
当人もわかっていません
まず
>>377 はその通りです。
>>379-380 は、全formが急にこうなっていたので、書き間違えなどは無いと思います。
>>378 ああ、それを試したかったですね・・・
不可解すぎて今日眠れそうにないです。。。
382 :
365 :2012/07/18(水) 15:57:18.12 ID:???
わけわかんねえええええええええええええ まず 不可解1 最初のinputだけ送られる、 しかも全フォームで という謎の挙動 不可解2 急に直る まだなにもアップロードしてない こええ・・・
クライアントサイドがおかしいとしか思えないが?
384 :
365 :2012/07/18(水) 16:01:21.18 ID:???
>>383 と、思ってスマホでもPOSTしてみましたが、
最初のinputのみ送られていました
キャッシュの問題とかじゃねーの
>>360 おれはお前をすきになれそうだぜ。ゥホ。
echo $this->Form->inputs(array('User.email','User.password')); こっちだとどうなんだろ?
phpの設定とキャッシュのせい
動かなくなる前と後で何をしたのか記録に残してないとかいう時点で Cake云々言う前に論外。
ビューが吐き出したコードはどうなってんの? 必要最小限のコードでビュー(レイアウト含む)を作って、吐き出したコードさらしてみ? あと中途半端にオレオレ入れるのって大抵時間とかが足らないので 仕様をよく理解できてないパターンだよな。 少なくとも FormHelper 使えないっていう人初めて見たわ。
ファイルアップロードとかメール送信ならともかく、 フォーム関係でFormHelper使わずに何とかするって それ、Cake使う意味無いだろw
まぁ、時間とかが足らないんだろw
>>368 >とりあえずCake使う時は、提供されてる機能を無理に使おうとしないことだ
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
なるほど、時間とかが足らないんだな
頓珍漢な回答者ほど邪魔なものはない
そんな自虐的なこと言うなよ
>>362 > formヘルパーにエラーを出すメソッドがある。
> APIリファレンス読んでみ
ねーじゃん!!!1.3だよ?!
this->autoRender = false にすると、全てのビューに関する処理は スルーされるって認識で良いですかね?
メソッド内で明示的に Controller::render() を呼び出さない限りはね。 ※2.x以上しか知識ありません。念のため。
いや待て、やっぱり「全てのビューに関する処理」ってのが気になるな。 Dispatcher とかが裏でゴソゴソViewクラスに値を渡したりとかはやってるよ?
>>398 おい、これどうなった!やっぱないのかい?
>>403 viewの中でdebug($this);
あとはわかるな?
>>402 きっとDispatcher周りの大改造が必要になるぜ
無理とは言えないが、かなり仕様を理解しないとだめだろうな
この程度の質問にすらすら答えられるようじゃないとドツボにハマるよ
まぁでもどうなるのか見てみたい
進捗を報告してくれ
なにをごちゃごちゃ言ってんだこのキチガイは まとめたのを出すメソッドがないから何なんだ
409 :
nobodyさん :2012/07/27(金) 13:43:34.69 ID:Ij5uT65n
----- ・名前を入力してください ・メールアドレスを入力してください ----- 名前[ ] !名前を入力してください 都道府県[▼東京都 ] メールアドレス[ ] !メールアドレスを入力してください inputの下には自動で出してくれるんですが、 一番上にあるようなエラーの一覧が欲しいんです 本当にお願いします。
たしかvalidationErrorsってのに入ってた気がする
>>404 してvalidationErrorsで検索してみ
412 :
nobodyさん :2012/07/27(金) 15:54:14.68 ID:Ij5uT65n
>>411 ありがとうございます。入っていました。
ただ、 $this->Model->validationErrors にアクセスできません
themeView に Modelオブジェクトが無いと言われます
409が求めてるのは、$form->errorAll('Post')
みたいなメソッドが無いか?って事だろ?
で、結論としては「無い」んだよ。
>>409 みたいなことがやりたいなら$form->errorを全て書くか
>>404 をしろよ。そこをまずは納得しろ。
2.0でちゃちゃっと今見てみたらviewのthis->validationErrorsに入ってあるんだけど、 1.3じゃあ入ってないの?
415 :
nobodyさん :2012/07/27(金) 16:11:58.09 ID:Ij5uT65n
>>413 分かりやすい説明ありがとうございます。
無いんですね。
>
>>409 みたいなことがやりたいなら$form->errorを全て書くか
あ、これでいいですね。
$form->error('inpu1');
$form->error('inpu2');
$form->error('inpu3');
$form->error('inpu4');
まだ試してないですけど、こうやればおkですよね。
これでいきます。
ありがとうございました!
それでいいのかよw
敢えて俺にも言わせてくれ それでいいのかよw
モデルのフィールド一覧を取得してループさせて、 コピペじゃない方法でやることもできそうですね 誰か頼みました!w
420 :
nobodyさん :2012/07/27(金) 17:21:02.41 ID:Ij5uT65n
>>416-418 いや、エラー一覧を出してくれるのがベストでしたが、
無いというので、もうこれで妥協しました
421 :
nobodyさん :2012/07/27(金) 17:59:17.31 ID:QJsfcWiv
Cakephp2.2を使っているのですが、 Authのログイン認証で手間取っています。 usernameとpassword以外にも、 certificationというフィールドが1かどうか、確かめさせてからログインさせたいのですが、 $this->Auth->userScope = array('certification'=>1); をfunction beforeFilter()に追加しても、 実際のsql文的には追加されていないようで、certification関係なく、ログインできてしまいます。 どこがいけないでしょうか?
全然確認しないで答えるけど this->Auth->authenticateあたりに変更されたのって関係ない?
424 :
nobodyさん :2012/07/28(土) 05:06:27.70 ID:NZVlXbv8
>>422 $this->Auth->authenticate = array(
'Form' => array(
'scope' => array('User.certification'=>2)
)
);
でできました!
これで10時間以上格闘してたので本当に嬉しいです
ありがとうございました
まず例示するときに変なドメイン使うのやめれ。 ひとつだけなら example.com もうひとつなら example.org サブドメインは自由
勝手に使うとexample.comドメインの中の人に怒られるよ
>>427 URIとファイルパスの書き方がぐちゃぐちゃだな。
ディレクトリ構造の記述にはプロトコルは関係ないだろ。
そんな質問の仕方をしてるってことはマニュアルを全然読めていない証拠だから
誰も真剣に答えてくれんよ。
あとひとこと言わせてもらえば、マニュアル読め。 そして「マニュアル通り」にしろ。 ほとんどのことはそれで解決できる。 それでも無理なときはもう一度マニュアル読め。 つまり、たいていのケースに対しての定石が既に用意されている。 ルールに縛られるのが窮屈だからといって安易に定石を離れることは 一時しのぎは出来るかも知れないが結局遠回りになる。 ブログの記事なんかを参考にする場合は、 マニュアルの読み方や定石の解説をしているものならいいが、 小ネタの披露などの類は定石を一通りマスターしてからだ。
下がり過ぎなのでageます
Cakeのヘルパーとか真面目に使ってる奴いるのか… 2以降はマシになったんかな? でもctpテンプレに使うとかうちはなしだなあ、デザイナにコーディング頼めないじゃん
フォームヘルパーは使っているけど、HTMLヘルパーは使ってないな
テンプレの話題なんか出すとまたSmarty厨がくるぞ…
テンプレにSmarty使う話しもしたいのに、 厨とか悪いことのような言い方されるから言い出しにくい雰囲気・・・
ヘルパーも含めてビューは2になってから使いやすくなったと思う 処理が明確になったんじゃないかな 引き換えに、コーディング工程数というか、タイプするキーの数は増えたけど
441 :
nobodyさん :2012/07/30(月) 21:15:21.67 ID:qcTCojeX
AzureにcakePHP2.0 入れて動くかな? 動かした事のある人いる?
動かしてる。今なら簡単。
2.xの場合は各所にある index.php、APP/Cosole/cake.php にあるパスの記述を一通り済ませば
webroot, APP, CAKE をどこにおいても問題なく動く。
2.x の経験から言えば、
>>443 はパスの設定は自分で書かないとダメなんじゃないかな?
1.3のマニュアル読んだことはあまりないんで間違えてるかもしれんけど。
いまさら1.3には興味がわかないんであとは自分で調べてくれ。
>>446 両方自分が期待しているページで同じページが出ます。
あぁ、$html ってHtmlHelperなのか。よく分からんかった。2と結構違うんだな。 HtmlHelper::link() のふるまいに問題があるのか。 ちょっとソース見てみる。
分かった。 Router の設定だな HtmlHelper::link() ↑ Helper::url() ↑ Router::url()
ちょっとローカルに1.3インストールしてみるわw
すいません、ありがとうございます!
何度も申し訳ないですが、 Router::url()のソースが挙動の操作をしているとのことで、少し見てみましたが <?php echo $html->base; ?>をすると、 /cake_install がでたり、何もでない(空文字)だったりするようです。
>>454 わかった
bootstrap.php
に、
Configure::write( 'App.base', '/' );
で、どう?
>>454 .htaccess は最初のままでいいよ、たぶん。
メモ: 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> と変更すると、うまくいきました! 修正後の記述も、ネットから拾ってきたものでよく理解はしていないのですが、 なんとかこれで動きそうです。 本当にありがとうございました&すいませんでした。
とにかく .htaccess の設定とか体当たりで確かめるのはやめれw 身体もたないぞw
メモまで丁寧にありがとうございます! $__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のソースを確認してみます
センスのかけらもないコーディングですが、 プラグインの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でビュー管理ししている人が居たら教えてください。
どこまでDBに任せるのか分からないけど、View の描画ロジックそのものが ファイルシステムと分離されていないからコアを変更することになるけどいいの? もっとも、PHPのソースコードをDBに格納してそれを取り出して云々て話だったら1.3系であろうが2.x系であろうが同じ。
465 :
nobodyさん :2012/08/02(木) 20:51:57.55 ID:kl7SocZ+
>>442 Azure上でcake入れてるとの事ですけど
動作は安定してますか?
DBは、SQL Azure?
それとも Webロール側に Windows版のMySQLを入れてますか?
あと、Azure上にcakeを入れる方法とかを解説しているサイトがあったら教えて下さい。
>>464 ブログのテンプレート編集ってあるじゃないですか?
ああいうことをしたいと思っているんです。
公開画面ではCakeのビューは使わずにDBのみで対応するとか
>>466 テーマ使えばいいんじゃないか?
baserCMSのテーマ管理が参考になると思うよ
469 :
463 :2012/08/02(木) 21:20:15.13 ID:???
>>467-468 ファイルを直接編集するよりもDBの方が修正しやすいと思いまして。
初期化やコピーする場合とか。
その程度のことなら実体はファイルのままにしておいた方が良い。 パスの情報をコアに教えるのは簡単だし結合は緩いんで、 ディレクトリの構造を工夫して、パスの管理をDBに委ねるっていうのがいいと思うが。 あと、更新履歴なんかはDBに任せられるな。
ちなみにテンプレートファイルを呼び出してるロジックがどこにあるか分かってる?
>>465 最近Azureが更新されて、Linuxの仮想サーバを立てられるようになったり、 仮想ネットワークが組めるようになってる。データの永続化のしきいも下がってる。 俺が試したのはLinuxの仮想サーバ上。CentOS6.2だから素直な環境が組める。 これからPHPの運用環境をAzureに組むなら、どういう基盤が良いか再考したほうがいいよ。
473 :
nobodyさん :2012/08/02(木) 22:13:49.40 ID:kl7SocZ+
>>472 サンキュー
個人的にはAWSで行きたいんだけど
お上からの指令でAzureでやんちゃくちゃならない案件なんだよね。
474 :
463 :2012/08/03(金) 01:19:17.08 ID:???
>>470 例えばなんですが、ブログのテンプレ(テーマ)って
修正しても元に戻したり、別の物を選べるじゃないですか?
それをファイルで管理するって事は、元ファイルをwebroot以外の場所に置いて、
使用する時に/app/views/themed/以下にコピーするって事でしょうか?
そして、/app/views/themed/に作ったテーマのソースを
file_get_contentsで取得してfopen→fwriteで編集するみたいな。
そうであれば、DBに記録するのも、
ファイルとして用意するのも同じような気がしますね・・・
更新履歴宿のテーマを使うかだけをDBに記録するだけで良いのかなぁ
>>463 WPしか知らんが、あれはファイルの本体があって、更新履歴はDBに保存してる。
テーマの管理はファイルの記述ルールにのっとってリクエストのたびに解決してる。
それをたとえばCakePHPでやりたいんなら、更新履歴の管理はコアとは関係のない実装が可能なので、
コアの拡張はテンプレートのファイル構造の変更だけで済む。
で、それ(ファイル構造)だけならコアの設計ですでに綺麗に切り離されてるから
アプリケーションで対応できると思う。
あと、コアの変更に関してはアプリケーション側でほとんどのコアライブラリファイルを
上書きできるようにしてあるわ。
俺の知識不足だった。
すまん。
476 :
463 :2012/08/03(金) 14:43:49.29 ID:???
>>475 詳しく教えていただいたのに恐縮ですが、
おっしゃる意味がいまいち想像できず、理解できませんでした・・。
ここでいう「更新履歴」とは、「どのユーザがどのファイルを更新した」
と言う情報のみを記録するデータでしょうか?
それとも、ソース毎管理するのでしょうか?
当初、私が
>>463 で記載した「DBをビューで管理したい」が、
別にDBでなくても、もっと便利で簡単な方法があるなら
DBにこだわりはありません。
最終的な目的としては、ブログのように
複数のデザインを切り替えて編集できる機能を持ちたいのです。
それを管理画面から操作したいと思っています。
(そう言う点で言えばWordpressと同じなのかもしれません
お前らに質問です。 ちょっとしたシステムを作る場合とかだと cakePHP とかのFWを使わずにpure php を使って組んだ方が 環境構築時間を短縮出来て効率が良いと思うんだけど、 お前らはどう思いますか?
フレームワークを使うやつはアホ
>>477 「ちょっとしたシステム」の規模が、掲示板とかお問い合わせフォームとか
その程度の物を指すなら、cake使わなくて良いと思う。
ただ、オープンソースや自作ライブラリを使いながら作るから、
pure phpと違うとは思うけど。
>>477 もちろん場合によります。
当たり前です。
>>478 使う阿呆に使わぬ阿呆
同じ阿呆なら使わにゃそんそん
482 :
nobodyさん :2012/08/03(金) 18:12:50.67 ID:S+tv8I6e
483 :
nobodyさん :2012/08/03(金) 18:13:45.87 ID:S+tv8I6e
>>479 自作ライブラリを使った方が
あらゆる機能を把握出来るから
カスタマイズもスムーズに行くと思うんだよね。
>>480 あたりまえだのくらっかー
今回の案件は、オレオレFWで行きますぜ。
オレオレ作って使いたいんだけど、どうしても時間がないから 渋々Cake使ってる まあ確かに開発は速い、動作は遅い
>ここでいう「更新履歴」とは、「どのユーザがどのファイルを更新した」 >と言う情報のみを記録するデータでしょうか? >それとも、ソース毎管理するのでしょうか? そんなことは好きにやればいいじゃん。 CakePHPのコアから見れば全く関係ない。 テンプレートファイルのパスさえ渡してくれたらちゃんと処理してくれる。 分かってるとは思うけど、やろうとしていることはどっちかっていうと、 Cakeが本来想定していない使用方法という意味において応用レベルだよ。 少なくともコアの通常のロジックを一通り理解していないと対応できないんじゃないかなぁ なんとなく質問のレベルと目指す目標が離れすぎてる気がする。。。 まぁ発想としては面白いんで頑張ってw あと、WPの更新履歴に関しては勘違いしていた。実際には履歴は保存されていなかった。 でも、それを実装したいならさっき書いたようにDBで保存すればいいんじゃない?
>485 は、
>>476 のレスね
ちなみに
>それとも、ソース毎管理するのでしょうか?
は、俺の脳内ではソースを丸ごと保存するイメージ
487 :
463 :2012/08/03(金) 20:25:43.13 ID:???
488 :
nobodyさん :2012/08/05(日) 01:21:49.66 ID:R26XMbHJ
ようやく さくら にcake2 の設定ができたわ。 嘘っぱちの情報を公開しているブログのせいで苦戦したぜw
489 :
nobodyさん :2012/08/05(日) 19:11:15.04 ID:R26XMbHJ
Config/routes.php を弄っているのですが何か罪悪感を感じます。 このファイルって弄ってもよいものなのでしょうか?
むしろいじるものだよ
491 :
nobodyさん :2012/08/05(日) 19:43:03.99 ID:R26XMbHJ
サンクス。 しっかしcakePHP2.0の設定ってメンドクサイね。 もっと手軽にならないものか。
492 :
nobodyさん :2012/08/05(日) 22:12:43.47 ID:R26XMbHJ
下記ページを参考にcakePHPでログイン認証機能にチャレンジしています。
http://weble.org/2012/03/22/cakephp-2x-auth ページに記載されている内容を一通り設定し
テストしようと /admin/add にアクセスしようとするとエラーが出てしまいます。
http://hogehoge.com/admin/add ※tmp/logs/error.log を確認しましたが
エラーに関係しそうなログはありませんでした。
< アクセス時にブラウザに表示される内容 >
Internal Server Error
The server encountered an internal error or
misconfiguration and was unable to complete your request.
Please contact the server administrator,
[email protected] and inform them of the time the error occurred,
and anything you might have done that may have caused the error.
どこに問題があるのでしょうか?
493 :
492 :2012/08/05(日) 22:28:47.42 ID:R26XMbHJ
いろいろと試してみたところ、ログイン認証以前の問題が発生している様です。
コントローラ+アクションを作成したにも関わらずブラウザにURLを指定するとInternal Server Errorが起きてます。
助けてぇええええ
★関連する各種ソース
【Config/routes.php】
Router::connect('/', array('controller' => 'tops', 'action' => 'index'));
【TopsController.php】
<?php
class TopsController extends AppController
{
public function index()
{
//デフォルトレイアウト
$this->layout = "ps-default";
}
}
?>
★アクセスパターン@
http://hogehoge.com/ →正常にアクセス出来てます。
★アクセスパターンA
http://hogehoge.com/tops/index/ → Internal Serve Error が表示されてしまいます。
.htaccess とかいじり倒してない?
十中八九設置ミス。 ディレクトリの配置、各種パスの設定をもう一度見直してみたら?
496 :
nobodyさん :2012/08/06(月) 00:51:05.79 ID:sAYEX+TS
>>494 デフォルトの侭でも@は正常に動作していましたので
.htaccessへの修正は、 ファイル指定が無い場合には index.php にアクセスさせる様にしただけです。
rewritebase等は全てそのままです。
>>495 うーん。。。
設置ミスですかぁー。
ちなみに実は以前、 cakePHP2.0を別のサクラ鯖に入れた時には
一応動作していました。
実は若干気がかりな点がありまして、cakePHPをDLして解凍した中身※
※cakephp-cakephp-e0b6f86\app\webroot ← この中身
の配置なんですが、現在はCに入れてます。(マルチドメインの中に丸ごと突っ込んでます。)
以前さくらに入れた際にはBで正常に動作していましたが
webrootの正しい配置場所はやはりBなのでしょうか?
B /home/www/{user_name}/{domain_name}/app/webroot/{favicon.ico や index.php...etc}
C /home/www/{user_name}/{domain_name}/{favicon.ico や index.php ...etc}
実は、Bへの配置が本当は正しく無かったと思い、今回はCに配置しました。
それが仇となったのかな?
いや、どっちも正しいよ。 っていうか、ほぼどんなパターンも間違いではない。 ブラウザの要求が 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に比べたらかなり設定は楽になってる。
CakePHP の1.3を最後に使ってから2年以上経過して、 今その後継のサイトを作る話が出てるんだけど、 やっぱ最新版を使うべきだよね? 噂では3が出るとかでないとかって話もあるんだけど、それは時期尚早かな? まだ企画段階で、実際に制作に入るのは10月頃だと思うんだけど。 ちなみにうちは基本、デザインの会社なんで フレームワーク触れる人間が俺しかいないという惨状 orz...
炎上必死
逆になんで最新版を使うべきだと思うの?
3はまだまだでしょ。楽しみだけど
3は俺も見てみたいな。
モデル周り一新されてるらしいし。
>>501 普通最新版使おうと思うだろw
>>503 これから始めるならそうだけど、1.3で作ったものがあるんでしょ?
普通使い回すだろうし、そうしないならそれなりの理由があるだろう
3は今年中にアルファ版が出るかどうかってレベルでしょ。 正式版は来年以降だろうし、使えるようになるのは再来年だと思う。 つまり、まだまだ2系で良いと思うよ。
506 :
499 :2012/08/06(月) 18:34:12.11 ID:???
>>500 やっぱりやばいですかねぇ。自分自身、いつもいつもスクリプト触ってるわけじゃないんで。
>>501 いや、ただなんとなくです。
前のサイトのサーバーはPHP4だったのですが、今度のは最新の環境で出来るので、せっかくなら新しい方が楽しいかなと(^^)
>>502 まだまだ見たいでしたね。ちょっと今回は関係なさそうです。
>>503 モデル周りが変わるということは、今までの作り方とは大きく変わるんでしょうかね。
そうなるとまた勉強することが増えて大変です(汗
>>504 前のサイトはそのままにして、兄弟サイトのようなものの作成になるのですが、
クライアント様は機能的には今のままで満足されてて、
デザイン重視の要求ですので、どうやら2系の方がビューが扱いやすいような書き込みを見ましたので
一応新規で作成する予定ではありました。
ただ、使いまわせるとは思うので、検討してみます。
>>505 そうですね、3は全く手を出せる時期ではないんですね。
皆さんアドバイスありがとうございました。
時間を見つけて一度2系でプロトタイプ的なものを作ってみたいと思います。
507 :
492 :2012/08/07(火) 00:30:47.68 ID:???
一向にcakePHP2の設定がおかしいようです。
さくらのエラーログを確認してみたところ次のエラー出ています。
[Tue Aug 07 00:23:12 2012] [error] [client 222.222.222.222]
Request exceeded the limit of 10 internal redirects due to
probable configuration error.
Use 'LimitInternalRecursion' to increase the limit if
necessary. Use 'LogLevel debug' to get a backtrace.
>>493 で記載したURLのうち A でアクセスするとダメです。
はやくこんな環境設定部分はクリアして開発したいのですが。。。まいった。
508 :
492 :2012/08/07(火) 00:35:25.67 ID:???
rewriteBase直したら行けました。 なるほど。一応ここさへ指定をしっかりしてあげればどんなディレクトリ階層でも 動きそうですね。 cakePHPって素敵w
うん。 cakePHP って素敵だわ!!
511 :
nobodyさん :2012/08/07(火) 23:00:42.56 ID:VIyBwqSF
cakePHPのヘルパーについて質問があります。 echo $this->Form->input('email',Array('label' => false,'class' => 'cb','style' => 'width:200px;')); ↓ <div class="input text required"> ←この<div>タグに cssやstyle を設定するにはどうすれば良いでしょうか? <input name="data[User][email]" class="cb" style="width:200px;" maxlength="120" type="text" id="UserEmail"> </div>
512 :
511 :2012/08/07(火) 23:03:59.17 ID:VIyBwqSF
自己解決いろいろできるんだね。cakePHPは。
ですです。
514 :
nobodyさん :2012/08/08(水) 18:28:34.00 ID:LAYqfGos
cakePHP2.0 で下の構文は使えなくなったのでしょうか? 画面よりログインボタンを押下し 期待している動作としては、ログインに失敗した場合 ユーザ名もしくはパスワードに誤りがあります というメッセージが画面に出る事を期待しているのですが setFlashの方が優先されてしまいます。 public function beforeFilter() { parent::beforeFilter(); $this->Auth->loginError = 'ユーザ名もしくはパスワードに誤りがあります'; } public function login() { //認証NGの場合 $this->Session->setFlash(__('残念!'), 'default', array(), 'auth'); }
515 :
nobodyさん :2012/08/09(木) 18:05:47.44 ID:DMpFXPo0
cakePHP2 の認証系の勉強をしています。
そこで↓を参考にしてアカウントの作成まで行う事が出来る様になったのですが
cake_sessions とusers
テーブル上のレコードを全て削除した上でアカウントを作成しても
常に
http://weble.org/2012/03/22/cakephp-2x-auth users.id の値がインクリメントされた状態で入ってしまいます。
例)
users.id = 15 の状態でこのレコードを削除し
再び登録処理を行った場合には
users.id = 1 が入って欲しいのですが
users.id = 16 が入ってしまいます。
原因をご存じの方がいらっしゃいましたらお教え下さい。
516 :
nobodyさん :2012/08/09(木) 18:16:09.26 ID:DMpFXPo0
あと、 cakePHP2 でcronを走らせる場合の方法を細かく説明している おススメサイトがあったら教えて下さい。
なんでも聞くな 調べろカス
518 :
nobodyさん :2012/08/09(木) 20:25:01.28 ID:DMpFXPo0
調べ方を教えろや
お前のかいた「cakePHP2 でcron」でぐぐったら先頭にそれっぽいのあるだろかす 書き込むなかす
>>515 idがauto incrementだからじゃねの?
>>515 逆にusers.id = 1だと非常にまずい気がするんだが。
522 :
nobodyさん :2012/08/09(木) 21:53:08.28 ID:DMpFXPo0
>>520 Ou!! サンキュー
>>521 なぜまずいのでしょうか?
true と判定されちゃう?とか?
CAKEでもPHPでもなくDBの問題だろ >テーブル上のレコードを全て削除した上で オートインクリメント値を戻せよ それなんですか?とかまた聞くなよ?調べろ
524 :
nobodyさん :2012/08/09(木) 22:40:10.77 ID:/OApl7of
↑それくらいわかるわ。
けんか腰になるな良く図が
日本語もかけない癖して人様に文句を垂れるなよ
>>525
それくらい誰でもわかるってことを 延々質問してるわけだけど
ルーティングって動的に変えられるのでしょうか? DBに登録した設定で管理したいのですが。
>>529 タイミングによりますよ
普通は routes.php に記載しますから、その時点で独自にDB接続することになります。
routes.php よりも後で設定できますか?って質問なら、分からないけど多分CakePHPの想定外なのでやめた方が良いのと違う?ってことになります
>>514 亀レスだけど、CakePHP2ではAPIが変わってるからドキュメント読み直した方が良いよ。
loginError っていうプロパティは無くなってます。
>>530 そうですか・・。Wordpressにあるように
ユーザがルーティングパターンを選択できたらいいと思ってたんです。
無理と言うことなら諦めます。
え?WPってそんなことできんの?
534 :
nobodyさん :2012/08/11(土) 20:59:09.76 ID:nk3X9t5Y
コントローラで $this->paginate = array( 'limit' => 3, 'order' => array('Foo.bar' => 'asc'); ) $this->set('foo',$this->Paginate()); としてもFoo.barのasc順になりません 数字を書き換えると1ページの上限がかわるので、1行目での設定が無視されてるわけではなさそうなんですが どうすれば順番の指定ができますでしょうか? ご教示お願いいたします
orderってarrayで指定できたっけ?
536 :
534 :2012/08/11(土) 22:33:59.62 ID:nk3X9t5Y
>>535 念のため
'order' => array('Foo.bar' => 'asc');
を
'order' => array('Foo.bar asc');
に書き換えてみましたが順にならなかったです
よろしくお願いいたします
'order' => 'Foo.bar asc'
538 :
534 :2012/08/11(土) 22:46:39.98 ID:nk3X9t5Y
>>537 ありがとうございます
それでも順になりませんでした
念のため他にpaginateを指定してる個所がないかスクリプトにpaginateで検索をかけたところ、
$this->paginate = array(
と
$this->set('foo',$this->Paginate());
しかヒットしなかったので、どこかで指定しちゃってたってことでもないようです
ログイン中のユーザIDを取得するにはどうしたらいいですか? Usersテーブルを認証用のテーブルとして使用しています。 id / email / password / created イメージとしては下の感じで取れそうだったんですが。 $this->Auth->id
540 :
539 :2012/08/12(日) 15:52:15.00 ID:???
自己解決しました。
541 :
534 :2012/08/13(月) 03:34:01.92 ID:DBWlC9mq
$this->paginate = array( と $this->set('foo',$this->Paginate()); の第三引数にorderを設定したらいけました
542 :
nobodyさん :2012/08/14(火) 15:24:43.09 ID:Gol/k/SD
$this->Article->id = 3; $this->Article->read(); // reads a third record $record = $this->Article->data // stores the third record in $record ↑これでレコード取得できるんだけど、 $this->Article->id = 3; $reacord = $this->Article->read(); ↑これでも取得できなかったっけ?あれ?俺の勘違い?? 今やってみるとNULLが帰ってきてる $this->Article->data ってやるとちゃんと取得できてる 今までのコードずっと $reacord = $this->Article->read(); で取得してるコード書いてて、 それで確認できてるはずなんだけどな、、、??
>>542 後者の書き方でも問題ないはず。
そしてコアのModel::read()メソッド自体は1.2から特に変わっていない。
となると、考えられる原因は
1)自前で書いたbeforeFind()でしくじっている
2)ビヘイビアで何やら起こっている
3)AppModel.phpかArticle.phpでread()メソッドをオーバーライドしていて
コアのread()挙動が変わってしまっている
なんにせよ、debug()祭りで原因箇所を探すべし
すまぬ。
>>543 の1)はafterFind()で読み替えてくれい
546 :
nobodyさん :2012/08/16(木) 04:28:57.25 ID:4Ld1R7VY
Retrieve
1週間以上レスがない・・・
548 :
nobodyさん :2012/08/26(日) 18:14:00.41 ID:+ThJuMom
PHP歴5年以上、CakePHP歴1か月です 他フレームワークはSymfony, Ethnaあたりを少々 さて、CakePHP1.3+PHP5.3.3で質問です。 1. 実行中のControllerオブジェクトをViewで取得するにはどうしたらよいですか? Controller::getInstance()とかないのかな? View->set('controller', $this)とかを試したんですが、 DebugKitとの相性が悪く、な手を模索中です。 2. AuthコンポーネントをViewで呼び出すにはどうしたらよいですか? Session('Auth.XXX')でも参照できるけど なんかプライベート変数を盗み見ているようで気持ちが悪い。 ご存知の方がいらっしゃたらよろしくおねがいしますです。
そんなわけ分かんないことしたいんなら無理してCake使うなよ
550 :
548 :2012/08/26(日) 18:22:47.13 ID:+ThJuMom
そんなこと言わんといてー
551 :
nobodyさん :2012/08/26(日) 18:40:22.53 ID:lL3DBKkv
Answer:Yiiを使え
552 :
548 :2012/08/26(日) 18:46:51.19 ID:+ThJuMom
Yiiは選考対象に入れていたんだけど、 知名度の低さと日本語リソースの少なさでCakeに勝てなかったんだよ。 環境さえ整えばYiiはよい選択肢だよね。
553 :
nobodyさん :2012/08/30(木) 10:00:09.56 ID:/uv7B1Aq
$this->renderや$this->flashしてるのに なぜか下のプログラムも読み込みにいって困ってるんですがどなたか理由わかりませんか? ちゃんと動いて止まってくれるところもあるけどなぜか動き続けるところもあって違いがわからないです。
下のプログラムって何のことかよく分からんから詳しく。 ひょっとして afterRender とかのコールバック系じゃないの? そもそもプロセスの終了はControllerでは制御しない。 Controller そのものを動かしている Despatcher がいろいろやってる。
(x)Despatcher (o)Dispatcer
556 :
553 :2012/08/30(木) 12:27:23.14 ID:/uv7B1Aq
>>554 例えば、
if(!$this->Model>save($this->data))$this->flash("保存失敗",/index);
という感じに保存に失敗したら、真っ白の画面に「保存失敗」とだけ表示して数秒後に指定ページへ飛ばしたいのですが
実際はViewまで読み込んでしまう現状です。
exit()てきな動きをすると思ってたのですが、ひょっとして勘違いですか?
return;すれば?
>>556 そういうときは2系だと Controller::redirect を使うんだけど、
その書き方だと1.3なのかな?
renderとかflashだと処理は終了しないので
>>557 の言うように処理の中断もしたいならreturnするのが正解
>>558 redirectとflashは別物だよー
何でこんなに盛り上がってないんだ cakephp2本も出るというのに
オワコンだから
Cakeがオワコンかどうかはさておき、 2chで情報交換する時代じゃなくなったよな
Cakeがオワコンなのは事実だがスレが盛り上がらないのは 2chがオワコンなのが原因 最近どこのスレでも会話が成立しなくなってきてて困る
最近2chの過疎ぶりがひどい ブラウザの「最近読み込んだスレ」のほとんどが、俺の書き込みで止まってる 内容は普通だから、俺が悪いんじゃないぞ
雑談板は普通に人いるけどな 専門板が過疎ってるだけ なぜなら未だにsage進行にこだわったり 質問したらテンプレ嫁、みたいな10年前から進歩してないオッサンが 幅きかせてうざいから
規制が厳しいせいもあるかも auひかりとか使ってたらほぼ書き込めないだろ?
専門晩に来なくなった人達は、どこに行ってるんだろうな? 公式フォーラムとかその辺がかわりに賑わっているわけでもないし
1.3系で作ってた過去のシステムを全部1.3.15に上げたぜ もう1.x系のリリースはないだろう しかし2.x系のリリースはバージョンアップが激しくて手が出しにくいな 2.0、2.1、2.2と4ヶ月スパンくらいで出てないか? 1.2から1.3までは1年半くらいかかったのに
2系はガンスルーしてるわ 対応めんどくさいから新規案件もガンガン1.3使い回して作ってる うちみたいな零細には余計な手間かける余裕が一切ないからな
>>569 ツイッターで独り言つぶやき続けてる印象
あいつらマジで非コミュだな、匿名掲示板で議論もできないのかよ
まあ、このスレも
>>565 以下殆ど俺の自演なんだけどな
>>572 ツイッターで書いてると、他の全部がめんどくさくなるからな
ブログとか俺も全然書く気がしない
2系はそんなに変更点多くないし、1.3系よりかなり早くなってるよ。 更新はともかく、新規案件なら2系で作ってもメリットはあると思う。
cakeってオワコンなの!? ちょうどcakeで作ろうと思ってたのに… 今なら変えられるけど代わりのいいフレワないのだろうか…
Yiiがいいらしい 使ったことないけど
英語できないからcake一択
英語ができるならyiiか… 一回お試しで簡単に触ってみるか なんかcakeと似てるらしいし どうもです
そんなにCakeって日本語の資料多い? 2009年あたり以降、日本ではあまり使われていない気がするが
他と比べたことないからわからないけどググったりCakePHP辞典とかは役に立ってるよ 1.Xのとか情報が古くても
Cakeオワコンっていうなら何があるっちゅーの? まぁ、PHP自体があれかもしれんがな
そもそもフレームワーク自体オワコンで生PHPの時代かも openpneだって2までは良かったんだけど3からシンフォニー()とか変なの採用してクソ重くなっただけでなくカスタマイズ性も落ちた
まぁ、フレームワーク使うのは開発者が開発しやすくするためだからな 利用者にはほとんどメリット無いよ
>>582 フレームワークの中ではYiiが一番良い
>>583 生はないだろ・・・めんどくさすぎるわ
何だよ cakephp.org のサイトが落ちちゃってるんで、
前から騒いでる Yii ってのでも覗いてみようと思ったら
そっちのサイトも落ちてるじゃねーかw
>>585 前からことあるごとにYiiの宣伝に勤しんでるようだが、
(別人かも知れないがな)
どう良いのか書かねぇと誰も話を聞いてくれんぞ
すれち
Eclipse 3.7.2 Indigo 一般 > ファイルの関連付けで *.ctp をしっかり PHP エディター(デフォルト)に関連付けて いるにも関わらず、Eclipseから*.ctpファイルを開いても *.phpファイルを開いた時のフォントが適用されていません。 どこか設定が間違っているのでしょうか?
cakePHP使っているのに 標準のバリデーションを使わずに、 自前でController内でバリデーション処理を組み込んでいるのですが こーいうことはしないほうがやっぱり良い?
DRYに書けるならいいんじゃね
>>590 実は、まだcakePHPのバリデーション機構をあまり理解していなくて(時間がないので)
既存のPHPの知識だけでコントローラ内でバリデーション処理を組んでます。
(FW使ってる意味ねーじゃんw)
あっそw
>>591 コントローラは質素に作るのが定石。
そのやり方はたぶんまずい。
使い方が分からなければ、ロジックをモデルに書いておいて後でリファクタリング。
>>593 アドバイスサンクスです。
※現在は、モデルは形上テーブル数分用意してますが
特にこれといったコードを書いていないです。。。
おいおい勉強してゆきます。
>>595 ありがとうございます。
モデルの本来の使い方をやっと知った感じです。
コントローラに何でも詰め込んでいましたが
モデルに検索機能とかを移動させたら大分コードがすっきりしました。
バリデーションて使ったことないんだけど ユーザー入力からのデータを保存する際には使った方がいいのか
君次第だ
どうでもいいってことか
Cake2.2にしたけど、どうしてもredirectするとセッションが空になるという問題が起きて 2日ぐらい調べているけどわからない 海外フォーラムとか見ても多発してるが解決策がない模様 1.3に戻すか…
>>600 あぁ、どっかで回避策読んだなぁ、、、
割と簡単に解決できるようなこと書いてあった。
うーむぐぐってもぐぐっても解決法が見つからん 古いバージョンのなら出てくるんだけど、当然試してもダメだった よく調べるとリダイレクトすると空になるんじゃなくて、 リダイレクト前後でsession_id()が異なる値を返し、リダイレクト前にwriteした値が正しく保存されてないようだ 何故こうなるのかがわからない
>>600 Cakeってこういうバグたくさんあるからいやなんだよ
同感。まだまだ旧バージョンを使い続けた方がいいみたいだな 1.3も1.3.10ぐらいまではひどいバグあった、テーブル全消し喰らったり
Cakeに限った話じゃないが、セッションてデバッグしにくいよな
セッションがどれぐらい保持されるかっていう設定もややこしすぎるしCake
セッション切れは多分存在しないcssとかjsとか呼び出しちゃってんじゃないか なんでもcakeのバグとか言わない。
既存のWebアプリに外部に機能を提供するAPIを追加したいんだけど APIでのユーザ認証はどんな風に実装するのが普通でしょうか? APIへのセッション情報の受け渡し方法が判らないです・・・
クッキーで渡すしかない?
Oauth
>>611 トークン管理(発行・破棄)とか多重ログイン対応とか考えると大変そう・・・
あっそ
score_daily って名前のテーブルを定義しようとしたら score_dailies にしろってエラーがcakeから返されるんだけど どうも daily は形容詞であり、複数形など無いので 凄く納得が行きません。 テーブル名称は、複数系にしなくちゃならないのでしょうか?
daily_scores いやならmodelにuseTableで指定すればいいだけ
コントローラーのアクション関数中で$this->redirectを書いたら それ以下の行は実行されないという認識であってまっすか
>>617 第3引数次第。デフォルトではそれでOK。
Cake2.2 core.phpで Configure::write('debug', 0);としていても、エラー時にCakeのエラー表示が出てしまいます 出さないようにするにはどこで設定するのでしょうか?
php のエラーじゃなくて?
です。Cakeのエラーです。 引き続き調べていてわかったのは、PHPにエラーがある場合にそうなります。 存在しないURLを入れた場合には、CakePHPのエラー表示用の?ソースコードが吐かれます。頭にCakeのコメント付きの。 これでは困るので、なんとかならないでしょうか。何かおかしいと思うのですが…。 エラーがなければ正常に動いています。
error_reporting(0) はしてみた?
コントローラとかビューでdebug上書きしてるんじゃないの
2でどのくらい速くなったの?ざっと見た所構造同じだし、速くできるような違いが見当たらなかったが モデルの遅延読み込みで速くなったって、アソシエーション使ってなければ関係ないんじゃないの?
>>626 dクス
Verあがるたびに遅くなってるw
2.1でテストしている限りには速く感じたけど、
>>626 見ると、バージョンアップしていく毎に遅くなるのか。
まぁ、機能が増えるから遅くなるのはわかるけども
このやり方じゃボトルネックがよく分からんが、 DBをメモリに乗せてないだろうからDB接続を確立させるコストが一番高いんだろうな そういう意味じゃどのFW使っても大差ないと思うし、バージョンの差分などは気にするほどでもないと思う。
つまり1.3でも大差ないってことだ
感覚的には1.3系より2系の方が速く感じるけどな
っていうか、実際早いんだろ
少しはな
じゃぁ良かったじゃん
元が遅いからそんなによくない
じゃぁ何が早いのさ
637 :
nobodyさん :2012/09/20(木) 10:32:10.03 ID:ir1LF+Ba
Cake2.2を使ってます。 各アクションのsetメソッドで1つづつ値を渡す方法でなく AppControllerから一括でViewの全てのディレクトリのctpに変数を渡す方法ってありますか?
beforeFilterかbeforeRenderあたりに書けば良いんでないの
Cake2.2を使ってます。 掲示板を作っていて、スレタイモデルとレスモデルが スレhasManyレス レスbelongsToスレ になっているのですが、レスが追加された際にスレのmodifiedを自動更新する方法ないでしょうか? counterCacheを使うとレス数カウントはできるのですが、更新時刻も取りたいです
>>639 そんなロジック実装してないよ。
Modelに書いとけ。
counterCacheの存在を初めて知った
アソシエーション便利だけど、裏ではどんだけ無駄な処理が実装されて動いてるんだろうな findやsaveを1回する度にCPUが悲鳴を上げているような気持ちになる 気になるので今度lib以下のソース見てみるか 使わない機能はばっさりコメントアウトとかしちゃおうかな
そういうのがもっと整理されれば速度も上がるんだけどね
cakephpは使わないコードはなるべく読み込まないような実装になっているはず
645 :
nobodyさん :2012/10/01(月) 00:47:57.77 ID:fpJxZWOx
ファイルのアップロードで、fileに対するバリデーションのことなんですが、 ファイルが指定されていたらファイル形式、ファイルサイズなどをバリデーションにかけて、 指定されていなかったらかけない、という書き方がわかりません どうしたらいいんでしょうか?
ファイルのアップロードでファイルが指定されている/いないって意味がよく分からないし、 どこで躓いているのかもよく分からないし、 CakePHPのバージョンも分からないので答える気が失せる質問だから、 何となくvalidate 系のコールバックをうまく使えばいいじゃんとしか言えない。
if (isset($_FILE['image'])) { //ファイルがアップロードされた場合のバリデーション } else { return true; } 素のPHPで言うと、こういう事じゃないの?
648 :
nobodyさん :2012/10/01(月) 07:27:09.08 ID:qwXCS9RT
>>646 $form->file()でファイル渡せる状態になってるフォームで、
そこにファイルを指定したときだけファイルの中身のバリデーションをかけたいってことです
>>647 ありがとうございます
allowEmptyみたいな感じで、
<input type="file">にファイルを指定していなければバリデーションルールはスルーする
みたいな簡単にできるものってないんでしょうか?
簡単には出来ないよ。俺もルールは自作してるよ
俺は簡単にできてるけど、やってみてできなかったの?
652 :
nobodyさん :2012/10/01(月) 20:09:57.83 ID:fpJxZWOx
>>649 ありがとうございます自作してみます
>>650 echo Configure::version();してみたら1.3.8って出ました
書き漏れすみません
>>651 allowEmptyでは無理でした
普通にエラー警告(ファイルの形式を見て、jpgでなければ警告を出すようにしてました)が出ました
Cake2本がついに発売されてるのか 2のリリースから1年も経って、やっとまともな本が一冊 うれしい
654 :
645 :2012/10/01(月) 22:08:47.24 ID:fpJxZWOx
いまだ1.3使ってる人いるんだな 何故2系を使わないのか
使う理由がないから
さすがに新案件は2系だな
これまで書いたコードを、2対応に書き直す時間がないお
そんなに時間かからないよ
>>659 きちんとテストコードをかいてるひとには苦行だぞ
661 :
nobodyさん :2012/10/07(日) 03:32:25.58 ID:vSsbr+AJ
CakePHPでバリデーションエラー時に エラーメッセージをまとめて一箇所に表示する方法ってある?
ちょっと前に同じ話が出てたはず ログ見るべし
664 :
nobodyさん :2012/10/12(金) 18:03:03.50 ID:zHaiJKat
最終ログイン時間を記録する場合どういう実装をするのが適切でしょうか? 僕が思いつくのは、 app_controller.phpのbeforeFilter()に、 アカウントテーブルのlastloginに現在の時間をupdateする方法です ログインのアクションに記述すると、 クッキーで自動ログインしている際などはそのアクションを通らないので不適切でした なにか他に良い方法ありますでしょうか??
自動ログインの場合も記録したいというのならそれが正解なんじゃないかな
はてブで見かけた、 「外注が作ったCakeのコードが糞だから書き直した」的なブログ記事。 「お前のコードも糞じゃねぇか」って叩かれてワロタw てか、俺の書き方が意外と駄目じゃないと知っただけでも収穫あったぜ
URLくれくれ
cakePHPの勉強を始めようと思い、ver2から始めようと思ってます。 「プロになるためのPHPプログラミング入門」という本が良さそうと思ったんですが、 ver1.3基準で書かれているようです。 cakePHP2を勉強するうえで、1.3基準の本は有用でしょうか?
有用ではありません。 もうcake2の本はあるんだからそっち選びなさい。 CakePHP2 実践入門 は評判良いぞ。
>>669 670に同じく今さら1.3の本を読むのは時間のむだ。
公式のチュートリアルを何回も繰り返して手順を身体に覚えこませてから
>>670 の本を読むといいと思うよ。
672 :
669 :2012/10/22(月) 14:14:23.93 ID:???
遅くなりましたがアドバイスありがとうございました
2.2.2を使用しています。 Authコンポーネントのログインで、認証条件を付ける時、 以下のようにすればOKとあったのですが、条件が適用されません。 書き方が違うのでしょうか? $this->Auth->userScope = array( 'User.status'=>1 );
さくらサーバーをレンタルし、2.2.2のソースをCakeファイル直置きでアップロードした所 同コントローラの別アクションへredirect処理が行なわれなくなりました。 $this->redirect(コントローラ名:アクション名)を試してみても $this->redirect(相対パスor絶対パス)の形でも どちらの形式でも正しくリダイレクトが行なわれていないようです(真っ白なページが表示される) 何か間違っているのでしょうか
675 :
674 :2012/10/24(水) 15:50:39.87 ID:???
とりあえず動かす為にJavaScriptで遷移させます お騒がせしました
>>673 それ、1.3の書き方なんじゃないの?
よく分からんけど公式ドキュメントにそんなプロパティ載ってないよ
1.3ならあったみたいだけど
>>674 真っ白=debugモードが0でいいのかな?
だとしたらキャッシュクリアしてみた?
>>673 今改めて見直したら AuthComponent::$authenticate じゃないかな?
678 :
673 :2012/10/25(木) 09:13:43.26 ID:???
>>676-677 ありがとうございます。
自分もソースを見直したら、以下のようにしたら実行できました。
$this->Auth->authenticate = array(
'Form' => array(
'scope' => array('User.status' => 1)
)
);
ファイルアップロードを今まで自作コンポーネントで扱っていたのですが、 これってモデル(ビヘイビア)の処理ですかね? コントローラ側でエラーチェックとかアップロード先のパスとか書いていくと 長くなるのでどうすれば納まりが良く、使い回しが利くかと悩んでいます。
679ですが、後から考えたらコントローラに入れる方が小回り利きますね 効率化よりも今まで書いていた方法で行きます。
まぁ、それでいいなら構わないけど、Modelだよ普通は。 あとプラグインもいいのあるけど、何で使わないの?
>>681 自分の使い方だと、コントローラの方が良いと思いまして。
例えば、一度アップロードしたファイルはセッションに入れて、
フォームのその他の項目にエラーがある時は、
そのセッションを表示して再アップロードさせない。
みたいな処理を入れる時、セッションコンポーネントを使うので、
モデル内で解決するより、コントローラの方が簡単だと思いまして。
あと、プラグインも小回りが利かないんです。
ファイル名をいくつかのパターンで生成したい時とか、
最初は仮フォルダにアップして、save前に公開画面のフォルダに移動するとか
そういう細かい仕様に対応するには自作の方が便利なんです。
ファイルアップロードの仕組みを自作する事自体は簡単ですし。
言わんとしてることは大体わかるけど、CRONの処理とかはないの? テーブル無しのUploadFileモデルとか作った方が小回り効くような気がする・・・
CakePHP2.2.2を利用しています。
コントローラーからビューにメンバ変数の連想配列を渡したいのですが、躓いています。
下記の Controller にて、
class UserController extends AppController {
var $hoge = array();
public function beforeFilter() {
$this->$hoge['foo'] = 1;
$this->set(compact('hoge'));
}
}
として View 側で$hoge['foo']を呼び出そうとして、
Undefined variable: hoge
のエラーが返ります。
compactを使用しない場合でも同様でした。
http://book.cakephp.org/2.0/ja/controllers.html#Controller::set を参考に考えてみたのですが、何か思い違いをしていますでしょうか?
>>684 $this->set('hoge',$this->hoge);
>>685 すんなり解決しました。ありがとうございます。
提示内容を見て、どう思い違いをしていたのか理解しました。
これに半日かけてドキュメントを漁っていましたが、もう少し基本を勉強したいと思います。
CakePHP 2.2.2で 一度だけ使えるクーポンを定義しようとしていて 'Model.coupon' => 'hoge' で保存しておいて checkルーチンで 'Model.coupon' => 'hoge'でfindし、見つからなければfalse 見つかったら'Model.coupon'=>'' でからにしてsave後 trueを返す。 というのを作ったのですが、 saveするとfalseが返ってきます。 saveをしなければ trueのまま返るのですがなぜなのでしょうか?
>>687 バリデーションチェックでnotempty指定してるとか?
689 :
687 :2012/10/29(月) 13:21:50.79 ID:???
>>688 SQLのダンプを表示させたところ
findのSQLは どちらも同じなのですが、Num.rowsが saveした方では0になります。
save後にfindが走っているってことでしょうか
690 :
nobodyさん :2012/10/29(月) 13:44:36.50 ID:h036kd/w
apps/Console/CommandHogeShell.php この中で定義したメソッドに引数を渡す事ってできないの? CUIから内部で定義したメソッドをキックすると Warning Error: Missing argument 1 for HogeShell::Test() っていうエラーが出ちゃうんだけど。
マニュアル読みなさい
findについて質問です。 以下のようなモデルがあるとして A hasMany B B belongsTo C A.id = 1のCのリストを取得 $this->A->find('all', 'conditions'=>array('A.id'=>1))として 取得した中のBの中に含まれるCをとってくるしかないのでしょうか SQL文としては以下のようなものを想定しています。 SELECT C.* FROM A, B, C WHERE A.id=1 AND A.id = B.a_id AND C.id = B.c_id
693 :
692 :2012/10/29(月) 15:56:52.28 ID:???
'joins'で紐付けできました。 お騒がせしました
694 :
687 :2012/10/29(月) 16:35:42.03 ID:???
find(); SQLダンプと結果の出力 exit; save(); だと、SQLダンプと結果はNumrows = 1 (データ更新されていないので何度呼び出しても、、)ですが find(); SQLダンプと結果の出力 save(); だと SQLダンプは同じで、Numrows=0になります。 後ろで行った saveが 前に書かれたfindに影響を与えるというのがどうしてなのかがわかりません。
なにいってんだこいつ
696 :
687 :2012/10/29(月) 16:49:40.01 ID:???
Queryを見ると saveを入れた方は 1. SELECT 文 Num.rows = 0 2. SELECT COUNT文 3. UPDATE 文 Num.rows = 1 となっていました。 3の結果が1へ影響しているみたいです。
697 :
nobodyさん :2012/10/29(月) 19:04:11.24 ID:h036kd/w
書いてあるから隅々まで全部読みなさい
699 :
687 :2012/10/29(月) 19:20:25.68 ID:???
すいません、私のブラウザのせいでした。 へんな機能拡張がページを2回呼んでたみたい
>>697 cakephpでコマンドで引数を渡す
とかでぐぐればいくらでも出てくるだろボケ
701 :
nobodyさん :2012/10/30(火) 16:38:01.14 ID:sDbMhdsy
>>700 サンキュー。
あと
$contents = @file($reading_file_name );
の @ ってなに?
フレームワーク以前の問題ですな
passedArgsとgetの共存ってどしたらいいすか?
formヘルパから作られるgetをrest的なpassedArgs形式で渡したいッス。
example.com/controller/action/arg1:val1/arg2:val2/?arg3=val3
ってなってるヤツを
example.com/controller/action/arg1:val1/arg2:val2/arg3:val3
としたいッス。
js使えば行けるし受け側でgetの処理をすればいけるんだけど、こうすれば楽じゃね?的なご指摘あればうれしいです。
>>671 現状はactionでgetとごちゃまぜにしたり、場合によってはappControllerでget優先で$this->passedArgsを書き換えてる感じッス。
了解ッス
>>706 バージョン書けって
2系ならある程度分かってるから教えられるけど、
passedArgsってパラメータは1.3系なのかよ?
>>709 http://api.cakephp.org/class/form-helper#method-FormHelpercreate FormHelper::create($mode, $options) の、第2パラメータ $options に、
'url'をキーとしたパラメータをセット。
'url' の値は string | array で、そういうパラメータを渡したい場合は
連想配列で構造を渡す。
CakePHPのルータがこの連想配列のURLパラメータと現実のURLを相互変換するのは理解OK?
で、通常のURLパラメータに該当しないキーで値をセットすると、
・・・つまり
array('arg1'=>'val1', 'arg2'=>'val2')
のようにやると、やりたいことができる。
何いってんの? formにゅうりょくちをコロンセパレートにしたいんだろ formってそういう仕様だから、自分で言ってるとおりjsでがんばる。それかばかだけどリダイレクトしちゃえ
んなもんそれ以外の方法で出来るわけねーだろ
713 :
706 :2012/11/01(木) 11:41:29.98 ID:???
みんな色々意見あざす〜。 結局ちまちまやるっきゃないぽいっすね〜。 みんなそうしてるんかね〜。マンドクサ
俺もフレームワーク使う限りには効率的なやり方を模索して 長時間、あれやこれやと試すことがあるけど、 目的は「動く」事だから、効率化や綺麗なソースよりも まずは動くことを目指してやると良いよ。こだわりすぎはいかんぞ。
cakephp2.2を使用しています。 ビューからrequestActionでカテゴリを取得しようとしているのですが、 $this->requestAction('/widget/category'); widgetコントローラにcategoryアクションが無い場合は どうすればいいのでしょうか? 単なる構文ミスでエラーになるのですが、 存在確認みたいなコードがあれば教えてください。
>>714 納品してポイなら良いんだけどね〜。
何年か自分たちでメンテしていくことになるときには気分の良いコードの方が精神衛生上いいなぁと。
まぁそうは言ってもね、一年前のコード見てすごく気分悪くなるんですけどねw
717 :
nobodyさん :2012/11/03(土) 21:12:09.24 ID:nZj97DWz
質問なんですけど、cakePHP 2.0 で認証時に使用するテーブルの列の名前を id じゃなくて login_id にしたいんですけど、この列名って固定なんでしょうか?
718 :
nobodyさん :2012/11/03(土) 21:18:17.79 ID:X1g36ZBW
$primaryKey
>>717 primaryKey を login_id に設定した上で
下記コードを記述しました。
<td><?php echo $this->Form->input('login_id',
Array('label' => false,'style' => 'width:150px;')); ?></td>
するとなぜか、コンボボックスが表示されてしまうんですけどなんでしょうか?
マニュアルのFormの項目見たりFormHelperのAPIリファレンスみたりソース見たりしてきて
適当に調べてみます。
>>719 FormHelper::input は、オプションの自動補完機能があるんですよ〜
で、***_id っていうフィールド名の場合、フォームのデータ型を指定しないとselect扱いになるというわけ。
それを回避するには、オプションで明示的に'type'を'text'とかに指定する。
>>722 ありがとうございます。全くしりませんでした。。。
別な方法で迂回して対処しようとしてました。。。
AdminsController.php の中に次のコードを書いています。 public $uses = Array('User'), $components = Array( 'Session', 'Auth' => Array( 'loginRedirect' => Array('controller' => 'admins', 'action' => 'index'), // ログイン後のリダイレクト先 'logoutRedirect' => Array('controller' => 'admins', 'action' => 'login'), // ログアウト後のリダイレクト先 'loginAction' => Array('controller' => 'admins', 'action' => 'top'), // ログインしていない場合のリダイレクト先 'authenticate' => Array('Form' => Array('fields' => Array('username' => 'email'))) ) ); そしてブラウザより /admins/add にアクセスすると問題無く /admins/addのコントローラが実行され /Views/Admins/add.ctp が表示されるのですが /admins/addcustomer にアクセスすると、/admins/top に飛ばされてしまいます。 なぜ、/admins/add がリダイレクトされないのに /admins/addcustomer だと リダイレクトされてしまうのでしょうか? ※add() { //略 } をコピーして作成したコントローラ内のファンクションが addcustomer () { //略 }となります。
CakePHP 5.0ぐらいになったら使う
>>1 にあるフォーラムで新規登録したいのだけど、フォームから登録しても全く音沙汰無し。
ニュースリリース見ると2006年で登録止まってるし、管理者からは放置されてるのかな?
フォーラム自体の投稿はぼちぼちあるから古参だけの閉じた環境になってる?
Cakeで作ってあるからバグってるとかなんじゃないの 知らんけど
フォーラムはxoopsじゃないか
なぜCakeで設計しないのか?!
730 :
nobodyさん :2012/11/04(日) 21:38:37.79 ID:eiB+7ElR
画面上に次の2つの入力項目があります。 そのうち、1)と2)で入力された値の組み合わせのチェックを 独自バリデーション内で行いたいのですが どうすれば、独自バリデーションファンクション内でサブIDの値を 捕捉する事が出来ますか? 1)基本ID ( basic_id ) 2)サブID ( sub_id ) public $validate = Array( 'basic_id' => Array( 'dokuzi' => array( 'rule' => array('isCorrectId', 'ダミーの引数'), 'message' => '独自バリデーションの結果エラーが出ました。。' ) function isCorrectId($data, $dummy_args) { $basic_id = $data["basic_id"]; $sub_id = {サブID}; ← どうやって取得したらいいか分かりません。 return true; //return false; }
731 :
730 :2012/11/04(日) 21:56:02.04 ID:eiB+7ElR
お願いです!誰か教えて下さい。 はまりまくってます。
>>730 バージョン不明なので2と仮定して、
定石的に Model に定義しているのを前提に。
Post されたデータなら
$this->data['Model']['basic_id']
$this->data['Model']['sub_id']
で参照出来ると思うけど、何でわざわざ関数に引数渡すの?
あと”ダミーの引数”って書き方だけだと配列で渡しているか不明なんだけど、
配列で渡してないから参照出来ないんじゃないのか?
>>731 数レス進んでいる中でスルーされているんならわかるが、
無レスで催促求めるんなら2ch向いてない、ヤフー知恵袋あたりに帰れ
734 :
730 :2012/11/04(日) 23:39:10.86 ID:eiB+7ElR
>>732 ありがとうございます。
次の様に項目毎に独自バリデーション関数を指定したところ
ファンクション内で var_dump($data); をしたら
画面上の入力項目(基本ID、サブID)の値も取得出来る様になりました。
public $validate = Array(
'basic_id' => Array(
'dokuzi' => array(
'rule' => array('isCorrectSequenceNumber'),
'message' => '独自バリデーションです。'
)
),
'sub_id' => Array(
'dokuzi' => array(
'rule' => array('isCorrectSequenceNumber'),
'message' => '独自バリデーションです。'
)
),
735 :
730 :2012/11/04(日) 23:46:59.54 ID:eiB+7ElR
>>734 で、いけると思ったんですけど
結局バリデーションファンクションに値が入って来るのは
1項目毎なのですね。。。
基本ID と サブID の値を同時に絡めて独自判定処理を入れたいのですが
1つのファンクションじゃできないみたいです。
ちょっと回りくどいけど、外部ファイルにパラメータを保存して
よみとってやるしかないんでしょうか?
※cakePHP2 を使用しています。
736 :
730 :2012/11/05(月) 00:05:07.80 ID:Ag4y5/HL
自己解決。 コントローラの中でモデルの中で定義した独自バリデーション ファンクションを呼べばいいんですね。 すると data の中には画面上で入力された値全てを 取得する事が出来ました。
DRYの原則無視して良いんならそれもで良いんじゃい?
したらそもそもCakePHP使わずに他の Framework 使えば良いのに。
あと
>>732 で書いていることを全く理解してないのな。
isCorrectSequenceNumberの中身も書いてないし、そんなんで
アドバイス出来るのはエスパーだけだから知恵袋帰れ。
なんか
>>713 に通じる者がある。
2chは初めてか?config::debug抜けよ^^
739 :
nobodyさん :2012/11/05(月) 11:46:36.35 ID:eArr6OfY
config::debug抜けよ^^ ↑ これはどーいう効果があるのさ^^?
臭いものに蓋をする ってこうかがあるよ^^
741 :
nobodyさん :2012/11/05(月) 18:33:53.33 ID:eArr6OfY
↑ 臭いレスをありがとう
conditionsの条件は違うんだけど、似たような処理を行うコントローラがあって、 今まではifやswitchで分けて1つのコントローラ内で納めてたんだけど、 よく考えたら、コピーしてアクション分けした方が見やすいと思うようになった。 ただ、コントローラのソースが増えるからと言って 分けすぎるとスパゲティコード化するし、本末転倒な気がする。 みんなはどういう理念の元、開発してる?
743 :
nobodyさん :2012/11/07(水) 11:32:44.89 ID:DVy9uKri
質問です Cakeでテーブルのカラムのコメントを取得・更新する方法を教えてください
カラムのコメントって何ですか?
RDBMS依存のやつ?
何ですか?といわれましても… 依存なんですか?
>>742 CakePHPベストプラクティスとかfatモデルとかでぐぐれ
まさに解決策が載ってる
ポイントは
ややこしい処理は全部モデルへ移せ
パラメータだけコントローラにおいて置けばいい
って感じ
モデルを肥大化させると小回り利きづらくなるんだよな
一個のモデルを大きくするんじゃなくて、 モデルを小分けしてアクションの数だけ作ったらいいという話も聞いたが、 Modelディレクトリの直下に並列保存は正直きついな。 もう少しオートローダが強力だと独自に階層作れそうなんだけど。
小分けすると結局、スパゲティーにならないか? 階層たどって何がどう連携しているかわかりづらくなると思うよ
少なくともテーブルとレコードの分離はしたい
ベストプラクティスを知るために、cakeを使った大きなプロジェクトのソースを見れたらいいなあ 規模毎にみんなでコードレビューをしたい
baserCMSのソース見たけど、まさにスパゲティーコードだった どこで何してるか把握するのに時間がかかる
croogoはどう?
テーブルのカラムを変更した後、何度やってもfinの値が取得出来ないことがあった。 結果的には、modelキャッシュが利いていたのが原因だった。 本番サーバだから、debugレベルも0にしていたので気づくのが遅れたんだけど、 今後の運用に対して良い方法無いかな? やっぱり、何かDBを操作したら手動でキャッシュ削除するしかないのだろうか
cakePHPの勉強をすれば、純粋なPHPのクラス・オブジェクト指向の勉強・理解に役立ちますか?
立たないよ。その辺意識しないで良いためにフレームワークがあるんだし。
たつよ ってか基本的なクラス・オブジェクトの概念がないとCake厳しいだろ
>>757 役に立たない。
cakeに限らずfwは効率を求めるために
純粋なオブジェクト指向から無理してるところがある。
"純粋なPHPのクラス・オブジェクト指向" 幽霊を追いかけるのはやめろ
単純な物作ってると、フレームワークの型に乗っかってるだけで あまりオブジェクト指向の勉強・・・って感じにはならないけど、 ビヘイビアなんかを自分で作ってみると勉強になると思うよ
オブジェクト指向を勉強することが目的なのか、PHPを勉強することが目的かで変わってくるな。 PHPのオブジェクト指向そのものは言語仕様の一つのオプションみたいなものだから、 オブジェクト指向を勉強の目的とするにはあまり向いてない。 Cakeとか開発してる連中なんかはPHPだけやってるわけじゃなくて、 いろんな引き出し持ってるからこそ実装できてる箇所も多いと思う。 プログラムの初心者で、オブジェクト指向そのものを勉強したいならJavaがいいんじゃないかな。 別にC#でもいいかもしれないけどいろいろ金がかかる。 Javaはその点書籍もたくさんあるし、無料の資料とかも十分以上あって申し分ない。
cakePHP2.2.2で 条件によって joinsでテーブルをLEFT JOINさせようと思っているのですが joinsを入れてできたSQL文を見ると まずjoinsが入ってから、アソシエーションのLEFT JOINが書かれています。 自分の joinsを後ろに持ってくることはできないでしょうか?
765 :
764 :2012/11/11(日) 17:37:42.08 ID:???
事故解決しました。。 A belongsTo B B belongsTo C で、Aの条件と Cの条件でAのリストをとりたかったので A->findでどうにかしようとしてましたが B->find でとってきた Aを使えばよかったようです
766 :
nobodyさん :2012/11/11(日) 17:59:06.36 ID:63qzaIYV
バリデーションでalphaNumericが日本語も通してしまう問題は、2系では直ってますか?
>>766 試してないが、コードを見る限り同じっぽいから直ってないんでない?
1の時ハマったからalphaNumericは自作を使ってる
769 :
nobodyさん :2012/11/16(金) 16:04:19.01 ID:WLRp6A/S
CakePHP2.xのAjaxバリデーションについての質問です。 画面更新を伴わず、モデルで定義したバリデーションルールでバリデーションをかける方法を探しております。 jQueryで $("form").submit(function() {)
上の続きです。 jQueryで $("form").submit() でフォーム送信ボタンが押された時のアクションを拾ってあげて、 そこからフォーム全体をコントローラに渡し、バリデートを行いたいのですが、 「フォーム全体をコントローラに送る」をどう記述していいのかわかりません。 よろしくお願いします。
過疎
それ、Cake関係ないよね。 あと、submit押した時にajaxにデータ投げて結果を受け取って エラーがある場合はsubmit止めるって処理になるわけだけど、 そう言う想定は出来てるの?出来てるならやっぱりCakeは関係ないよ
Cake関係ないね
一旦ajax考えないで普通に動くフォーム作ってみればいいよ
775 :
770 :2012/11/16(金) 17:32:54.70 ID:???
皆さん、ありがとうございます。 一旦普通に動くフォームを作り上げております。 その際にモデルで定義したバリデーションを利用しているのですが、 普通のサブミットだと、一度画面の更新が発生してしまうじゃないですか。 その画面更新の際に、JavaScriptで生成しているアイテムがすべて消えてしまうのが難点なのです。 つまり、画面更新せずにモデルのバリデーションにフォームを食わせる方法を知りたいのです。 お願いします。
jquery ajax post キーワードはこの辺りな やはりcakeは関係ない
>>775 HTMLの基礎から勉強しろよ。レベルが低すぎる
要するによくあるユーザー登録画面でinput中に そのユーザー名は無効、とか5文字以上入れろ、とか そんなんをリアルタイムで出したいってことなんじゃね?
だからそれはAjaxやHTMLの問題でCake関係ないから
うん。だから
>>774 のアドバイスなんだけど、当人は
”Cake上”で普通に動くフォームは作ってあります、
とかとんちんかんな返答してるんで、理解出来てないんでしょ。
メッセージ出すのはCakeのバリデーションじゃん、だからCakeで動くやり方教えてよ、
って考えなんだからCake抜きで一旦作れ、としか言いようがないよね。
なんかフォーラムもレベル低いのが集まってきてるし、初心者特集でもあったのか。。。
別に初心者は大歓迎だが、人の意見を批判して試さないのは感心しないなぁ
>>780 皆さんの「Cakeは関係ない」というご指摘の意味が良く分からないのです。
皆さんよりかなりレベルが低いかもしれません。
Cake上で画面更新を伴うフォーム送信は一旦完成させております。
モデルのバリデーションルールで誤入力に対して警告する仕組みも出来ております。
このモデルのバリデーションを実際のサブミットより前に行い、画面更新の前に警告だけを表示させたいのです。
これはAjaxを使ったCakeのモデルへのサブミットだと思うのですが、どうでしょうか?
Cakeは関係ないのでしょうか?
>これはAjaxを使ったCakeのモデルへのサブミットだと思うのですが、どうでしょうか? わかってるじゃねぇか。 だからAjax(jQuery)の方を勉強しろ、Cake関係ないって事だろが。 まずその知識はどうなんだ?それすら出来てないんだろ?
腹立つから大ヒント教えてやるわ フォーム ↓ 送信ボタンを押す ↓ ajaxで判定用のコントローラーにアクセス ↓ 結果をjsonで返す→エラーがある時は表示 ↓ エラーがない場合は確認画面へ これをもう一度見直して、ajaxからcakeにアクセスし、結果をjsonで返して それを判定するようなjavascriptコード書けよ。それだけだ。
>>783 >>784 ありがとうございます。勉強不足を自覚し、JavaScriptを基礎からやります。
786 :
nobodyさん :2012/11/19(月) 18:19:40.42 ID:Ntxmf8gS
みんな短気だなぁ
こーいう初心者にお金もらって教える仕事したいなぁ
500円で教えるクラウドワークスサイトがあった気がする ま、500円なんて割に合わないがw
1回答えたら、同じ質問が参照される度に500円ならいいんだがな
DRY、つまり同じデータを二箇所以上に書かないってポリシーを徹底したい場合、 ModelからもViewからも同じデータを参照できる仕組みが必要だと思うんだけど、 コントローラの仕事を増やさないで、一箇所にある同じデータを参照する場合、 ViewからModelを見に行くってことになるのかなと思うんだけど、おかしい?
なんか、790の内容がいまいち伝わる自身がないので補足しておくと、 具体的には、テーブルの内容を表示する際のラベルの設定を どうするのかっていう問題とか。
ビューからモデル見に行くの全然あり、てかそれが正しいMVC Cakeみたいなフレームワークのビューって結局ただのテンプレートになってることが多くて それは本来のMVCのビューじゃない
>>791 何にでも適用できる原則じゃないけど、そんなラベルの文字列なんかは
ビューに直接書きたくないならヘルパーにスクラッチしとけばいいんじゃないかな?
cookbookのチュートリアルって、MVCを誤解させるよな 誰かもっと良いチュートリアルを作ってくれ(丸投げ
796 :
nobodyさん :2012/11/20(火) 08:42:01.29 ID:ZgN4QSxZ
>>792 Viewの中でModel使われると鬱陶しいんだよね
Viewには出来るだけPHPコード書きたくないけど、実際は難しいよね CSSやJavascriptを挿入するだけでも書かなくちゃいけないし
もしかして、ctpをそのまま使ってんの? 何か見やすいテンプレートエンジン使えばいいのに
ひょっとして、PHPのコードをビューに書きまくるからじゃない? ヘルパー作って、呼び出すだけにすればいいのに
さすがに一覧表示とかforeach使って書くだろ? 中のループはヘルパー使ってもさ。 同様に、ifを使う箇所も出てくると思うよ。これもヘルパーじゃ無理だ
そこでテンプレートエンジンですよ foreachもifも必要なくなる(というか使えない
俺はテンプレートエンジンってSmartyぐらいしか知らないけど 普通にIfとかforeachとか使ってた気が・・・ 今はどんなのがあるの?
Smartyしか知らないって、全然知らないってことじゃん この機に調べてみ
シンプルさを訴求するという大義名分があるせいで その弊害を語られることが少ない気がするが、 Modelとデータベースってのは本来別の次元の話なのに 両者が強力にくっついてしまっているのって結構問題だよな。
個人的に、テンプレートエンジンのソースとPHPと大差ないと思うんだが。 少なくともプログラム知識皆無の奴が使えるものじゃないだろ
>>806 だよね。
phpの書き方覚えるのとテンプレートの書き方覚えるのだったら、汎用的に使えて速いphpの書き方覚えた方が良いような
でもPHP全然わからんデザイナに振れるのは大きい
分業の為だよね。基本的には
PHP全然分からんデザイナーがテンプレートエンジンの書き方は覚えるのか。 それならPHPも分かるよね?って思うんだが。Smartyとか。
いや全然違うだろ 同じだと思ってるの?
エラーをトラップして適切な処理付けて行ったら、結局テンプレートエンジンになるんじゃない?
>>810 お前らって本当にSmartyしか知らないんだな
あれって全然デザイナにわかりやすくなってないじゃん
あれ基準に語るな
ならデザイナーが容易に利用できるテンプレートエンジンを上げてから語れよ 調べて見つかったのがお前が言ってるのと同じとも限らないんだし
自分で例も出さずに使いづらいって何様だよw
何で知らない奴が偉そうに書き込んでんだよ 土下座したら教えてやってもいいはw
>>815 お前は何を言ってるんだ?
PHPもSmartyもソース書くレベルとしては一緒だろ?って話で、
反対意見は、デザイナーから見たら全く別物のテンプレートあんだよ、探せ
って言ってるののどこに使いづらいとか読めてんの?
で、例って何?ソースレベルで提示しろって言ってんの?あほかw
土下座するので、おすすめのテンプレートエンジン教えてください。 Smarty以外で。お願いします。
>>817 はいはい。言い訳は良いからお前が良いと思うテンプレートエンジン書けよ。
どうせ何か言っても批判されると思ってるんだろ?お前みたいな奴からw
821 :
nobodyさん :2012/11/21(水) 13:51:31.70 ID:qWxhErew
>>820 頭悪いの?「自分がおすすめするテンプレートエンジン書けよ」ってだけだろ。
なぜか
>>818 は無視してるし。
デザイナーから見たら全く別物のテンプレートエンジンねえ 制御構文なども皆無なのかな? 単に変数に値を流し込むだけ? もうそんなデザイナークビにしていい時代だろ
以前にもこんな流れあったな Smarty厨が出てきて騒いでた、内容は忘れたが
横だが、俺には
>>824 の言ってることがわからない
俺が見た感じ、
A派:
テンプレートエンジン=Smartyしか知らない、デザイナにもPHPの知識要求されると主張
B派:
テンプレートエンジンは他にもあって、ビューにPHPのコード書かなくても良くなると主張
この2派が喧嘩してるって事じゃないのか?
827 :
nobodyさん :2012/11/21(水) 18:06:37.46 ID:XVcRCAEI
cakephp2 使っているんですけどajax用のメソッドを定義する場合でも Viewファイルは用意しないとやはり駄目なのでしょうか? public function download() { if( $this->request->is( 'ajax' ) ) { echo "ajax transaction<br>"; } else { echo "not ajax transaction<br>"; } }
>>826 それでB派に、「ならオススメ教えてよ」って聞いてるのに
一向にオススメを言わないから「どうして?」ってなってるんだよ。
なぜここまでSmarty以外のテンプレートエンジン書かないか分からん。
ちなみに俺はテンプレートエンジンなんかイラねのC派ですw
態度が気に入らないからじゃないの
830 :
nobodyさん :2012/11/21(水) 18:48:57.07 ID:XVcRCAEI
画面上に【ダウンロード】ボタンを設けており、 それがクリックされると、AjaxにてcakePHP上のコントロールが呼び出され そのダウンロードが完了したら、それをユーザのローカルに保存させたいのですがどうすれば良いでしょうか? success: function( data, textStatus, jqXHR ) { var gotten_data = $.parseJSON( data ); ← ここまではOK //次にどういうコードを書けば xxx.csv としてファイルをユーザに保存させる事が出来るのか分かりません。 }
832 :
nobodyさん :2012/11/21(水) 19:05:33.59 ID:XVcRCAEI
>>831 JavaScriptで取得するところまでは出来ました。
JavaScriptスレに移動します。
前質問した奴と同じか?一体何がしたいんだw
ワロタ
なぜ2行目は全角にしているのか聞きたいw
>>832 サーバーサイド、クライアントサイドを意識して勉強する必要があると思うよ。
PHP(CakePHP)はサーバーサイドで、httpを利用してクライアントの要求を受けてhtml、css、javascriptコード等を返す
クライアント(ブラウザ)はhtmlを利用してDOMを構築し、javascriptコードに従ってDOM操作したりする
質問の意味がわからないので、もっと説明能力付けたらいいかもね どうしたらいいのかわからないけど
国語をしっかりやっておけばプログラミング能力は自ずとついてくるよ。 まずは小学校の国語の教科書を繰り返し音読するところから 始めたほうがいいんじゃないかな?
そもそもデザイナーにビューなんか作らせるな。 ビューを作るのはプログラマの仕事だろうが。 前提が間違ってんだよ馬鹿が。 デザイナーが作るのはあくまで純粋なHTMLで それをプログラマがビュー化するの。
↑ばか
>>839 純粋なHTMLに近いものが、そのままビューとして使えたら
便利だと思わないか
>>841 不可能だろ。どう考えても独自タグ埋め込むだろうが
PHP用の記述をHTMLのコメントとして埋め込むから、普通にHTMLとして作れるやり方があるよ 詳しくは忘れたからぐぐれ
だから、それも言い換えれば独自コードな分けだろ? そういう独自の仕様を覚える必要あるじゃん
>>839 そもそもPGにビューなんか作らせるな。
ビューを作るのはデザイナーの仕事だろうが。
前提が間違ってんだよ馬鹿が。
PGが作るのはあくまでビューに値を受け渡すロジックで
それをデザイナーが受け渡された値を含めてビュー化するの。
と改変しても全く違和感無いんですけどw
普通になるほど!と思って読んだら なんだネタかw
WebデザイナーならJavascript扱えるだろうからPHPなんて余裕だろ htmlしか書けない?ただのコーダーじゃねえか
Cakeでrssを出す方法がよくわからないんだけど いい解説サイト知らない? 特にrssのURLをいじりたい場合がわからない routes.phpに普通に書けばいいの?ちょっと試したら効かないみたいなんだけど
デザがjsを普通に遣えるレベルだとプログラマなんて要らないと思うのだが
JS使えるデザなんて見たことないは
jsとかphpとかに手を出したがるデザが多くて困る だからテンプレートエンジン導入して閉じ込めとくのはアリ
ビューにごちゃごちゃコード書いてると、デザが何かいじった際にぶっ壊してくれることはよくある
なんで奴ら<?php } ?>を勝手に消すん それがないと動かなくなんだよ!
855 :
nobodyさん :2012/11/22(木) 12:29:46.62 ID:HdPktOip
endif; endforeach; endfor; のがましかな
どう書いたってぶっ壊される時はぶっ壊される 奴らPHPわかんないんだもん
>>849 キーワード
php cakeresponse rss
あ、キーワード間違えた cakephp cakeresponse rss
DW使ってるとPHPのコードは色づけされるんだけどなぁ
拡張子がctpだとしてくれないとか?
ビューをデザイナーなんかにいじらせるから壊されんだよ。 ということは、バージョン管理ツール使わせるわけだから eclipseとかも使わせるのか? その上Smartyとか覚えさせられて大変だなw
じゃあ誰がビューをいじればいいの? プログラム関係ない蔵からの文言修正やレイアウト変更依頼に プログラマがいちいち対応すんの?
デザイナーとプログラマーの間にもう一つ職種が必要なんじゃね?
有料のテーマを買って、それを元にビュー作ったんだけど、 この作業って結構知識いるし作業量もハンパない。 何かの片手間で出来るものじゃないわ
かと言って別の人間が間に入るとよりコミュニケーションに齟齬がでそう
それこそコーダーって職業じゃないのか?
そうだけど、別にデザイナーのスキルは必要じゃない デザイナーはとにかく良いUIを作ることにのみ専念してくれればいい
何でビューごときに専門の人間が必要なんだよ。 そのくらいプログラマがやれよ。 ちょっとした文言変更も、レイアウト変更も プログラマがやるんだよ。数分でできるだろうが。
お前プログラマじゃないだろ、なんでここにいるんだよ できるできないの問題じゃない 数分でできることを全部プログラマにやらせてたら回らなくなるだろ
俺はプログラマだかデザイナーにはソースを触られたくないね。 ビューもプログラムソースだから。 そんな大切なソースを大した作業ではない 文言変更や そんなに頻繁に発生することのないレイアウト変更をやりたくないからという 職業怠慢な理由でデザイナーに解放しちゃうなんてどうかしてるぜ。 お前こそ本当にデザイナーか?
×お前こそ本当にデザイナーか? ●お前こそ本当にプログラマか?
怠慢じゃなくて、プログラマはプログラムを書くことにリソース割かないと、プロジェクトが滞るだろ 仕事したことのないお子様か?
876 :
nobodyさん :2012/11/22(木) 15:58:50.80 ID:zHRu897d
仕事ではC#使うけど 趣味サイトではPHP一択だな。
プログラマ様が全部やれば解決するお でもそうなっても技術のグラデーションの中で貶め合って憎しみ合い続けるお^^
そうなんだよ、中途半端に仕事の範囲を増やすと後で収集がつかなくなる それはプログラマ、デザイナどちらの立場からしても言えること。 でもそうすると、両者を取り持つ仕事というならプロマネがやることになるのか それはそれで笑えるなw
実際の仕事場では、手のあいてる方がやることになるな 技術系の会社だと、プログラマは大抵常に忙しいから、なるべく雑用やらせたくはない
お前らマジでビューをデザイナーに解放してるの?ネタだろ? うーん。やっぱPHPerってレベル低いのかなぁ。
そこでなんで「俺っちはPHPなんて程度の低い言語使いませんから^^」 って主張をはじめちゃったの???
プログラム、デザイン、どっちかしかやらない、できない、なんて人間は既に仕事干されてるだろうからどうでもよくね?
で、
>>873 はほぼ感情論でしか物事を語ってないけど、本当にプログラマーか?
よくわからん新たな論点を持ち出してきたり、感覚で喋ってるのは、どうみてもデザイナー側の人間に見えるんだが。
PHP関係ないじゃん。その理屈で言えば他の言語の例えばJavaやらFlashやらならデザイナーとプログラマーで
納品物の管理が完全に分離できるのか?
というか、なんでお前このスレにいんのw?
883 :
nobodyさん :2012/11/22(木) 19:27:33.06 ID:zHRu897d
ちょっとお前らに質問です。 画面上のダウンロードボタンを押すと、Ajaxでサーバ再度のControllerが呼ばれて www/hoge-directory/jiojoijiajsdwfijjasdfajsdfiwerfjai/hoge.csv という風に ハッシュで生成したディレクトリ + ファイル名 をPHP側で生成して JavaScriptをつかって、WEBページ内にリンクを作成しています。 この時、基本認証とか何も無くリンクを貼っているのですが(ハッシュ値) を当てられる確率が低いからと、、、、 然程クリティカルなデータではないのですが この状態だsと不味いでしょうか?
PHP使わないなんて何処にも書いてないのにね。 プログラマーだって書いてるのにね。 脳内変換しまくりw 感情で書いてるのお前じゃん。 例えビューであってもデザイナーにソースを渡しちゃうような奴は エンジニア失格だよ。 デザイナーにPHPのコード消されたとか嘆いてんなよ。 ソースを渡したお前が悪い。
大して重要なデータじゃなけりゃいいんじゃない? 気になるならcookieのユニークな値も チェックできるようにすればいいんじゃないの?
887 :
nobodyさん :2012/11/22(木) 19:58:12.39 ID:zHRu897d
>>884 死ね
>>886 あー成るほど!!いいアイデアですね!!
ダウンロードボタンを押したタイミングでそのハッシュ値をcookieにセットし
それを持ってるユーザのみ、そのcookieにセットしたハッシュを使用してファイルにアクセス可能にしてしまえばいいですね!!
ロクなの来ないなこのスレ
ロックな奴ばかりが来るよ
論破されたら「ロクな奴来ない」とか。
論破って? マジ話通じねえな
たまに開いて「みんな病んでんなー」と確認して閉じるスレ
ていうか、荒らされてるんじゃね? 荒らしはCake関係ない話しかしないし でも何でこのスレなんだろ、まあ荒らしでも来ないと過疎るけど
>>882 君プログラミングもデザインも両方できるの?すごいねぇ。マジで。
でも両方できないと仕事ができないとかなんでそんな考えに至ったの?
普通エンジニアはデザインとかやらないんだが。
HTMLやCSSを多少触ることはあるがあくまでも微調整だし。
小さい制作会社とかだとそうなのか?
>>894 こいつあれだわ、大きな会社に時々いる、
外の情報を吸収しないで頭カチコチのエンジニアだ
ずっとウォーターフォールで同じ仕事こなしてるだけなんだろ?
まあ意味のない論争はやめて、Cakeの話をしようぜ
896 :
nobodyさん :2012/11/22(木) 23:09:31.89 ID:zHRu897d
深夜に2chでcakeの話してるやつらって・・・ 友達いないんだろうな。
とにかくAjax質問君も感情論でプログラマに押しつけ君も、もう来ないでくれ ここはCakeスレだ
>>895 否定しないところをみると図星か。
大きい会社=ウォーターフォール&最新の技術を知ろうとしないとか
凄い妄想するねぇw
ところで君CakePHP使ってるから自分は最先端の技術者だとでも思ってるのか?
少しは外の世界を見てみろよ。
お前なんか箸にも棒にもかからないただの雑魚プログラマだから。
連休前なのにお前らといったら(;_;)
テンプレートエンジンガー ビューはプログラマーガー デザイナーはデザイン以外の知識や作業は全く必要ないんジャー 俺が作ったプログラムのソースは誰にも触らせないんジャー は全部同一人物だろ?こんなスレでこんなんが複数人もいるとか思えん。 ajax君含めてくだ質から出てくるなよな? ここはCakeスレだ、スレタイを100万回読み直して理解しろ。 それでも書き込みなら周りに迷惑だからコテつけて周りがあぼーんできるようにしとけ。
連休前だから何なんだ
CakePHP始めて三日目、なんとかなりそうな感じ。 最近PHP書き始めて本にあったPEARとSmartyへと進む予定だったけど フレームワークを調べて検討した結果、CakePHPを選ぶことになりました。 ドキュメント読み漁って昨夜のControllerから別のModelを扱う辺りが山場だった。 インストールでローカルとリモート環境を揃えるのも今思えばいい思い出。 これまで書いた分を乗せ換えて開発を続けます。 CakePHPは面白い。
ChirashiNoUragamiPluginでも開発してみればいいと思うよ
Rubyを勉強せずにRailsを勉強したくてCake使ってたけどどうしてもエレガントさに欠けるところが納得できなかった。 というわけでYiiの方に旅立ちます。 短い間でしたがお世話になりました。
Yii行くくらいならFuelPHPにした方がいいのに
Rubyを勉強せずにRailsを勉強したくてCake使おうとしたことが そもそもエレガントじゃない件
未だにCake使ってる奴に言われたくねぇw
あーうん RailsがRubyのフレームワークってことも理解できず、 何故かPHPで学ぼうとする馬鹿は、何の言語使っても一緒じゃないかな
とりあえず他の言語の話題出して無理矢理煽るのは止めてくれ
>RailsがRubyのフレームワークってことも理解できず、 >何故かPHPで学ぼうとする馬鹿 PHPにRailsをパクったフレームワークがCakeあって、 自分はPHPを知っててRubyは知らない という前提があるんだがそこまで書かないと分からないか。 アホは一から十まで説明しないと分からないから困るw
やべぇ
(Ruby知らないのにRails学んでどうするんだろう・・・・)
目的が一般庶民と逆みたいなので、あなたはフレームワークの研究家か なんか何でしょうが、Railsの勉強がしたいならRailsをやればいいのにと。
(旅立ったハズなのに舞い戻ってきてる…だと…)
Cake2.xでrssがどうしてもうまく出せない 公式のチュートリアルも駄目だしぐぐっても駄目だし、誰か動くコードの例を教えて
甘えるなボケ 外注なげろ
つーかCakeのコンポーネントが糞なんだろこれ 自分で組むからいいわもう、時間の無駄
>>916 え?どこで躓いてるの?
やったことと結果と期待してるものをそれぞれ書いてみなよ
まさかヘッダの送出で躓いてんのか?
理由がわかってなんとか動くようにできた itemのguidを省略すると、Cakeが勝手にURLか何か付けて、それがユニークじゃないから RSSリーダー側で表示がおかしくなってたみたいだ guidは必須ではなく付けるならユニークでなくてはならないのに、Cakeがそれを無視してる
Cake2の情報の少なさはどうにかならんの 1.2>1.3>2.x みたいになってる 衰退してんの?
新参が減ったからだろ普通は英語ドキュメント読めば事足りるし
素のPHPプログラミングで出来て、CakePHPで出来ない事ってありますか?
パフォーマンス抜きで語るなら無いよ
あとついでに言うと、CakePHPでできて素のPHPで出来ないこともない
そりゃそうだw
Cakeはフレームワークとしては使えなくはないんだけど、コンポーネントが糞 AuthとかRSSとか、使えたら便利なのに試すと駄目だから自分で作る羽目になる 最初から自分で作らないと時間を無駄にする
糞だと思うなら改善策をチケット切って提案したらいい。 誰もお前の為にオープンソースの開発してるんじゃないんだからな。 何でもかんでもタダで手に入ると思うなよ乞食。
cake2.1でcookie使おうとしてるんですが、 beforeFilter()で $this->Cookie->name = 'hogecookie'; $this->Cookie->time = '1 day'; を設定してから action内で $this->Cookie->write('hoge.name', 'ほげほげ'); $this->Cookie->write('hoge.address', 'もげもげ'); $this->Cookie->write('hoge.tel', 'ぽげぽげ'); と書くと、最初のhoge.nameだけは期待通りにlifetimeが1dayのcookieになってくれるのですが、 残りの2つがlifetimeがsession扱いになってしまい、ブラウザ閉じると消えてしまいます。 $this->Cookie->write('hoge.address', 'もげもげ', false, '1 day'); みたくいちいちwrite内にlifetime書くとちゃんと動いてくれるのですが、なんか気持ち悪いです。 なんでこーなるのかどなたかわかりますか?
自己結合がうまくいかない
日付のバリデーションで、あるカラムの日付が別カラムの日付よりも前(後)の日時である というバリデーションは、どう書けば良いのでしょうか?
>>932 何をやってみてどうダメだったか書いて。
普通にいけるはずだけど?
>>933 そもそも書き方がわかりません
どこかに載ってますか?
はい。帰れ
cake関係ないじゃんw
そもそもなんで公式のドキュメントに、バリデーションの説明がないのでしょうか? ぐぐるとどこかの個人が書いた古い情報ばかりが引っかかります
2.xドキュメントにバリデーションの説明あるけど、昔の版に比べたらずいぶんドライな書き方になったよね やっぱりみんなドキュメントよりソースを頼りに機能の理解をするから最低限の情報しか載せないようになっているんじゃないかな
何度探してもなくて、再び質問しようとして ふと思い付いて、英語で探したらあった… Cakeのドキュメントは、日本語で見ちゃいけなかったんですね、はぁ
<?php // app/Controller/FriendsController.php class FriendsController extends AppController { public function index() { $options = array( 'conditions' => array( 'Friend.first_name' => 'Andy', 'Friend.id <' => 2000 ), 'order' => array('Friend.first_name ASC'), 'limit' => 10 ); $data = $this->Friend->find('all',$options); } } という場合、 SELECT `Friend`.`id`, `Friend`.`first_name`, `Friend`.`last_name` FROM `friends` AS `Friend` WHERE `Friend`.`first_name` = 'Andy' AND `Friend`.`id` < 2000 ORDER BY `Friend`.`first_name` ASC LIMIT 10 というようなクエリが出力されます。 ここで、 `Friend`.`id` などで使われている、「ドット」にはどのような意味があるのでしょうか? SELECT id, first_name, last_name というクエリの時とどう違うのでしょうか?
おまいらはなんで本当に無関係な疑問をこのスレに持ち込むかな。
>>940 それはSQLの文法調べれば基礎的な部分でわかる。
Cake使う前にPHPやらSQLやら基礎から勉強し直してこい。
でもお前らってCakeの質問しても答えてくれないじゃん どうせ答える気がないのなら偉そうにするな
>>941 すいません。スレ違いとも思ったのですが、CakePHP独特なものかなと思いまして…
>>942 スレに関係ない話題を持ち込む理由にはならんよな?
まともな返しも出来ないんなら書き込むなw
>>944 話そらすなボケ
どうせ答えるスキルもないんだろ?なんでこのスレ来てんの?
Cakeに関係ある質問→スルー Cakeに関係ない質問→Cake関係ないじゃん なにこれ、こうしろよ Cakeに関係ある質問→回答 Cakeに関係ない質問→スルー
これからフレームワーク使おうと思ってるけど fuelphpとcakeどっちにしようか迷ってるんだけど ここの住人がcake使ってる理由って何?
cakeしか使えないから
だからそれはなんでだよ
>>948 OSSの場合、ユーザーが多くてコミュニティが活発なことも重要だからね
いいFWだなと思っても開発止まっちゃったりするのはよくあるから
そう言う意味ではCakeは割と安心できるので使ってる
Cakeに関係ある質問→Cake関係ないじゃん Cakeに関係ない質問→Cake関係ないじゃん なにこれ、こうしろよ Cakeに関係ある質問→スルー Cakeに関係ない質問→スルー
>>952 言われないとわからない奴が居るじゃん。
JavascriptやMySQL(クエリ)の事について聞いてきたり
PHP自体の書き方について聞いてきたりさ。
そういうのクリアした上で、Cakeの使い方なら分かるけど
基礎すら出来ずにフレームワーク使って
出来ない・わからないって言うだけじゃん。それは教えてもらえないよ
やっぱり誰もタダでは教えてくれないよね やっぱり答えたら500円もらえるようなシステム誰かつくってよ
あんだろ
昔はぐぐって解決してたけど最近ぐぐってもゴミみたいなノイズばかりでめんどくさいから まず2chで聞くようになってしまった
>>945 本日のお前が言うなスレはここですかw真性のアスペでワロタw
>>948 今までやってきた流れってのも多いだろ
日本でのコミュニティの大きさは圧倒的にCakeのほうが大きいけど、
本体自体も大きくなってるからそれだけ学習コストも大きいかもしれない。
今のところFuelは小さめなんで、自力で解決できる確率が高そう。
めちゃ感覚的な表現だが、今のところは学習コストはCakeの数分の一程度だと思う。
ソースコードを片っ端から読破して一つのFWを完全に自分のものにしたいっていうなら
FuelかYiiがいいと思う。
ただ、今後流行っていけばおそらくCakeと同じように大きくなっていく事は間違いない。
その時に今のうちから勉強していけばスムースについていける。
その反面、流行らずにポシャったら元の木阿弥。Cakeやっとけばよかったってことになりかねない。
960 :
nobodyさん :2012/11/30(金) 14:23:26.70 ID:hpRrtS/a
スムース smooth スムーズ な。英語を勉強しろ。
Cakeが日本でコミュニティ大きいって感じがまったくしないんだけど 日本のCake使いはどこにいるの? 公式フォーラムっぽいところも過疎ってたし
この板で判断しろ
じゃぁ、どこが大きいの?
そりゃ最大って言ったらあそこだろ 言わなくてもわかるよな?
965 :
nobodyさん :2012/11/30(金) 15:25:48.97 ID:hpRrtS/a
マックスちんぽ
findを使って240ほど出力してたけど、項目増やすとAllowed memory sizeがではじめた findの出力なんてテキストだしphp.iniのmemory_limit = 128Mを超えるとは思えないのに memory_limit = -1にするとエラーは出なくなる XAMPP上ではいいけどレンタルサーバーでは動かないだろうなぁ
>>966 単純にfind実行して結果返すmethodだけでそれが出るってこと?
もし違うなら他の(引っ張ってきたデータを加工してる)部分で余計にメモリ使ってたりしない?
実際のfind結果のデータ量を量ればfindでオーバーヘッド部分があるのかわかるかもね。
>>967 他の処理を切ってみたんだけど200は動くけど240は動かない
まったく違うとこでメモリ食ってたりするのかな、もう少し試してみます
970 :
966 :2012/12/01(土) 04:45:41.87 ID:???
>>969 memory_get_usage使ってみました。(稼働する範囲で収集)
2444632 ソースの頭
3657368 ピーク時
リンクの一番下に英語でint(6041952) -> about 6MB
とあるので、2.4MBから3.6MB程度だと思われます。
何か原因があるのかもしれないのでまた報告します。
971 :
966 :2012/12/01(土) 10:41:24.04 ID:???
memory周りのエラーは、処理を切った空配列のunsetしてたのが原因ぽいです。 それよりタイムアウト(30sec)が連発しているのでquery直書きで実行すると 一瞬で終わる、その後結果をCakeが返してくれるのですが(これも瞬時) $this->set('datas',$datas); これがメチャ重い、定番のViewへの渡し方だけどマズいのかな。
なんとw Cake一体どうなってんだ、続報期待
973 :
966 :2012/12/01(土) 11:20:49.04 ID:???
なんとw いじってたら上の処理が軽くなった(原因不明)、朝からお騒がせしました。
baserCMS(ver2.0.5.1)絡みはここでいいのかな? フォーラムにバグというか、キャッシュ絡みの更新反映がされない問題について、 ひとつ、気付いた点書こうと思ったんだが・・・割り当てしてるidのキャッシュ消えてねーよって。 回避策として、id割り当てしてあるやつは、idの名前も変えれば、きちんと適用される。 フォーラム登録してログインしようとしてもログインできねーし、メールで認証あるのか?と、 すぐに来ておかしくないものが全く来ない・・・よくみるとgoogleアカウントでログイン・・・ たらい回しされた感じで嫌になったわ・・・
>>974 言い訳無いだろ。baserCMSの提供先にサポートして貰えよ
そもそもよくわからんCMS使ってんじゃねーよ
Dataて複数形だからな。datas…
ホントだw
>>974 あ、違った。テンプレートテーマで固定されているだけだった。
プレビューと表示画面で表示の違いがでてプレビュー役に立たないとかあるけど。
CakeのInflectorがdataの複数形としてdatasを返してしまうんだがな。 dataの単数形はdatumであるが、 dataがdatumの複数形であるとは定まっていない。 ややこしいが、dataという文字列に対してはdatumの複数形である可能性と、 dataという未知の言葉の単数形であるとの二重の解釈が可能になってる。
何言ってんのか分からんけどInflectorにdatumなげてもdataがかえらんってこと? そもそもdataとかdatumとかをInflectorに投げる必要があるシチュエーションがわからん
何が誰に?
>>982 いや別にdatasが良いとはいってない
単にCakeもそういう仕様にしてるってだけ。
Inflector::singular('data') は 'datum'が返る
で、
Inflector::pluralize('data') は本来なら 'data'が返るべきなのに 'datas'が返る
他にもnurfとかもおかしかった。
細かい事気にするならフレームワーク使うなよ
細かい事じゃないと思うけど
細かいじゃん。s付けるかどうかだろ? Cakeの仕様がdatasになってるならそれで良いじゃん。 別に名前を自分で変える事も出来るんだし。
正しいスペルを書いたらエラーで動かないってのはやめて欲しい 原因気付くのに時間がかかったりするんだよな
日本人の俺から見たらInflectorの仕様が不自然な感じもするんだけど、 英語圏の人足りから特にクレームが来ていないことを見ると それなりに合理的なのかな?
レンタルサーバーのcronでController(表示付き)を直に呼んでも良いのか、 丁寧にController内部から処理を切り出して、素のphpを呼んだほうが良いのでしょうか?
Inflectorに日本語を渡してみたい衝動に駆られた 関係ないけどたまに日本語の複数形のテーブル名あるよね、houkokusとか
>>991 cakephp shellで検索してみ
>>992 最初はダサっ、とか思ってたけど自然に受け止めることができるようになった社会人3年目の春
cyuumons kokyakus syouhins
これらには敵うまい(実話) rekoodos teeburus
全然おもしろくないよ?
NetBeansのCakePHPプラグインを有効化したら起動しなくなった(泣
1000 :
nobodyさん :2012/12/04(火) 13:10:08.23 ID:ExCLhBiP
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。