私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】フレームワーク CakePHP 11ホール目【v1.3】
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
HTMLが分かるほうのデザイナーなら、
囲い文字がどっちでも一緒だと思うけどね。
まぁ確かに<?php echoはちょっとめんどくさいけど。
でもSmartyはオワコン感が強いな俺の中で。
囲い文字がどっちでも一緒だと思うけどね。
まぁ確かに<?php echoはちょっとめんどくさいけど。
でもSmartyはオワコン感が強いな俺の中で。
えっwww
Smarty使わないって仕事でCakePHPを使ってない人ですよね?www
Smarty使わないって仕事でCakePHPを使ってない人ですよね?www
何年も繰り返し議論し尽くされてきたが、
PHP自体が所謂テンプレート言語の類なのに、
その上にテンプレートエンジン構築してどうする
PHP自体が所謂テンプレート言語の類なのに、
その上にテンプレートエンジン構築してどうする
デザイナーがsmartyを使いたいと言ったら使わざるを得ない状況もある
というのも繰り返し言われてきた
俺もテンプレートエンジン不要派だけど、必要だという人がいるのなら使うのもしょうがないんじゃないかなー
というのも繰り返し言われてきた
俺もテンプレートエンジン不要派だけど、必要だという人がいるのなら使うのもしょうがないんじゃないかなー
PHPのコード見るだけで逃げ出すデザイナもいるからな
あとデザイナにPHPのコード壊されたりもしたから、基本いじらせたくないな。
あとデザイナにPHPのコード壊されたりもしたから、基本いじらせたくないな。
そんなデザイナーは廃業してもらうしか・・・
今日日サーバーサイドに何らかのプログラムが絡む案件なんて珍しくないし、
phpに理解が無くても、HTML構造の特定のまとまりを崩さなければ、
phpコードを崩す事なんてそうそうないわけで。
それを崩しちゃう人って、
もうHTMLレベルで平気で閉じの無いタグを量産する可能性があるって事だろ。
webデザイナーとしてそれってどうなの?
今日日サーバーサイドに何らかのプログラムが絡む案件なんて珍しくないし、
phpに理解が無くても、HTML構造の特定のまとまりを崩さなければ、
phpコードを崩す事なんてそうそうないわけで。
それを崩しちゃう人って、
もうHTMLレベルで平気で閉じの無いタグを量産する可能性があるって事だろ。
webデザイナーとしてそれってどうなの?
wordpressやMTのテンプレートなんかを作れる程度の知識はあっても
cakeの場合はcakeの動きを知らなきゃviewを作るのは難しいと思うよ。
cakeの場合はcakeの動きを知らなきゃviewを作るのは難しいと思うよ。
下記をもっとスマートにコーディングするとしたら、どんな風になるのでしょうか?
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で
アソシエーションを設定してあります。
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で
アソシエーションを設定してあります。
>>160
まあこの程度ならどっちでもいいって言えばどっちでもいいけど、
randomurlのチェックやらsaveFieldなんかの処理は
モデルに書くとすっきりすると思うのねん。
コントローラーは
if($this->User->checkRandomUrl()){
$this->User->activate();
$this->Session->setFlash('どったらこったら', true));
}else{
....
}
こんな感じで何やってるかわかりやすくなるっしょ。
まあこの程度ならどっちでもいいって言えばどっちでもいいけど、
randomurlのチェックやらsaveFieldなんかの処理は
モデルに書くとすっきりすると思うのねん。
コントローラーは
if($this->User->checkRandomUrl()){
$this->User->activate();
$this->Session->setFlash('どったらこったら', true));
}else{
....
}
こんな感じで何やってるかわかりやすくなるっしょ。
>>162
ifメンバーだったらここになになにを表示とか普通にやってるけどダメなの?
ifメンバーだったらここになになにを表示とか普通にやってるけどダメなの?
>>164
コントローラーに書くこと自体がスマートじゃない
コントローラーに書くこと自体がスマートじゃない
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)
));
}
って記載したのですが、振り分け出来ないです。
他にすることってあるんですか?
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)
));
}
って記載したのですが、振り分け出来ないです。
他にすることってあるんですか?
>>165
モデルにコーディングするしたら、どのように書けばスマートかを、コントローラへの記述とのセットで見せていただければ幸いです。
初心者ながらに試行錯誤して最終的に出来たの結果が、あのコードでした。
経験豊富の方のコーディングの仕方を見てみたいです。
モデルにコーディングするしたら、どのように書けばスマートかを、コントローラへの記述とのセットで見せていただければ幸いです。
初心者ながらに試行錯誤して最終的に出来たの結果が、あのコードでした。
経験豊富の方のコーディングの仕方を見てみたいです。
>>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');
}
}
}
経験豊富じゃないけど、
ロジックはモデルに書けるならモデルに書くべきってだけなんだよね。
そのままモデルに持っていけば良いと思うんだ。
以下つっこみどころ豊富なコード。動かして無いから間違いはたぶんある。
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');
}
}
}
シンタックスなど各種色々エラーが出たので素人ながら手直しさせていただきました。下記で大丈夫ですか?もっとスマートなコードになればいいのいですが・・・
---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');
}
---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');
}
function index($this->data['url'] == null){
これが気になったんだけど、何でこんな事してるの?
これが気になったんだけど、何でこんな事してるの?
>>173
あれ?と思ったら>>168ではちゃんと消してるじゃないか。
>>169
コントローラーのアクションの引数を使って、パラメーターを受け取る方法もあるけど、
あんまり使わないんじゃないかな。
function index($this->data['url'] == null){
というか、これは動くの?メソッドの引数に$thisが入ってるなんて初めてみるんだけど。
なんかめんどくさくなってきたから、もうコントローラに書いたら良いんじゃないか?
何の実装かがわからないと、スマートになんてかけない気がしてきた。
beforeValidate()やbefore/afterSave()とか使ったほうがスマートになりそうな雰囲気あるけど、
詳細わからんとねぇ。
とりあえず引数に書くよりif(!empty($this->data['url']))しといたほうが良いんじゃないか。
あれ?と思ったら>>168ではちゃんと消してるじゃないか。
>>169
コントローラーのアクションの引数を使って、パラメーターを受け取る方法もあるけど、
あんまり使わないんじゃないかな。
function index($this->data['url'] == null){
というか、これは動くの?メソッドの引数に$thisが入ってるなんて初めてみるんだけど。
なんかめんどくさくなってきたから、もうコントローラに書いたら良いんじゃないか?
何の実装かがわからないと、スマートになんてかけない気がしてきた。
beforeValidate()やbefore/afterSave()とか使ったほうがスマートになりそうな雰囲気あるけど、
詳細わからんとねぇ。
とりあえず引数に書くよりif(!empty($this->data['url']))しといたほうが良いんじゃないか。
わからない場合は、少々複雑でも単純に書けば良いんだよ。
function index(){
$url = isset($this->data['url']) ? $this->data['url'] : null;
にすればいいじゃないか。
function index(){
$url = isset($this->data['url']) ? $this->data['url'] : null;
にすればいいじゃないか。
複数DBのトランザクションどうしてる?
model の__cunstruct で ClassRegistry に登録されてるから
その情報を元に関数で一気にbeginとcommitをしてるんだけど、、いいのかな?
model の__cunstruct で ClassRegistry に登録されてるから
その情報を元に関数で一気にbeginとcommitをしてるんだけど、、いいのかな?
>>187
タグとか
タグとか
>>188
どことどこを、どういうふうに繋ぐの?
どことどこを、どういうふうに繋ぐの?
使うケースを無理して探して使わなくても良いと思うが。
ユーザーが投稿した何かにつけるタグとか、
ユーザーがグループに所属するとか、
そういうのだろ。
ユーザーが投稿した何かにつけるタグとか、
ユーザーがグループに所属するとか、
そういうのだろ。
>>190
ユーザーがグループに所属するは
分かりやすい
ユーザーテーブルから
中間テーブルをまたいで
向こうの所属しているグループのレコードを絞り込んでグループ名一覧とかを表示するとき
とかに使うってこと?
ユーザーがグループに所属するは
分かりやすい
ユーザーテーブルから
中間テーブルをまたいで
向こうの所属しているグループのレコードを絞り込んでグループ名一覧とかを表示するとき
とかに使うってこと?
>>191
実は単に1ユーザーが所属できるのが1グループだったら、HABTMじゃなくても良い。
1ユーザーが複数のグループに所属できるようにする場合、HABTMになる。
絞込みをしたいからHABTMというのはちょっと変で、hasManyだって絞込みする。
HABTMはhasAndBelongsToManyと書くとおり、多対多の関係を作るためにある。
確か、第4正規形だったかな?
実は単に1ユーザーが所属できるのが1グループだったら、HABTMじゃなくても良い。
1ユーザーが複数のグループに所属できるようにする場合、HABTMになる。
絞込みをしたいからHABTMというのはちょっと変で、hasManyだって絞込みする。
HABTMはhasAndBelongsToManyと書くとおり、多対多の関係を作るためにある。
確か、第4正規形だったかな?
>>192
例えば下記の3つのテーブルがあったとして
users
user_groups
groups
usersのコントローラで特定のユーザーが
所属している全てのグループを表示する
時とかにHABTMは使うんじゃないの?
例えば下記の3つのテーブルがあったとして
users
user_groups
groups
usersのコントローラで特定のユーザーが
所属している全てのグループを表示する
時とかにHABTMは使うんじゃないの?
>>194
複雑なことって例えば?
複雑なことって例えば?
一緒にサイトを立ち上げたい!協力して一緒に作り上げようと言って
インターフェースやデザインの部分だけにしか携わらないパートナーがいる。
(コーディング関係一切しない)
そのパートナーとの取り分は
何対何くらいが妥当?
こっちはアルゴリズムから詳細設計まで全て受け持ってるんだが
インターフェースやデザインの部分だけにしか携わらないパートナーがいる。
(コーディング関係一切しない)
そのパートナーとの取り分は
何対何くらいが妥当?
こっちはアルゴリズムから詳細設計まで全て受け持ってるんだが
だってデザインのほうが気楽じゃん
連動するところとか論理的思考とか
必要ないしw
連動するところとか論理的思考とか
必要ないしw
>>195
さっきのテーブル構成で行くと、user_groupsテーブルにはこの3つのカラムしか、
実質作る事ができない。
id,
user_id
group_id
createdとかmodifiedを作っても、関係テーブルに限り
日時は書き込まれないし、書き込んだとしても消える事になる。
例えば、ユーザーAが既にaとb2つのグループに所属しているとして
3つ目のcに所属するための処理をすると、
一旦ユーザーAの関係テーブル上からユーザーAがaとbに所属というデータを削除し、
改めてユーザーAがaとbとcに所属というデータを書き込む。
という動きをする。
なので複雑な事は例えば、関係テーブルに何か他のデータを合わせて置く。などだな
さっきのテーブル構成で行くと、user_groupsテーブルにはこの3つのカラムしか、
実質作る事ができない。
id,
user_id
group_id
createdとかmodifiedを作っても、関係テーブルに限り
日時は書き込まれないし、書き込んだとしても消える事になる。
例えば、ユーザーAが既にaとb2つのグループに所属しているとして
3つ目のcに所属するための処理をすると、
一旦ユーザーAの関係テーブル上からユーザーAがaとbに所属というデータを削除し、
改めてユーザーAがaとbとcに所属というデータを書き込む。
という動きをする。
なので複雑な事は例えば、関係テーブルに何か他のデータを合わせて置く。などだな
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- 【PHP】フレームワーク CakePHP 10ホール目【v1.3】 (1001) - [98%] - 2011/2/13 8:32
- 【PHP】フレームワーク CakePHP 19ホール目【v3.3】 (844) - [96%] - 2023/2/2 14:30
- 【PHP】フレームワーク CakePHP 9ホール目【v1.3】 (1001) - [96%] - 2010/11/1 2:53
- 【PHP】フレームワーク CakePHP 17ホール目【v2.4】 (984) - [95%] - 2015/1/10 2:45
- 【PHP】フレームワーク CakePHP 14ホール目【v2.1】 (1001) - [95%] - 2012/12/3 19:16
- 【PHP】フレームワーク CakePHP 16ホール目【v2.4】 (1001) - [95%] - 2014/3/3 3:00
- 【PHP】フレームワーク CakePHP 15ホール目【v2.2】 (985) - [95%] - 2013/9/7 8:30
- 【PHP】フレームワーク CakePHP 13ホール目【v2.0】 (995) - [95%] - 2012/4/23 21:16 ○
- 【PHP】フレームワーク CakePHP 8ホール目【1.3】 (1001) - [95%] - 2010/7/22 22:16
- 【PHP】フレームワーク CakePHP 17ホール目【v3α】 (955) - [93%] - 2016/11/15 20:45
- 【PHP】フレームワーク CakePHP 7ホール目【v1.2】 (1001) - [92%] - 2010/3/18 1:18 ○
- 【PHP】フレームワーク CakePHP 5ホール目【v1.2】 (985) - [92%] - 2009/3/7 4:53 ☆
- 【PHP】フレームワーク CakePHP 4ホール目【v1.2】 (1001) - [92%] - 2008/12/19 21:06 ○
- 【PHP】フレームワーク CakePHP 6ホール目【v1.2】 (933) - [92%] - 2009/8/19 2:06 ○
- 【PHP】フレームワーク CakePHP 12ホール目【笑】 (1001) - [92%] - 2011/11/8 7:01
- 【PHP】フレームワーク CakePHP 3ホール目【本命】 (1001) - [84%] - 2008/6/19 7:19 ○
トップメニューへ / →のくす牧場書庫について