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

    私的良スレ書庫

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

    元スレ【PHP】フレームワーク CakePHP 11ホール目【v1.3】

    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
    152 : nobodyさん - 2011/02/23(水) 18:18:28.09 ID:??? (+27,+29,-39)
    HTMLが分かるほうのデザイナーなら、
    囲い文字がどっちでも一緒だと思うけどね。
    まぁ確かに<?php echoはちょっとめんどくさいけど。
    でもSmartyはオワコン感が強いな俺の中で。
    153 : nobodyさん - 2011/02/23(水) 21:46:12.22 ID:??? (+27,+29,-35)
    えっwww

    Smarty使わないって仕事でCakePHPを使ってない人ですよね?www
    154 : nobodyさん - 2011/02/23(水) 22:15:58.50 ID:??? (-17,-5,-2)
    155 : nobodyさん - 2011/02/23(水) 23:02:33.16 ID:??? (+27,+29,-50)
    何年も繰り返し議論し尽くされてきたが、
    PHP自体が所謂テンプレート言語の類なのに、
    その上にテンプレートエンジン構築してどうする
    156 : nobodyさん - 2011/02/23(水) 23:19:25.45 ID:??? (+32,+29,-73)
    デザイナーがsmartyを使いたいと言ったら使わざるを得ない状況もある
    というのも繰り返し言われてきた

    俺もテンプレートエンジン不要派だけど、必要だという人がいるのなら使うのもしょうがないんじゃないかなー
    157 : nobodyさん - 2011/02/24(木) 13:43:09.42 ID:??? (+27,+29,-17)
    PHPのコード見るだけで逃げ出すデザイナもいるからな
    あとデザイナにPHPのコード壊されたりもしたから、基本いじらせたくないな。
    158 : nobodyさん - 2011/02/24(木) 14:52:21.15 ID:??? (+33,+30,-128)
    そんなデザイナーは廃業してもらうしか・・・
    今日日サーバーサイドに何らかのプログラムが絡む案件なんて珍しくないし、
    phpに理解が無くても、HTML構造の特定のまとまりを崩さなければ、
    phpコードを崩す事なんてそうそうないわけで。
    それを崩しちゃう人って、
    もうHTMLレベルで平気で閉じの無いタグを量産する可能性があるって事だろ。
    webデザイナーとしてそれってどうなの?
    159 : nobodyさん - 2011/02/24(木) 15:24:05.68 ID:??? (+27,+29,-31)
    wordpressやMTのテンプレートなんかを作れる程度の知識はあっても
    cakeの場合はcakeの動きを知らなきゃviewを作るのは難しいと思うよ。
    160 : nobodyさん - 2011/02/24(木) 17:03:24.16 ID:??? (-29,-30,+0)
    下記をもっとスマートにコーディングするとしたら、どんな風になるのでしょうか?

    function verify($urlparam = null) {

    $data = $this->Regurl->findAllByRandomUrl($urlparam);
    if (!$data) {
    $this->flash('Invalid URL!!','index');
    }else{
    if ($data[0]['User']['activated'] == 0) {
    //print_r($this->data);
    $this->User->id = $data[0]['Regurl']['user_id'];
    $this->User->saveField('activated', 1);

    $this->flash('Now activated!!','index');

    }elseif($data[0]['User']['activated'] == 1){
    $this->flash('Already activated!!','index');
    }
    }

    }



    コントローラUserから、外部モデルRegurlの中のrandom_urlフィールドと照合して、
    一致するものがあればアソシエーション先のUserテーブルのactivatedフィールド(フラグ)を
    1へ書きかえる処理です。

    UserモデルではRegurlのuser_idに対しhasOneで、RegurlモデルではUserのidに対してbelongsToで
    アソシエーションを設定してあります。

    161 : nobodyさん - 2011/02/24(木) 18:06:12.76 ID:??? (-25,-30,-77)
    >>160
    まあこの程度ならどっちでもいいって言えばどっちでもいいけど、
    randomurlのチェックやらsaveFieldなんかの処理は
    モデルに書くとすっきりすると思うのねん。

    コントローラーは
    if($this->User->checkRandomUrl()){
     $this->User->activate();
     $this->Session->setFlash('どったらこったら', true));
    }else{
    ....
    }

    こんな感じで何やってるかわかりやすくなるっしょ。
    162 : nobodyさん - 2011/02/24(木) 18:18:50.60 ID:??? (+32,+29,-5)
    ビューの中で表示の分岐処理ってやらないほうがいいよね?
    163 : nobodyさん - 2011/02/24(木) 18:26:50.80 ID:??? (+32,+29,-5)
    >>162
    ifメンバーだったらここになになにを表示とか普通にやってるけどダメなの?
    164 : nobodyさん - 2011/02/24(木) 18:35:27.29 ID:??? (+28,+29,-18)
    >>161
    ありがとうございます。
    コントローラ内でするとしたら
    どういう書き方がスマートになりますでしょうか?
    165 : nobodyさん - 2011/02/24(木) 19:49:49.23 ID:??? (+35,+28,-4)
    >>164
    コントローラーに書くこと自体がスマートじゃない
    166 : nobodyさん - 2011/02/24(木) 22:04:42.87 ID:??? (-27,-30,-125)
    Ktai Libraryで、振り分けをしたいんですが
    1.3で、bootstrap.php内に

    App::import('Vendor', 'ecw/Lib3gkCarrier');
    $carrier = Lib3gkCarrier::get_instance();

    if($carrier->is_ktai()) {
    App::build(array(
    'views' => array(ROOT . DS . APP_DIR . DS . 'views' . DS . 'm' . DS)
    ));
    }

    って記載したのですが、振り分け出来ないです。
    他にすることってあるんですか?
    167 : nobodyさん - 2011/02/24(木) 22:42:35.95 ID:??? (+35,+29,-77)
    >>165
    モデルにコーディングするしたら、どのように書けばスマートかを、コントローラへの記述とのセットで見せていただければ幸いです。

    初心者ながらに試行錯誤して最終的に出来たの結果が、あのコードでした。
    経験豊富の方のコーディングの仕方を見てみたいです。

    168 : nobodyさん - 2011/02/25(金) 03:38:33.94 ID:??? (-23,-30,-262)
    >>167
    経験豊富じゃないけど、
    ロジックはモデルに書けるならモデルに書くべきってだけなんだよね。
    そのままモデルに持っていけば良いと思うんだ。
    以下つっこみどころ豊富なコード。動かして無いから間違いはたぶんある。

    UserModel extends AppModel{
    function activate($url){
    $data = $this->Regurl->findByRandomUrl($url);
    if(empty($data))
    return false;
    if($data['User']['activated'])
    return 'already';
    $this->id = $data['User']['id'];
    $this->saveField('activated', 1);
    return 'activated';
    }
    }
    SomeController extends AppController{
    function index(){
    if(!$result = $this->User->activate($this->data['url'])) {
    $this->Session->setFlash('Invalid URL!!','index');
    return;
    if($result === 'activated'){
    $this->Session->setFlash('Now activated!!','index');
    return;
    }
    if($result === 'already'){
    $this->Session->setFlash('Already activated!!','index');
    }
    }
    }
    169 : nobodyさん - 2011/02/25(金) 10:26:28.95 ID:??? (-27,-30,+0)
    シンタックスなど各種色々エラーが出たので素人ながら手直しさせていただきました。下記で大丈夫ですか?もっとスマートなコードになればいいのいですが・・・
    ---MODEL-------------------------------------------------------
    Class RegurlModel extends AppModel{
    var $name = 'Regurl';
    function activate($url){
    $data = $this->Regurl->findByRandomUrl($url);
    if(empty($data)){
    return false;
    }
    if($data['User']['activated']==1){
    return 'already';
    }else {
    $this->id = $data['User']['id'];
    $this->saveField('activated', 1);
    return 'activated';
    }
    }
    }
    ---CONTROLLER------------------------------------------------
    Class UsersController extends AppController{
    function index($this->data['url'] == null){
    if(!$result = $this->User->activate($this->data['url'])) {
    $this->Session->setFlash('Invalid URL!!','index');
    }
    elseif($result === 'activated'){
    $this->Session->setFlash('Now activated!!','index');
    }
    else($result === 'already'){
    $this->Session->setFlash('Already activated!!','index');
    }
    $this->Session->setFlash('Invalid URL!!','index');
    }
    170 : nobodyさん - 2011/02/25(金) 14:11:48.82 ID:??? (-26,-29,-6)
    function index($this->data['url'] == null){

    これが気になったんだけど、何でこんな事してるの?
    173 : nobodyさん - 2011/02/25(金) 14:57:37.07 ID:??? (+23,+29,-28)
    >>170
    ああ、モデルに移したやつには余計だったね。
    このコードが何のコードか、いまいちよく分かってなかったから、
    そのまま書いちゃったよ
    174 : nobodyさん - 2011/02/25(金) 15:21:25.48 ID:??? (-28,-30,-200)
    >>173
    あれ?と思ったら>>168ではちゃんと消してるじゃないか。

    >>169
    コントローラーのアクションの引数を使って、パラメーターを受け取る方法もあるけど、
    あんまり使わないんじゃないかな。

    function index($this->data['url'] == null){
    というか、これは動くの?メソッドの引数に$thisが入ってるなんて初めてみるんだけど。

    なんかめんどくさくなってきたから、もうコントローラに書いたら良いんじゃないか?
    何の実装かがわからないと、スマートになんてかけない気がしてきた。
    beforeValidate()やbefore/afterSave()とか使ったほうがスマートになりそうな雰囲気あるけど、
    詳細わからんとねぇ。

    とりあえず引数に書くよりif(!empty($this->data['url']))しといたほうが良いんじゃないか。
    175 : nobodyさん - 2011/02/25(金) 15:42:56.64 ID:??? (-27,-30,-27)
    わからない場合は、少々複雑でも単純に書けば良いんだよ。

    function index(){
    $url = isset($this->data['url']) ? $this->data['url'] : null;

    にすればいいじゃないか。
    178 : nobodyさん - 2011/02/25(金) 16:33:34.12 ID:??? (+15,+27,-1)
    ハゲは甘え
    179 : nobodyさん - 2011/02/25(金) 16:46:01.81 ID:??? (+18,+29,-44)
    >>176
    そんなの、予算がなければNoだろ。
    GAEは最初はもなにも、かなり依存するつもりじゃないとつかえねぇよ。
    使ったら最後、追加予算無ければAmazon EC2への移行も出来ない。
    180 : nobodyさん - 2011/02/25(金) 17:35:37.03 ID:??? (+22,+29,-6)
    鯖台すら出せない奴にアプリ作るなよ・・・
    183 : nobodyさん - 2011/02/26(土) 17:45:41.68 ID:??? (-27,-30,-66)
    複数DBのトランザクションどうしてる?
    model の__cunstruct で ClassRegistry に登録されてるから
    その情報を元に関数で一気にbeginとcommitをしてるんだけど、、いいのかな?
    186 : nobodyさん - 2011/02/27(日) 00:25:16.65 ID:??? (+9,+11,-38)
    確かにモデルはエンティティオブジェクトじゃないな
    188 : nobodyさん - 2011/02/27(日) 15:12:11.70 ID:n/cFKC+5 (-23,-17,+0)
    >>187
    タグとか
    189 : nobodyさん - 2011/02/27(日) 15:47:05.19 ID:??? (+24,+29,-9)
    >>188
    どことどこを、どういうふうに繋ぐの?
    190 : nobodyさん - 2011/02/27(日) 15:55:26.24 ID:??? (+33,+29,-23)
    使うケースを無理して探して使わなくても良いと思うが。

    ユーザーが投稿した何かにつけるタグとか、
    ユーザーがグループに所属するとか、
    そういうのだろ。
    191 : nobodyさん - 2011/02/27(日) 16:01:26.01 ID:??? (+35,+29,-45)
    >>190
    ユーザーがグループに所属するは
    分かりやすい

    ユーザーテーブルから
    中間テーブルをまたいで
    向こうの所属しているグループのレコードを絞り込んでグループ名一覧とかを表示するとき

    とかに使うってこと?
    192 : nobodyさん - 2011/02/27(日) 17:31:22.17 ID:??? (-24,-30,-87)
    >>191
    実は単に1ユーザーが所属できるのが1グループだったら、HABTMじゃなくても良い。
    1ユーザーが複数のグループに所属できるようにする場合、HABTMになる。
    絞込みをしたいからHABTMというのはちょっと変で、hasManyだって絞込みする。
    HABTMはhasAndBelongsToManyと書くとおり、多対多の関係を作るためにある。
    確か、第4正規形だったかな?
    193 : nobodyさん - 2011/02/27(日) 17:35:40.03 ID:??? (-25,-30,-94)
    >>192
    例えば下記の3つのテーブルがあったとして

    users
    user_groups
    groups

    usersのコントローラで特定のユーザーが
    所属している全てのグループを表示する

    時とかにHABTMは使うんじゃないの?
    194 : nobodyさん - 2011/02/27(日) 17:46:10.12 ID:??? (+28,+29,-27)
    >>193
    その構成を扱うなら基本HABTMだろ。
    多対多だからな。
    まぁ細かい事を言えば、そのテーブル構成でも複雑な事をしようとすると、
    HABTMじゃ力不足な場面はあるが。
    195 : nobodyさん - 2011/02/27(日) 18:26:20.02 ID:??? (+23,+28,-4)
    >>194
    複雑なことって例えば?
    196 : nobodyさん - 2011/02/27(日) 18:28:28.88 ID:??? (+38,+30,-71)
    一緒にサイトを立ち上げたい!協力して一緒に作り上げようと言って

    インターフェースやデザインの部分だけにしか携わらないパートナーがいる。
    (コーディング関係一切しない)

    そのパートナーとの取り分は
    何対何くらいが妥当?

    こっちはアルゴリズムから詳細設計まで全て受け持ってるんだが
    198 : nobodyさん - 2011/02/27(日) 18:31:26.94 ID:??? (+33,+29,-13)
    だってデザインのほうが気楽じゃん
    連動するところとか論理的思考とか
    必要ないしw
    199 : nobodyさん - 2011/02/27(日) 19:29:47.30 ID:??? (-26,-30,-121)
    >>195
    さっきのテーブル構成で行くと、user_groupsテーブルにはこの3つのカラムしか、
    実質作る事ができない。

    id,
    user_id
    group_id

    createdとかmodifiedを作っても、関係テーブルに限り
    日時は書き込まれないし、書き込んだとしても消える事になる。
    例えば、ユーザーAが既にaとb2つのグループに所属しているとして
    3つ目のcに所属するための処理をすると、
    一旦ユーザーAの関係テーブル上からユーザーAがaとbに所属というデータを削除し、
    改めてユーザーAがaとbとcに所属というデータを書き込む。
    という動きをする。
    なので複雑な事は例えば、関係テーブルに何か他のデータを合わせて置く。などだな
    200 : nobodyさん - 2011/02/27(日) 19:32:45.15 ID:??? (+21,+28,+0)
    なんだか難しいんだなw
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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