トップページ⇒php
1001コメント307KB

【PHP】フレームワーク CakePHP 16ホール目【v2.4】

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2013/09/09(月) 01:56:10.19ID:m9OPw/HT
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※他フレームワークとの比較等はスレ違いです

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
github - cakephp
http://github.com/cakephp
the Bakery
http://bakery.cakephp.org/
Issue
http://cakephp.lighthouseapp.com/dashboard
CheatSheet[1.2] (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
[2.x] http://book.cakephp.org/2.0/ja/index.html
[1.3] http://book.cakephp.org/ja

http://kohada.2ch.net/test/read.cgi/php/1354593996/l50
0002nobodyさん2013/09/09(月) 01:58:03.76ID:m9OPw/HT
無いので建てた
過去ログのタイトル記入漏れ

【PHP】フレームワーク CakePHP 15ホール目【v2.2】
http://kohada.2ch.net/test/read.cgi/php/1354593996/l50
0003nobodyさん2013/09/09(月) 16:35:03.60ID:???
テンプレが貼られるのを待たず質問。CakeDCって何ですか?
「CakeDCとは」でググったんですけど出てきませんでした。
CakeDCのユーザー認証は標準のユーザー認証機能より良いんですか?
CakeDCのデメリットはありませんか?
あと、「CakeDC」でググると一番最初に出てくるサイトは
「このサイトは危険にさらされている可能性があります。」
とか書いてありますけど大丈夫ですか?
0004nobodyさん2013/09/09(月) 17:07:58.33ID:???
>CakeDCって何ですか?

CakePHP のコアデベロッパーが多数在籍してるSIer
CEOがCakePHPの元開発リーダー
以前ほどは CakePHP の開発における依存度は高く無いとはいえ、影響力は絶大。
Github のリポジトリで公開しているプラグインはどれも有名で多くのユーザーが使ってる模様。


>CakeDCのユーザー認証は標準のユーザー認証機能より良いんですか?

Usersプラグインのことでしょうか?
だとすると、CakePHP の機能を置き換えるものじゃなくて、
補完および隠蔽して使いやすくしているのだとおもう。


>CakeDCのデメリットはありませんか?

ネットの評判を見る限り、特に致命的な欠陥はないでしょう。
実際には実装に応じて要求が異なるので何がデメリットになるのかは場合により異なる。
CakeDCに限らないが、どのプラグインを使うにしてもひと通りソースを読めないと安心して運用するのは厳しいと思うよ。

WordPress みたいな気軽な感覚(それも問題あるけど)で
初見のプラグインをホイホイ放り込んですんなり使えるとは思わない方がいい。
0005nobodyさん2013/09/09(月) 17:12:55.63ID:???
>あと、「CakeDC」でググると一番最初に出てくるサイトは

ググったトップがどれのことか分からんが、
http://www.cakedc.com/
ならそんなエラー俺の環境じゃ出てこなかったけどな。
0006nobodyさん2013/09/09(月) 23:06:57.23ID:???
>>4-5
ご丁寧なレス頂き本当にありがとうございます。
Usersプラグインのことです。
>初見のプラグインをホイホイ放り込んですんなり使えるとは思わない方がいい。
と言うのは肝に銘じます。

>>5に関しては日本語でググってしまったので
「プラグイン/CakeDC/users - CakePHP2 Memo」
と言うページがトップに来ました。
URLは念のためあえて貼りません。
0007nobodyさん2013/09/10(火) 00:28:29.95ID:???
Usersプラグインは、プラグインとは名ばかりのサンプル実装と考えたほうがいいよ。
サンプルといっても、微妙なつくりになってるところもあるから、
使えるところだけ参考にしながら別途書くのがいい
0008nobodyさん2013/09/10(火) 22:27:53.62ID:???
cakephp2を触り始めて日記を作ったのですが
URLを直で .../delete/1 などとすると
An Internal Error Has Occurred.というエラーがでて削除はされないのですが

自分でhtmlファイルを作り そこにポストでボタンを作成し日記のデリートURLに飛ばすと普通に削除できてしまいます

これは自分のコントローラーが悪いのかどこか書き方が間違っているのでしょうか?
0009nobodyさん2013/09/11(水) 00:00:08.07ID:???
山ほど可能性があるのでそれじゃ情報少なすぎる。

まずそのエラーが出てるってことはデバグの出力を抑制してるんじゃない?
質問する場合は必ず Configure で debug の値を 2 にしておく。
それだけで解決することも多い。
で分からなければ、出た文面をそのまま貼り付ける。

ただ文面から推測すると、bake したコントローラをそのまま使ってるっぽいが、違う?
0010nobodyさん2013/09/11(水) 00:06:48.10ID:???
いや、debug 値は関係無さそうだな。
bake ファイルなら例外を投げるからそれでもなさそうだな。
いったいどんなコード書いてるんだ?
Controller のメソッド貼り付けて見たら?
001182013/09/11(水) 00:23:34.10ID:???
ちょっと自分でもわからず書いていますのでわかりにくかったらすいません。

普通に作ったダイアリー上で削除ボタンはしっかり動作します

URLを直に/delete/id とすると
Error: The view for diarysController::delete() was not found.
とでます。これは普通ですよね?URLから削除をさせないため、ほかのとこにアクセスさせないため

少しいろいろ書いてあるので消しましたがたぶんこれで動いてるはずです
public function delete($id) {
if ($this->request->is('post') || $this->request->is('put')) {
$this->Diary->delete($id);
$this->redirect(array('action' => 'index'));
}

ここまで正常だと思うのですが
自分で作ったhtmlファイルに
<form action="自分のURL/delete/ID" method="post">
<input type="hidden" name="_method" value="POST"/>
<input type="submit" value="DELETE">
</form>

で記述してこれで投げると消されてしまいます
どうすれば解決できるのでしょうか・・・?
ポストを判定するまえになにか条件いれればいいのでしょうか?
0012nobodyさん2013/09/11(水) 01:35:06.52ID:???
CakePHPは初心者も大事にするFWなんでお答えします。
結論から言うと、質問の中にそもそも答えが含まれてる。

> Error: The view for diarysController::delete() was not found.

がなぜ出力されるのかというと、アクションの結果を描画するためのビューがないっていうこと。
なので、このエラーそのものと、レコードが削除されないことは実は関係がない。

> URLから削除をさせないため、

の措置はアクション内部でのリクエストタイプ判定で行ってる。
で、これがほんとうに意味が分かって言ってるんなら、質問の答がこれですよ。
URLを直接叩いて削除しちゃうと良くないことが多いので、そうしないようにコードに記述してる。
つまり、コントローラが悪いのじゃなくてリクエストの仕方が悪いだけ。

> ほかのとこにアクセスさせないため

「ほかのとこにアクセス」が意味不明だが、リダイレクトの事を言ってるのならば、
別にそういうふうに作りたければそうすればよいだけで、このエラーの内容とは直接関係がない。
0013nobodyさん2013/09/11(水) 01:35:43.16ID:???
> if ($this->request->is('post') || $this->request->is('put')) {

で判定してる $this->request というのは自動的にセットされる CakeRequest のオブジェクトで、
リクエストに纏わる諸々のデータ・構造が内包されてる。
こいつの CakeRequest::is() メソッドでリクエストタイプを判定して、POST か PUT なら
モデルに対して削除を命令して、「描画せずに」array('action' => 'index') へリダイレクトする。
ここでこのリクエストに対する処理は終わり。(厳密には多少の後処理はある)

ちなみに分かってるかも知れないけど、この array('action' => 'index') っていうのは URL そのもので、
足らないパラメータ('plugin' や 'controller') はRouter で自動補完されて完全なフルパスにパースされる。


で、先程のは POST か PUT の場合だけど、それ以外(まぁGETだが)は評価ブロックを抜けて
通常のレンダリングに移行する。
仮に Diaries/delete.ctp を配置しておけば上記のエラーは出ないというだけ。

こんな説明で分かりましたか?
0014nobodyさん2013/09/11(水) 01:40:10.71ID:???
あらら、それと、
diaysController って DiariesController の書き間違いだよね?
001582013/09/11(水) 02:09:49.14ID:???
とても詳しく説明してもらってすいません

書き間違えはすいません 日記のようなものを作っています。少し改変しました

ちょっと補足します
> URLから削除をさせないため、

というのはその通りです。
> ほかのとこにアクセスさせないため
なんでもないです。すいません

>仮に Diaries/delete.ctp を配置しておけば上記のエラーは出ないというだけ。
エラーは別にあってもなくてもいいのですが

<form action="自分のURL/delete/ID" method="post">
<input type="hidden" name="_method" value="POST"/>
<input type="submit" value="DELETE">
</form>

この部分の回答がほしくて理解不足でもう出ていたらすいません

日記はその書いた人した消せない仕様なのですが
メモちょうなので↑のコードを書いてそこにあるボタンを押すことでどのIDの日記でも削除できてしまう
のをどうしたらいいかの回答がほしいです


ちょっと自分のやっていることが特殊なのか言葉不足なのかもしれません。
001682013/09/11(水) 02:11:10.50ID:???
>仮に Diaries/delete.ctp を配置しておけば上記のエラーは出ないというだけ。
今回はエラーは別にあってもなくてもいいのです。本当は書いたほうがいいんでしょうけど・・・
0017nobodyさん2013/09/11(水) 02:28:30.27ID:???
あぁ、権限の話でしたか。
消したいのに消せないので困ってるのかと勘違いしてた。

それなら CakePHP 以前に、PHPでリクエストを送ったユーザーを
どう識別するのかってことが分かってないと。

実現する便利な機能(端的に言うと AuthComponent ですね)
は備わってるけど、"PHP ログイン 認証" とかでググって
まずは素のコードが書けるようになってから Cake に
再チャレンジした方がいい。

今のままだとサンプル見てもどの部分がCakeの機能で、
どの部分がPHPなのかさっぱりわからない状態じゃないかな?

もしそうならいったん基礎に戻ったほうが結局は早く理解できて効率がいい。
001882013/09/11(水) 02:35:31.22ID:???
ポスト判定をする前にまずログインしてるか調べてそのあとユーザーとその日記の書いたユーザが一致か調べればいけますかねぇ・・・

きっちり基礎ができているとは言いがたいですけどがんばって見ます
0019nobodyさん2013/09/11(水) 02:46:57.82ID:???
ある程度基礎ができてるなら、上のレスで書かれてる CakeDC の
Users プラグインを使って認証を一通り実装してみるといいです。
とても勉強になりますよ。
0020nobodyさん2013/09/11(水) 06:06:04.88ID:???
StackOverflowてCakeの質問してみたけど全然レスが付かない
別の質問もしてみたけどやはりレスが付かない
そもそも8 viewsしかされてないし、Cakeってだけでスルーされちゃうのだろうか
0021nobodyさん2013/09/11(水) 06:25:05.97ID:???
>>20
だからどの質問だ?
url貼れ
0022nobodyさん2013/09/11(水) 08:46:56.10ID:AXWD8Gpa
チュートリアルを見ると1テーブルに1モデルでそのモデルに対して複数のコントロールとビューがあるパターンしかないんですけど、
自分がやりたいのは複数のビューとコントロールに対して、複数のテーブルからデータを集めてきて処理をしたいんです。
その場合、モデルで記述するクラスはテーブルを使わない独自クラス、呼び出すテーブルはアソシエーションで定義するという理解でいいですか?
モデルに使用するテーブルをクラスとして別々に記述できるといいんですけど、違うみたいだし。
0023nobodyさん2013/09/11(水) 10:36:21.33ID:???
>>22
1モデル=1テーブル という図式があたかも
規則であるかのように受け取られてしまうのが
チュートリアルの欠点のように思う。

それは全く気にする必要なし。

やりたいようにやればいい。

あと、標準のプロパティで張れるアソシエーションは限界があるので
それを越えようと思えば 'joins' キーでパラメータを指定したり、
直書きする。

一例を上げると、主テーブルに対して2つのテーブルをLEFT JOINするときに、
サブテーブルのキー同士を結びつける条件はプロパティの設定では不可能。
こういうときはメソッド内で joins で指定するしか無い。

Cake3 はもう少しマシになってるらしいが。
0024nobodyさん2013/09/11(水) 10:41:19.91ID:???
Cake3 は Table クラスが分離される模様
0025nobodyさん2013/09/11(水) 11:21:24.92ID:???
さすがにその頃にはCake卒業したい
0026nobodyさん2013/09/11(水) 12:01:01.77ID:???
もう時間ないぞ
0027nobodyさん2013/09/11(水) 12:07:33.07ID:???
>>18
お前、チュートリアル(認証系の方)にちゃんと書いてあるぞ
翻訳も完了してるんだから最低限チュートリアルやってから質問しに来い
0028nobodyさん2013/09/11(水) 12:15:38.97ID:???
>>27
そういうなよ。
CakePHPのドキュメントは正直分かりにくいし、
初心者というのはいろんな情報を手探りで集めるんだし
0029nobodyさん2013/09/11(水) 12:47:53.86ID:???
ぶっちゃけ公式ドキュメント見るのが一番効率悪い
よくできてないだろ、あれ
絶妙に必要な情報が欠落していて、中級者でも戸惑う
0030nobodyさん2013/09/11(水) 13:02:57.78ID:???
かなり同意。
CakePHPのドキュメントは分かりにくいよね。
ぐだぐだと長い文章書いてある割りに、
開発中にあれ?どうなってるだっけ?と思った疑問には全然答えてくれない。
0031nobodyさん2013/09/11(水) 13:43:15.36ID:???
そう、ボリュームが足りないとはあまり感じないんだけど
開発してたら調べたくなるようなことが、悉く載っていない
結局ぐぐってどこかの馬の骨のブログにたどり着き、
古い情報やサンプルコードを、必死で直しながら使うことになる
0032nobodyさん2013/09/11(水) 18:44:25.49ID:???
ドキュメントで翻訳されていないページはみんなどうしてんの?
0033nobodyさん2013/09/11(水) 20:21:07.93ID:???
そのまま読むかググるq
0034nobodyさん2013/09/12(木) 01:00:10.04ID:???
apiの方かソースコードを読む
0035nobodyさん2013/09/12(木) 01:45:24.46ID:???
>>34 に同じく。
ドキュメント、面白くさせようとしてるんだろうけど無駄な文章や修飾が多い。
用語のゆらぎも多い気がする。
0036nobodyさん2013/09/12(木) 23:09:03.21ID:???
質問させて頂きます。
下記のリレーションを持つモデルがあります。
User hasmany Thread(Thread belongsto User)
Thread hasmany Response(Response belongsto Thread)
User hasmany Response(Response belongsto User)

Threadの詳細表示画面(viewアクション)で
一覧表示されるResponseのuser_idの代わりに、
Userテーブルのフィールドの一つであるusernameを
表示させたいんですが、スマートなやり方はありますか?

力技で何とかしようと結構時間を掛けて試行錯誤したんですが
上手く行かなくて質問させて頂きました。
0037nobodyさん2013/09/12(木) 23:12:30.82ID:???
36です。書き忘れましたがCakePHPのバージョンは2.3.9です。
0038nobodyさん2013/09/12(木) 23:22:00.75ID:???
$this->Thread->Response->User->displayField = 'username';
$this->Thread->recursive = 2;
$thread = $this->Thread->read();

はどう?
試してないから間違ってたらすまん
0039nobodyさん2013/09/13(金) 00:07:10.21ID:???
>>36です。ありがとうございます。

$this->Thread->Response->User->displayField = 'username';
を試してみましたが、
Indirect modification of overloaded property AppModel::$User has no effect
とエラーが出ました。

また、
$this->set('thread', $this->Thread->find('first', $options));
を
$this->set('thread', $this->Thread->read();
や
$thread = $this->Thread->read();
にも書き換えてみましたが、Threadの中身が表示されなくなりました。

$this->Thread->recursive = 2;
はヒントになりそうな気がします。

今日はもう眠いのでまた明日試してみようと思いますので、
お世話になれれば幸いです。
0040nobodyさん2013/09/13(金) 01:32:12.20ID:???
あぁ、すまん、Thread が持つ Response に含まれる User の username ね。
それなら displayField 云々は要らないな。
これは単純に User.username のデータを拾えるようにしてそれを表示すれば良いので、
一番雑なやり方だけど簡単なのは上で書いたように recursive を 2 にすればデータを取得できる。

どんな形式で返されてるかは debug() とか使って確認してちょうだい。
データアクセスはなれるまで少し面倒くさいけど仕方ないね。

ただ、このやり方で発行されるクエリはかなり大雑把。
Containable というビヘイビアの使い方をもし知らなければまずそれを覚えて損はない。
しかしこれもパフォーマンスを追求するなら酷いSELECT文になることが多い。
パフォーマンス上げたいなら最終的には細かくチューニングしなくちゃならないです。
0041nobodyさん2013/09/13(金) 01:43:58.32ID:???
あと気になるのは

> $this->Thread->Response->User->displayField = 'username';
> を試してみましたが、
> Indirect modification of overloaded property AppModel::$User has no effect
> とエラーが出ました。

これは出ないはずなんだけどなぁ。
本当に Response::$hasMany に User をセットしてる?
それさえしていれば、Response::$User プロパティがコールされたタイミングで
(なければ)自動的にセットするんで上記のエラーは出ないはずなんだが。。。

> Threadの中身が表示されなくなりました。
というのは何でかよく分からんけど、どんなクエリ発行されてるのか確認すると良いと思う。
0042nobodyさん2013/09/13(金) 11:04:36.05ID:lL7QR+Re
すみません。教えてください
/libs/view/helpers/paginator.php の関数を一部書き換えたいのですが
/app/views/helpers/ に自作クラスファイルを置く場合、どうやって書けばいいのでしょうか?
0043nobodyさん2013/09/13(金) 11:34:39.66ID:???
パターン1: 継承する

/app/View/Helper/MyPaginator.php

App::uses('Paginator', 'View/Helper');
class MyPaginator extends Paginator {

}

class PostsController extends AppController {

public $components = array('Paginator' => array('className' => 'MyPaginator'));

}

パターン2: Paginator を app にコピー

/app/View/Helper/Paginator.php

(元の Paginator をそのまま貼り付けて適宜改造)


パターン1 のほうがいい。
0044nobodyさん2013/09/13(金) 11:52:08.68ID:lL7QR+Re
丁寧にありがとうございます
1の方法を試したのですがPHPの書式エラーが出てうまくいかなかったので、
とりあえず2の方法で実装できました
0045nobodyさん2013/09/13(金) 13:19:06.74ID:???
え、どんなエラー?
ひょっとして1.3使ってる?
0046nobodyさん2013/09/13(金) 13:50:01.95ID:lL7QR+Re
はい。1.3です
Appなんて知らないよ、みたいなエラーでした
私自身cakePHPを使ったことないのですが、現行システムを引き継いで、
新システム+機能追加を行えという依頼が来ているので、四苦八苦しているのです
0047nobodyさん2013/09/13(金) 13:54:32.98ID:???
うわぁ、大変だなぁ。

エラーは多分App知らないじゃなくて、そんなメソッドないよってエラーではないかと。
1.3 のときは App::uses() じゃなくて App::import() 使ってた。
このへんはだいぶ変わってるからなぁ。
とりあえずパターン1でもApp::uses の行を削除すれば多分動く。

あと、クラス名とか大幅に間違えてたすまん。
Paginator じゃなくて PaginatorComponent だよな。
0048nobodyさん2013/09/13(金) 13:57:05.57ID:???
いや、 Component じゃなくて Helper だ。
なんかgdgdになってきたわw
0049nobodyさん2013/09/13(金) 14:02:15.60ID:lL7QR+Re
ありがとうございます。
今他の人が動作確認等をしているところなので、エラー画面を出すわけにもなので、また後で試してみます
他社が作ったシステムなのですが、不具合だらけで、よくこんなので数年運用していたな…と思えるもので
お客さんもこの制作会社に愛想をつかしたのかなと
0050nobodyさん2013/09/13(金) 17:19:36.52ID:???
そう言えば何年も前に1.2で納品したサイトをこの前こっそり覗いたらまだそのまんま稼働してた。

ひょっとして裏でメンテナンスしてる?と思ったけどどうやらそのままっぽい。

あれを今こっちによこされても触る気しねぇなw
0051nobodyさん2013/09/13(金) 22:37:32.90ID:???
>>36です。

>>41すみません。ご指摘頂いている通り
リレーション(実際にはbelongsTo)の設定に漏れがありました。
お騒がせしました。

おかげさまで力技で何とかusernameを表示させることができました。
本当はContainableとか使ってスマートにやれれば良いのでしょうが
今のところパフォーマンスはそこまで気にしなくて良さそうなので
とにかくありがとうございました。
0052nobodyさん2013/09/14(土) 22:05:34.75ID:???
CakePHPでテストを書いてて質問です

モデル内の「1ヶ月以上放置ユーザーのデータを書き換える」という関数のテストを書きたいのですが
関数内でdate()を使っているのでテストを動かす日付によってテスト結果が変わってしまうことになります
テスト中はdate()をモック化して常に同じ日付を返すような事はできないでしょうか?
0053nobodyさん2013/09/14(土) 22:38:16.25ID:???
>>52
https://github.com/hnw/php-timecop
0054nobodyさん2013/09/14(土) 22:50:16.35ID:???
へえ、こんなのあるんだw
あざっす
0055nobodyさん2013/09/16(月) 00:08:58.74ID:???
View内にSQLを書くのはあり?
0056nobodyさん2013/09/16(月) 01:32:09.97ID:???
別にいいんじゃない?
0057nobodyさん2013/09/16(月) 01:36:20.86ID:???
え?
0058nobodyさん2013/09/16(月) 01:37:11.54ID:KEkZXyyj
>>56
本当にいいの?
0059nobodyさん2013/09/16(月) 01:46:36.58ID:???
これなら良いだろ?

<?php echo 'SELECT * FROM posts;'; ?>
0060nobodyさん2013/09/16(月) 07:24:05.78ID:???
>>59
それで出来るの!
0061nobodyさん2013/09/16(月) 12:45:44.30ID:???
いいこと思い付いた
viewにユーザーにSQL入力してもらうフォーム置いとけば、アプリの開発要らないんじゃね?
0062nobodyさん2013/09/16(月) 13:57:55.65ID:???
>>59
やっかたけど文字列が帰ってくるだけだった
0063nobodyさん2013/09/16(月) 14:58:11.99ID:???
>>62
まさか真に受けるとは思わなかった。。。

常識的にViewではSQLは書かないという前提があって、
だけど文字列で表示するというだけならば問題ないよね
っていう流れで書いたつもりなんだけど
悪気はなかった。すまん
0064nobodyさん2013/09/16(月) 16:39:46.11ID:???
>>62
おまえかわいいな
0065nobodyさん2013/09/16(月) 16:59:49.24ID:???
View から SELECT だけは許可できる仕組みって作れないものかね?
0066nobodyさん2013/09/16(月) 17:03:04.01ID:???
>>63
親をループさせながら子のデータを取得したいんだけど
コントローラーでやると複雑になって、面倒くさいからVIEWでSQL書いちゃえば早くね?と思ったんだけどダメか?
0067nobodyさん2013/09/16(月) 17:59:16.56ID:???
>>66
定石だと、それはモデルでやるべきだろうな。
0068nobodyさん2013/09/16(月) 20:49:35.86ID:???
開発して専用のサーバーに設置したのですが、robots.txtへのアクセスが全部エラーとなってtmpの下のerror.logに記録されています
[MissingControllerException] Controller class Robots.txtController could not be found.
特に害はないのですがどうすればエラーをなくせますか?
0069nobodyさん2013/09/16(月) 21:47:16.36ID:???
本来は所得税が0の年が一度でもあったら参政権を生涯剥奪するべきだが
少なくとも生活保護や自己破産は選挙権と引き替えにすべき
0070nobodyさん2013/09/16(月) 21:59:16.92ID:???
>>69
MVCモデルのことですか?いまいちわかりません。
0071nobodyさん2013/09/16(月) 22:21:35.91ID:???
>>68
robotx.txt が設置されてないだけと思うんだが、違う?
0072nobodyさん2013/09/16(月) 22:22:09.07ID:???
>>68
robotx.txt が設置されてないだけと思うんだが、違う?
0073nobodyさん2013/09/16(月) 22:26:35.95ID:???
すまん、二重カキコになってしまった。
しかちいつまでたっても2ちゃんのシステムは垢抜けないな
0074nobodyさん2013/09/17(火) 12:59:52.45ID:???
>>55だけど。思いついた!
子テーブルのビューを作って親のループ中にrequireすればいい!

モデル理解するの無理そうだからそうしよう!
0075nobodyさん2013/09/17(火) 13:45:38.86ID:???
controllerはわりと理解した
viewもわりと理解した
modelがよくわからない
他人が書いたソースを眺めるだけじゃなく、ちゃんと書籍なりで勉強すべきかな
0076nobodyさん2013/09/17(火) 13:54:53.58ID:???
フォームのinput submitでハマった。
普通なら/xxxx に飛ぶのに/xxxx/ に行ってしまって、その後のボタン処理が滅茶苦茶。
結局判らずリンク先をダイレクトに指定して回避したけど気持ち悪い。
Twitter Bootstrapを最近入れたけどCakePHPのフォーム処理と使い勝手が悪い感じがする。
0077nobodyさん2013/09/17(火) 13:59:43.68ID:???
入門書はいくつかあるけど中級以上向けのガイドが欲しいな
実際に開発始めると、例みたいに簡単な1コントローラ、1モデル、1ビューの構成に片付かない
1コントローラ複数モデルになると一気にコントローラが太るのを何とかしたい
0078nobodyさん2013/09/17(火) 14:21:37.80ID:???
>>74
なんか苦戦してるみたいだけど、
具体的に詳しく書けば何らかの助言は貰えると思うよ。

よくは分からないけど、あなたは今良くない方向へ向かっている気がする。
同じ努力をするなら少し方向を考え直した方がいいのでは?
0079nobodyさん2013/09/17(火) 16:36:07.83ID:???
複数形で書いたり単数形で書いたり、気持ち悪いったらありゃしない
0080nobodyさん2013/09/17(火) 16:37:37.77ID:???
>>76
フレームワークが暗黙的にいろんなデータを補完しているから、
初心者だとよくはまる失敗の典型ではないかと思います。

詳しく見れば必ず解決できるはずなんだけど、最初は調べ方すらわからないのが普通。

問題になってる FormHelper::create() のパラメータを書いて見れば?
0081nobodyさん2013/09/17(火) 16:40:07.14ID:???
>>79
アングロサクソンに合わせるしか無いのであきらめろ。
世界の文化を上書きできるならもう一度戦争してみればいい。
0082nobodyさん2013/09/17(火) 16:52:47.46ID:???
複数形が単純に「s」つけるだけならいいけど、company→companiesみたいに単純なものじゃないときにどうしていかわからないよ
0083nobodyさん2013/09/17(火) 17:35:09.83ID:???
どうでもいいけどdataの複数形は?
0084nobodyさん2013/09/17(火) 17:37:54.93ID:???
datum
0085nobodyさん2013/09/17(火) 17:41:21.66ID:???
>>83-84
ギャグじゃなければ逆
0086nobodyさん2013/09/17(火) 18:00:02.50ID:???
はっ!
0087nobodyさん2013/09/18(水) 15:18:46.52ID:???
ちょっと聞いてみるんですけど、
FoodsテーブルにcolumnとしてDish_id, Calorie, (質問には関係ないけどFoodnameも)が有って、
Dishesテーブルの内容を、それぞれのrowに属するFoodのCalorieの合計の大きい小さい順に
paginatorの機能を使って並び変えられるようにしたい時、どうするのが一番良いですかね?
DishesテーブルにCalorieの合計値を属性として持たせる、と言うのは思いついたんですがどうでしょうか?
CakePHPは2.2を使ってます。
0088nobodyさん2013/09/18(水) 15:59:01.32ID:???
>>87
間違ってないので良いんではないでしょうか
0089nobodyさん2013/09/18(水) 16:05:46.78ID:???
>>88
そうですか、ありがとうございます。
ただそうなると、もしFoodsテーブルのcalorie情報とDishesテーブルのcalorie合計値情報が
絶対矛盾しない様にしたいと思ったらトランザクションとか使わないといけないですよね?
もしくはcronとかを回してFoodsテーブルとDishesテーブルで矛盾が出たら検知するプログラムを走らせるとか?
0090nobodyさん2013/09/18(水) 21:07:53.48ID:???
MySQL ならトリガー使えばDB側で正確さを担保できる
0091nobodyさん2013/09/19(木) 01:15:58.79ID:???
>>55だけど!モデル理解するの無理そうだから。もうコントローラーにHTML書いて書いてく!
0092nobodyさん2013/09/19(木) 01:47:34.39ID:???
お、おう・・・
0093nobodyさん2013/09/19(木) 05:11:21.97ID:???
フレームワーク使う意味ないやんw
0094nobodyさん2013/09/19(木) 11:46:18.88ID:???
>>93
でもちゃんと理解できるまでそうするっていうのならありじゃない?
理解してないのに使うなは禁句
0095nobodyさん2013/09/19(木) 12:02:37.73ID:???
ネタなのかマジなのかわからないのが沢山混じってるな・・・
0096nobodyさん2013/09/19(木) 22:23:16.57ID:???
cakeを使うメリットを教えてほしいんだが、何がそんなにいいの?
0097nobodyさん2013/09/19(木) 23:00:16.87ID:???
勘違いしてるようだが
他FWに比べて、いいから使ってるわきゃない
0098nobodyさん2013/09/20(金) 00:26:53.84ID:???
日本語資料が(他と比べると)多い
それが一番じゃないかな?
0099nobodyさん2013/09/20(金) 00:31:48.40ID:???
最初になんとなくCakeを選んでしまった
今は後悔している
0100nobodyさん2013/09/20(金) 04:37:03.54ID:???
>> 96 97 98
96だが、日本語の資料が多いだけか。
他FWに比べて他のメリットってなにもないよね。
参考になったよありがとう。
0101nobodyさん2013/09/20(金) 05:51:49.74ID:???
特定のページに行くとセッションが切れるのなんなの?
0102nobodyさん2013/09/20(金) 07:38:57.90ID:???
>>101
特定のページの作りがおかしいんだろうな
0103nobodyさん2013/09/20(金) 09:51:34.51ID:???
>>101
ファイルの存在しないパスのアセットを取得しようとしてるかも。
一度CSSとかfaviconとかの記述をチェックして下さい。
0104nobodyさん2013/09/20(金) 16:20:28.57ID:???
AuthってAppControllerに指定してる?
してないならセッション切れの原因になると思う
俺も一部のコントローラーだけ指定してたらそうなった
0105nobodyさん2013/09/20(金) 17:24:32.38ID:???
>>100
cakeはcontrollerの部分はすごく便利
だが、modelはダメダメ
viewもわりと使いやすい
0106nobodyさん2013/09/20(金) 17:31:35.17ID:???
俺は基本デザイナーで、片手間でフレームワークを覚えなくちゃなんなくて
仕方なく始めたのがCakePHP1.3だった。

で、特に不満もなく今に至るという感じで、
なんとか2系にはシフトできたけど
ほかのフレームワークを試せるほど余裕が無い。

Cakeをある程度使えるようになるまで時間がかかったから、
それと同じぐらいの手間をかけてまで
他にまで手を広げようという意欲がわかないだけで、
簡単に他のを試せるならCakeを使っていないかもしれない。

そういう人は多いのじゃないかと思うがどうだろう。
0107nobodyさん2013/09/20(金) 17:58:36.98ID:???
俺がCakeに手を出した頃(2009〜10)が多分Cakeの全盛期だったんだと思う
その頃はまだFuelPHP等も流行ってなく、PHPのMVCフレームワークといえばどの本も大体Cakeを筆頭に挙げてた
で俺も勝ち馬に乗るつもりで手を出してみたんだけど、使ってみたらイマイチで他に新しいのがどんどん出てきた
けどキッツキツの仕事のスケジュールの中ではコードの再利用や学習コストを考えると他に以降できない
気に入らない点のいくつかは2で改善したし一応使い物になってるのでそのままって感じ
0108nobodyさん2013/09/20(金) 18:10:37.86ID:???
後発が良いツールなのは世の常だけど、
情報量が少ないとわざわざ覚えようと思わないよね
0109nobodyさん2013/09/20(金) 18:48:44.64ID:???
情報量に関してはCakeが特にいいと思わないな。
英語でもいいから公式ドキュメントをもっと充実して欲しいね、使い込む人用に。
ネットの記事や本も2より1の時の方が多かったよね、3になったら更に減ったりするのかな。
0110nobodyさん2013/09/20(金) 18:51:58.92ID:???
ドキュメント十分だろ。これ以上はソース読めレベル。
0111nobodyさん2013/09/20(金) 20:07:24.91ID:???
ドキュメントって何だか文系向けだよね。
体系的・科学的じゃない。
0112nobodyさん2013/09/20(金) 20:09:43.10ID:???
100だが
Struts(java)⇒Symfony1系⇒ZendFW1系⇒Symfony2系⇒Cake2系と変遷してきた。

ドキュメントは公式のページで充分だしわからないとこはソースみりゃいいよね。
どんなFWでも同じ。

初めて触ってみたけどcakeの良いとこが多少学習コストが低いかもくらいしか見つからなかったんだ。
それで聞いてみた。
0113nobodyさん2013/09/20(金) 20:27:59.86ID:???
公式ドキュメント全然十分じゃないよ。開発中知りたい事が全然載ってない。
初心者騙しにしかなってない。
わからなかったらソース読めとかアホかそんな効率悪い事できるのは暇人だけ。皆働いてんだよ。
0114nobodyさん2013/09/21(土) 00:07:12.40ID:???
Haveの複数形はhasでいいの?havesになったりしない?
0115nobodyさん2013/09/21(土) 00:39:39.41ID:???
俺はどうも複数形には慣れないな
単数形にすることも出来るけど、フォーム処理で躓く時あるし
0116nobodyさん2013/09/21(土) 00:53:11.30ID:???
一応テーブル名複数形、モデル名単数形のコーディング規約にしてるけど
数人でプロジェクト組むと、うっかり守らない奴が出るんだよなあ
0117nobodyさん2013/09/21(土) 01:19:39.04ID:???
>>114
名詞でhaveなんか使うのか?別にいいけど。。。
0118nobodyさん2013/09/21(土) 01:21:56.95ID:???
ちなみに名詞で have って言ったら「(莫大な富とかを)持ってる人」みたいな意味です。
その場合は単数形が have で、複数形が haves だよ。
0119nobodyさん2013/09/21(土) 01:27:56.10ID:???
英語文化は尊重するけど、英語じゃない単語の扱いが半端無く面倒くさい。
0120あ2013/09/21(土) 01:41:26.10ID:???
iphoneアプリのサーバ側でcakephpを使おうと思ってます。
会員制のアプリで、アプリからブログの更新ができるようにしたいです。
ログイン後のトークン発行など、、ここらへんがよくわかりません。。
どんな流れになるのでしょうか?
よろしくお願いします。
0121nobodyさん2013/09/21(土) 03:32:29.71ID:???
>>120
http://book.cakephp.org/2.0/ja/tutorials-and-examples/blog-auth-example/auth.html
0122nobodyさん2013/09/21(土) 09:22:19.71ID:IxVA/8jO
わかる方がいれば、教えてほしいんですが以下のSQLをCakePHP用に
書き直す場合にどのようにすればよいでしょうか

select
カラムA,(select カラムB from テーブル where カラムA=t1.カラムA order by rand() limit 1)
from
(select カラムA from テーブル group by カラムA) t1;
0123nobodyさん2013/09/21(土) 12:05:47.80ID:h7jpowpU
>>122
直書き 一択
0124nobodyさん2013/09/21(土) 12:12:42.26ID:???
>> 113
調べることが暇人ってなんだ?
やりたいことが載ってないって応用力ないんだなww
答えそのものが載ってないとできない奴っているよねw
cakeが初心者用のフレームワークって納得したよ。
0125nobodyさん2013/09/21(土) 12:29:05.54ID:???
たとえばさ、モデルのバリデーションの指定方法一覧ぐらいは、公式が用意してくれてもバチはあたらないと思うんだ
ソース検索して開いて見るより、ドキュメントがあったほうが見やすいだろ?
0126nobodyさん2013/09/21(土) 12:38:54.14ID:???
2系を使っています。コントローラとアクションが
存在するか調べる機能ってないですかね?
小一時間ググったのですが、見つけられませんでした・・・
0127nobodyさん2013/09/21(土) 12:48:08.89ID:h7jpowpU
>>126
特別な方法はないと思う

Shellプラグインの作成で結構地味に調べたのを記憶してる
0128nobodyさん2013/09/21(土) 12:54:35.00ID:???
ないのかよ
0129nobodyさん2013/09/21(土) 12:55:01.64ID:???
> 125
公式
http://book.cakephp.org/2.0/en/models/data-validation.html

ソース
lib/Cake/Utility/Validation.php

公式に全部載ってるかどうか知らんが、1つでも載ってたらソース見ないの?
どんなチェックしてるか知らないのに実装するの?

> 126
http://phpspot.net/php/pg%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%8C%E5%AD%98%E5%9C%A8%E3%81%99%E3%82%8B%E3%81%8B%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF.html
0130nobodyさん2013/09/21(土) 14:04:59.28ID:???
>>129
cakeの機能としてはないんですね。
ビューの一部をDBに保存してるのであればと思いましたが、
ないということなので定数からパスを作成して調べます
0131nobodyさん2013/09/21(土) 16:43:48.92ID:McaoFmaC
フォームのデータの受け取り方がどうしてもわかりません。
具体的にはコンボボックスやラジオボタンで選択されたデータをコントローラーで知りたいのですが、

$this->data[テーブル名][カラム名] データベースのデータじゃなくてコントローラーで設定した値なので使えない。
$this->param['form][???] paramにPOSTデータが全部入るようなのですが、二番目の引数に何を指定すれば求めるものが取得できるのかわかりません。
何を入れてもnullが返ってきます。根本的に考え違いしていますか?
0132nobodyさん2013/09/21(土) 16:56:23.08ID:IxVA/8jO
>>131
間違ってたらごめん。
どんなデータがpostされてるかはchromeなら要素検証から見れるから
それを参考に書いてみるといいと思う。

cakephp2しか触ったことないけど、その場合は下の感じで受け取るね
$this->request->data['model']['id']みたいな感じ
0133nobodyさん2013/09/21(土) 17:01:45.99ID:???
var_dump($this->request->data);
で確認してみるとよさそう
0134nobodyさん2013/09/22(日) 03:28:58.52ID:???
debug()さん「・・・」
0135nobodyさん2013/09/22(日) 03:45:13.84ID:???
2.3.10(たぶん2系)で、AuthのuserModelでバーチャルフィールドを
指定していると、ログイン時になにも入力しなくても
ログインできてしまう問題に遭遇した。

バーチャルフィールドの指定を外すとエラーチェックしてくれるから
バーチャルフィールドが問題だと思うけど、
これを突き止めるのに4時間かかったぜ・・・
似た問題に遭遇してる人は参考にしてください。
0136nobodyさん2013/09/22(日) 03:48:28.58ID:???
>>129
あざっす、そこに載っていたのか
そのページ前からあった?以前英語のページ含め結構探したんだが…

ソースは基本読まないで使うなあ、バグ解析などで必要にならないと読まない
他人のコード読みながら作る時間があったら自分で作るからなあ
0137nobodyさん2013/09/22(日) 03:49:53.63ID:???
>>135
再現してみたいので出来ればもうちょい詳しくお願いします。

バーチャルフィールドの指定ってのは

User::$virsutalFields = array(...);

ってことでいいのかな?
0138nobodyさん2013/09/22(日) 04:17:47.94ID:ILax0A3i
>>136
>他人のコード読みながら作る時間があったら自分で作るからなあ

フレームワーク使う意味ないんじゃ…
0139nobodyさん2013/09/22(日) 04:30:37.36ID:???
なんで?言ってる意味がわからん
0140nobodyさん2013/09/22(日) 12:58:56.82ID:???
作るのが面倒、時間ないからFW使うんじゃないよ
むしろそういう奴は使わない方がいいと思う
0141nobodyさん2013/09/22(日) 13:56:20.61ID:???
は?FWって開発速度を上げるために使うものだろ
他に何のメリットがあるんだよ
0142nobodyさん2013/09/22(日) 14:03:11.87ID:???
>>141
速度だけだと思ってるなら勉強しなおせ。
0143nobodyさん2013/09/22(日) 15:00:26.29ID:???
開発速度あげるだけなら、オレオレが一番早いと思うが。
自分が好きなように作れるんだし
0144nobodyさん2013/09/22(日) 16:08:37.23ID:???
えっ
どんな低機能のフレームワークだよ…
0145nobodyさん2013/09/22(日) 19:24:19.17ID:???
> FWって開発速度を上げるために使うもの
wwwwくそわろた
0146nobodyさん2013/09/22(日) 21:32:19.12ID:???
セッション切れ問題がデータベースを空にしたら治った
原因不明過ぎて怖い
0147nobodyさん2013/09/22(日) 23:04:15.03ID:???
そういうのあるね。特にAuth関係は不可解なこと多い
0148nobodyさん2013/09/22(日) 23:12:27.52ID:1/Rn/nVo
本番でなったら恐ろしすぎるんだけど
0149nobodyさん2013/09/22(日) 23:59:51.35ID:???
ま、nanapiとかランサーズとか
有名な会員サイトで使えてるんだから、何とかなるでしょ
0150nobodyさん2013/09/23(月) 00:16:18.34ID:???
Twitterのあうth認証って新しく作ったアカウントだと拾ってくれなかったりする?
0151nobodyさん2013/09/23(月) 05:48:35.98ID:???
>>146
> セッション切れ問題がデータベースを空にしたら治った
> 原因不明過ぎて怖い

あ、それ簡単だよ。セッションが壊れてるの
MySQLはデフォルトの設定で文字数が定義より多くて
溢れても、途中で切れるだけで処理が正常終了しちゃうんだよね。
その時、壊れたセッションが出来上がる。
0152nobodyさん2013/09/23(月) 10:30:15.39ID:???
>>145
何もおかしいこと言ってないと思うんだけど何が面白いのかな
0153nobodyさん2013/09/23(月) 10:43:47.86ID:???
やっぱそうだよね
俺もそう思っていた
0154nobodyさん2013/09/23(月) 13:37:52.78ID:???
コントローラーに書いてある$thisってなにがはいってるの?
何を指してるの?
0155nobodyさん2013/09/23(月) 13:43:42.09ID:???
マジで言ってんの?
0156nobodyさん2013/09/23(月) 13:49:32.13ID:???
CakeはSecurity.levelの設定をhighにしてるとわけのわからないセッション切れとか問題てんこ盛りで起きる
仕方なくmediumで使うと安定している
0157nobodyさん2013/09/23(月) 14:34:05.91ID:???
>>152
お前も勉強しろ
0158nobodyさん2013/09/23(月) 16:47:11.98ID:???
>>152
「フレームワーク メリット」でぐぐって勉強しましょう。

>>154
クラスを勉強しましょう。
0159nobodyさん2013/09/23(月) 17:10:55.17ID:???
反論できないと見える
0160nobodyさん2013/09/24(火) 10:22:15.50ID:PewVrVzx
cakeのわかりにくさは、モデルのわかりにくさ、単数形複数形の使い分けの分かりにくさに直結してると思う
0161nobodyさん2013/09/24(火) 10:48:16.58ID:???
思いません
0162nobodyさん2013/09/24(火) 11:01:06.76ID:???
マジックメソッド、コールバックメソッド、
リフレクションを用いた初期設定値の自動マージ、
そのあたりの隠蔽された処理の把握に苦戦する。

とは言え、これはCakeに限ったことじゃないが。
0163nobodyさん2013/09/24(火) 12:09:00.22ID:???
>>162
オレもいまCake使ってて
モデルが単数形でコントローラーが複数形だけど
それって他のフレームワークも同じ?
フォームヘルパーとか$this->request->data=$this->Post->read()の値をフォームで使えるようにするらしいけど
$this->set('xxx',$this->request->data);じゃなくて
そのまま使えるけどそれも隠蔽されてるっていうの?
0164nobodyさん2013/09/24(火) 13:18:17.37ID:???
>>153
一人のキチガイが根拠も示さず必死に否定してるけど
開発速度向上はフレームワークのメリットのひとつだよ
0165nobodyさん2013/09/24(火) 13:56:07.30ID:???
>>163
未作成のモデルをCakePHPみたいに暗黙的に呼び出すというのは俺は知らない。
SynfonyにしろCodeIgniterにしろテーブルと関連付けた
アクティブレコードを明示する必要があって、
そこで単数形にするかどうかは好きにすればって感じだったと思う。

> フォームヘルパーとか$this->request->data=$this->Post->read()の値をフォームで使えるようにする

え、そうなん?初耳だわ。
0166nobodyさん2013/09/24(火) 14:28:03.92ID:???
>>165

>ほとんどの場合、このような形式を意識することはありません。
>CakePHPの FormHelper やモデルのfindメソッドは全てこの形式に従っています。
>FormHelperを使っていれば、 $this->request->data で簡単にこの形式のデータにアクセスできるようになっています。

$this->setに代入じゃなくて
$this->request->dataに代入で使える

変なの
0167nobodyさん2013/09/24(火) 14:53:11.90ID:2aQmFqKG
そこまでやってくれなくても… って感じだな
0168nobodyさん2013/09/24(火) 16:31:42.77ID:???
モデルを単数形、テーブルを複数形、コントローラーを複数形っていうルールは他のフレームワークも同じですか?
教えてください
0169nobodyさん2013/09/24(火) 16:36:08.50ID:???
>>164
141を読んでくれ。これをどう解釈するかだ。
0170nobodyさん2013/09/24(火) 17:46:21.20ID:???
単数形、複数形の問題ってビューのコーディング時にも悩むんだよな
0171nobodyさん2013/09/24(火) 18:01:42.34ID:???
>>169
他に何のメリットがあるの?
開発速度以外はデメリットだらけだろ
オープンソースのFWはオレオレ作る時間がない時に仕方なく使うもの
0172nobodyさん2013/09/24(火) 18:10:35.82ID:???
>>171
品質の向上とかあるだろggrks。

cakeが最良とは言わんが、今の時勢でフレームワークを使うことを考慮しないのはありえん。
0173nobodyさん2013/09/24(火) 18:12:57.27ID:???
>>171
メリットのひとつだけど他にもいろいろあるでしょ
0174nobodyさん2013/09/24(火) 18:24:26.00ID:???
>>171
・利用者が多いので、プラグイン作成の手間が省ける
・大規模サイトでも利用されてる安心感
・命名規則が統一してるから、名前付けで悩まなくてもいい
・不特定多数で開発する時、意思の疎通が図りやすい
・コピペで作っても不具合が起きづらい
・公式が現在も開発を続けている安心感

まだ続けてるか?
0175nobodyさん2013/09/24(火) 18:28:31.88ID:???
>>171
逆に実行速度以外オレオレのメリットがないような
0176nobodyさん2013/09/24(火) 18:29:58.01ID:???
>>175
そもそも実行速度求めるならPHP使う必要があるのかと。
0177nobodyさん2013/09/24(火) 18:34:34.37ID:???
スレが伸びてると思えば、
やはり不毛なフレームワーク論争かw
0178nobodyさん2013/09/24(火) 18:38:55.69ID:???
PHPを使うとどうせ遅いんだから、という理由で速度を全く気にしないというわけにもいかないよな
0179nobodyさん2013/09/24(火) 18:50:09.35ID:???
>>178
「遅い」の定義は要件次第だから、前提条件がないとこれもまた不毛な議論に。
0180nobodyさん2013/09/24(火) 21:21:03.36ID:???
cakeでは簡単なことしかできないように思える。
cakeで凝ったつくりのサイトとかあったら教えてもらえませんか?
0181nobodyさん2013/09/24(火) 21:39:34.62ID:???
>>180
逆にcakeでできないことって何だろう。。。
根性あれば大抵できると思うんだが。
0182nobodyさん2013/09/24(火) 23:14:27.72ID:???
>>180
そもそもあんたが言っている「凝った作りのサイト」が
どういったものなのかわからないので答えようがない。

cake以外で作っていてもいいから、
まず「凝った作りのサイト」の例をいくつか上げてくれ。
サイトいうだけじゃなく凝ってる部分はどこかも言うように。
0183nobodyさん2013/09/25(水) 00:17:25.95ID:???
facebookとかtwitterとか言い出したりしてw
0184nobodyさん2013/09/25(水) 00:26:04.71ID:???
CakeでSNS作ったんだけどどうやって集客すんの?
0185nobodyさん2013/09/25(水) 01:34:52.18ID:QAhhx/Ja
それcakephpと関係ないような…
0186nobodyさん2013/09/25(水) 01:50:11.08ID:???
>>184
ケーキ食べ放題とかでアピール、かな・・・
0187nobodyさん2013/09/25(水) 13:03:59.31ID:???
Cake最新版を落としてきて、cake test core AllTestsをやったら
Fatal error: Class 'PagesController' not found
と出るんだけど、なにこれテスト通らないのにリリースされてんの?
0188nobodyさん2013/09/25(水) 14:54:07.29ID:???
>>187
そのテストはお前に必要なのか?
0189nobodyさん2013/09/25(水) 21:12:17.21ID:???
>>178
PHPだから遅いのは確かだが、その中でも早いフレームワークは出てきてる。

>>180
「凝った作りのサイト」ってよくわからんが技術が無いだけじゃないの?

>>184
SEO対策だね。初歩しか知らんからそれ以上はなにも言えないw
0190nobodyさん2013/09/25(水) 23:37:22.39ID:???
人間がストレスたまらないスピードなら遅いって言われる部類でも構わない
0191nobodyさん2013/09/26(木) 00:26:56.50ID:???
>>189
SEO対策は集客のためにするんじゃないぞ。

SEOは単に検索エンジンにとって適切な作りにするだけだ。
それによって、検索した時の順位が上がることがあるが、
集客できるかどうかはコンテンツ次第。
0192nobodyさん2013/09/26(木) 21:43:37.36ID:???
htmlヘルパーのhtml->imageのurlで生成されるa要素に属性をつけることは可能でしょうか?
やり方がございましたらご教示お願いします
0193nobodyさん2013/09/26(木) 22:53:10.81ID:???
出来ません。
HtmlHelper::link() メソッドでラップするなり何なりして下さいませ。
0194nobodyさん2013/09/26(木) 23:27:13.45ID:???
まだhtmlヘルパーなんてのあるんだね。
プログラムに処理させるのは簡単なループと条件判定とURLぐらいにして
普通にタグを書くべきだという結論にいたったけどね。
0195nobodyさん2013/09/27(金) 02:25:34.52ID:???
まぁまぁ賛同するわ、その意見
0196nobodyさん2013/09/27(金) 11:37:18.57ID:???
>>193
やっぱりそうなりますか
ありがとうございます

>>194
現在ページのけつにスラッシュありかなしかで相対パスが変わってしまうのを無視できるのでヘルパー使ってます
絶対パスだったら生でいいと思います
0197nobodyさん2013/09/27(金) 13:21:36.12ID:???
PHPスレがないのでここで質問しますが
PHPでバリデーションする場合ってどうやってますか?

cakephpみたいにvalidateのmessage=>'エラー'とかみたいなのがあればいいのですが
ライブラリをぐぐっても多すぎて困ってます

PHP長年やってる人はどのようにしてるのでしょうか?
いちいちif分で2ページにわたり書いてました
フレームワークを使わないでPHPでやる方法の上級者の意見を参考にしたいです教えてください
使ってるライブラリ名とかでもいいです
0198nobodyさん2013/09/27(金) 16:33:01.11ID:???
あ
0199nobodyさん2013/09/27(金) 17:16:00.06ID:???
>>197
いちいち二ページ書くのがいやだからフレームワークを使う
フレームワークを使うのが嫌なら二ページ書くしかないだろ
0200nobodyさん2013/09/27(金) 17:54:19.34ID:???
2ページって・・・
ひょっとしてノートにでも書いてるの?
0201nobodyさん2013/09/27(金) 18:11:54.74ID:???
>>197
cakephpにはvalidateのmessage=>'エラー'とかみたいなのがあるのでそれを使います。
0202nobodyさん2013/09/27(金) 20:46:51.61ID:???
複数のページにauth認証をかけていて、ログインしたuserは全てのページが見られるようになってるんですが、
特定のユーザーだけ、特定のページのみ閲覧可能にする方法はございますでしょうか
ご教示お願いいたします
0203nobodyさん2013/09/27(金) 23:51:29.97ID:???
特定のユーザーか否か判定して正しければ正規のアクションを実行し、
そうでなければエラーページ表示しろ
0204nobodyさん2013/09/28(土) 00:10:22.06ID:???
>>202
ACO, ARO を使ったアクセス制御を勉強して下さい。
CakePHPの組み込みで3種類の設定が用意されています。

データベースを用いた方法が最も柔軟で高機能ですが、
管理が複雑になるので始めはiniファイルかphpファイルを用いたやり方がオススメです。


設定ファイルは

app/Config/acl.ini.php
app/Config/acl.php

のいずれかをカスタマイズして用います。

チュートリアルには残念ながらデータベースを用いる方法しか載っていませんが、
ググればある程度日本語の資料も出てくると思います。
0205nobodyさん2013/09/28(土) 01:32:35.29ID:???
>>204
cakebookが本当にひどいな。見ない方がいい。普段はcakebookの出来には寛大だが、こればかりは無理!
0206nobodyさん2013/09/28(土) 01:43:14.41ID:???
>>196
いえ、ですからaタグのhrefのURLの部分だけでいいと言ってるんです。
0207nobodyさん2013/09/28(土) 02:24:59.99ID:???
HtmlHelper::link() にかぎらず、使い所だけおさえておけばいいんじゃない?

フレームワークってあくまでも標準を提供するだけであって、
規約でさえも単なるバリエーションの一形態として捉えたんで良いのではないかと。

規約に縛られ過ぎも良くないし、規約を無視し過ぎも良くない。
中庸が良いと思う。
0208nobodyさん2013/09/28(土) 07:50:01.51ID:???
>>203
どうもです
たしかにそれがシンプルですね

>>204
ACO,AROですね
勉強してみます
おすすめの方法の方向でやってみたいと思います
ありがとうございました
0209nobodyさん2013/09/28(土) 10:59:00.81ID:???
>>204
aco,aroっていまいち使いどころがわからない。
例えばあるページの一部のリンクの表示をユーザーによってオンオフする場合、
aco,aroを使い、かつ、ボタンの表示制御のコードも書くよね。
なんか楽になってない気がするんだよね。
0210nobodyさん2013/09/28(土) 12:27:13.28ID:???
>>209
ACO, AROしらんけど、ユーザーによってオンオフするという機能の
作り方にある種の壁がある。

・壁を乗り越えられない人

if ($user == 'admin') { 管理画面表示 }
こんなコードを書く

・壁を乗り越えた人
if ( 権限があるか?('管理画面', $user) ) { 管理画面表示 }
こんなコードを書く


前者はユーザーが増えた時どうするの?
新たにグループ作りたくなったらどうするの?
adminだけど特定の場合(無料ユーザー等)には
管理画面の一部を消したくなったらどうするの?
などなど拡張性が低い。(全体的にメンテナンスが必要になるしコードも見づらくなる)

後者の書き方をしておけば、引数のユーザーから
いろんな条件を元に表示する権限を決めるだけだから拡張性が高い。

ACO, AROは、後者の壁を乗り越えた人だけが理解できる機能だと思う。
0211nobodyさん2013/09/28(土) 13:52:09.15ID:???
>>210
adminだけど特定のユーザーに管理画面解放する使い方って?
俺の認識では、管理画面とユーザー用管理画面は
分けるべきだと思うが。共通化するなんて怖い
0212nobodyさん2013/09/28(土) 14:23:58.43ID:???
リクエストとレスポンスのお互いを集合論的に捉えることが出来るのが
ACO,AROの最大のメリット。
だと思う。
0213nobodyさん2013/09/28(土) 14:56:21.69ID:mm0OqWTD
みなさんはviewにヘルパーとか使いまくりますか?
0214nobodyさん2013/09/28(土) 15:13:51.00ID:???
ビューにヘルパーは使った事がありません
ビューは非プログラマに書かせるから、ctp自体使わずHTMLに近いテンプレートシステム使ってます
0215nobodyさん2013/09/28(土) 18:23:01.86ID:???
>>211
説明の仕方が悪かったね。

adminでもGoogle Appのように
無料契約やビジネス契約によって機能が制限されることはある。

そういう話だったが、普通に田中さん(マネージャー)とか
そういう例えにしておけばよかったね。
0216nobodyさん2013/09/28(土) 19:02:36.41ID:???
ACO,AROは名前が紛らわしい
0217nobodyさん2013/09/28(土) 20:16:14.74ID:???
ACO - アクセスコントロールオブジェクト(Access Control Object) - ある主体が取り扱う「物」
ARO - アクセスリクエストオブジェクト(Access Request Object) - ある物を取り扱う「主体」
0218nobodyさん2013/09/28(土) 20:22:28.91ID:???
>>217
何もわからねえぞ
理系か
0219nobodyさん2013/09/28(土) 22:27:35.62ID:???
たとえばdiariesテーブルに複数人のdiaryがまとめて入っているとして、
他人のdiaryが見られないように制御をするとしたら、ACO&AROの仕組みでは対応できなくない?
リクエストを受けたときに、そのユーザーが対象のactionを実行できるかできないかの制御しかできないんでしょ?
0220nobodyさん2013/09/28(土) 23:57:31.97ID:???
CakePHP1系の情報ブログに書いてる人、消してくれないかなあ…
検索時邪魔でしょうがない、確実に今開発してる人の生産性を少しずつ下げてる
0221nobodyさん2013/09/29(日) 01:03:09.68ID:???
>>219
デフォルトというか、Cakeの組み込みはそうです。
でも拡張すれば出来なくはない。
昔やったことがある。
ただ、管理が分けわからなくなって嫌になったんで、そのやり方は封印して
結局PHPの設定ファイルに書き込む方法に落ち着いた。

まぁ、俺が下手なのは認めるとして、逆に言うと、下手な人間にも使えるような
うまい仕組みとはいえないと思う。
0222nobodyさん2013/09/29(日) 01:12:36.30ID:???
下手な人でも使えるなんてのは幻想だよ。
だから技術職というものがあり、
技術があることで金を稼いでいるんだ。
0223nobodyさん2013/09/29(日) 01:54:05.25ID:???
>>220
久々に感動した自己中
0224nobodyさん2013/09/29(日) 01:58:37.63ID:???
ワロタ
0225nobodyさん2013/09/29(日) 02:04:25.72ID:???
そもそもの元凶は
2で仕様変え過ぎ
0226nobodyさん2013/09/29(日) 13:11:03.72ID:???
検索するとき期間を1年以内にすれば大体問題ないよ
0227nobodyさん2013/09/29(日) 13:37:17.57ID:???
そんなことどうやってできるの
0228nobodyさん2013/09/29(日) 13:43:46.71ID:???
あ、できたw
0229nobodyさん2013/09/29(日) 13:48:05.32ID:???
もしかしてChromeじゃないとできないとかある?
0230nobodyさん2013/09/29(日) 13:52:02.75ID:???
URLに自分でパラメータをつければいんじゃね?
&tbs=qdr:yみたいに
0231nobodyさん2013/09/30(月) 13:40:06.80ID:???
>>214
俺はヘルパー使いまくりだけど、HTMLに近いてSmartyみたいな感じ?
0232nobodyさん2013/09/30(月) 14:07:01.24ID:???
サイト全体で共通の関数はどこにかくのかな!?
0233nobodyさん2013/09/30(月) 14:08:21.98ID:???
vendors
0234nobodyさん2013/09/30(月) 17:13:49.37ID:???
自分で作るならLib
サードパーティー製ならVendors
http://book.cakephp.org/2.0/en/getting-started/cakephp-folder-structure.html
0235nobodyさん2013/09/30(月) 21:53:03.23ID:YNM1OLM4
emailコンポーネントを利用してメール送付しようとしてるのですが
送信処理はできてもヘッダーにtoがないのですが原因などわかりますでしょうか・・・
0236nobodyさん2013/09/30(月) 22:56:45.74ID:YNM1OLM4
すいません。単純にポートが閉じているだけでした・・・
0237nobodyさん2013/09/30(月) 23:32:26.73ID:???
Webアプリ開発を加速する CakePHP2定番レシピ119

っていう本がでたらしいのですが
どうですかね?
最近CakePHPはじめたばっかりなので
本かおうとおもってますが
0238nobodyさん2013/09/30(月) 23:52:23.59ID:II3eS9V+
質問です。
Cakeのwebroot下にWordpressをインストールしました。
一応稼働できてはいるのですが、
URLがルートの場合はwebroot内にあるWordpressディレクトリを表示したいのですが
htaccessで可能でしょうか?
0239nobodyさん2013/10/01(火) 04:54:23.88ID:???
思いつかん
0240nobodyさん2013/10/01(火) 09:02:42.29ID:???
こないだからCakeでテスト書いてるが、難しいな…。

どうしてもテストか実際の実行かで分岐しないといけない個所があるんだけど
Cakeで「今テスト中か?」の確実な判定はどうすればいいのでしょう

開発してたら知りたくなるこういうことが公式には載ってないんだよなーという一例
0241nobodyさん2013/10/01(火) 11:07:03.38ID:???
テスト書くのはとても高いスキルの要ることだと思うよ。
Cakeだからむずかしいってことではないと思う。
Cake本体のテストケース見てみ。
すっげー大変なことしてるから。

テスト中の判定はいくつかやりかたはあると思うけど、
それってテストの書き方に問題があるのでは?
0242nobodyさん2013/10/01(火) 11:10:07.46ID:???
なんかおかしな書き方になってしまったが、
要するにCake本体のテストもかなりえげつないことしてるけど、
それはCakeだからそうなったってことではないだろうということ。

あとどうしても判定したいなら CakeTestSuiteDispatcher.php で定数定義してるんで、
それを使ってみるとか。
あとは $_SERVER の SCRIPT_NAME を見るとか。
0243nobodyさん2013/10/01(火) 13:16:24.04ID:???
あざっす、SCRIPT_NAME見ることで解決しました
モデルにどのDBから読み込むか(マスターとスレーブ)動的に変更している所があって
テスト時にそこが本来のDB読みに行こうとしてハマってた等、回避不可能なことがいくつもあってな
いやーテストって本当難しいわ、製品作るより難しい
テストに関する情報が少ないのも難易度を上げてるな、本とかにも大抵ちょろっとしか載ってないもんな
0244nobodyさん2013/10/01(火) 14:25:16.95ID:???
まじめにTDDやったら「テスト書くほうが時間がかかるんじゃないか?」
ってレベルじゃねーな

テストを書く時間9割で
残り実コード書く時間とテスト走らせる時間が5分5分
0245nobodyさん2013/10/01(火) 14:29:15.29ID:???
デグレで困らなくなるから先行投資だと思え
と言いつつ設計と実装を同時に進めるチャランポランな俺はTDDが出来ない
0246nobodyさん2013/10/01(火) 15:03:39.29ID:???
納品して終わりならテストは書かない、そうしないととても納期に間に合わない
運用も任されたり長年使い続けるシステムならテスト書く、そうしないと1年後は毎日バグフィクスで潰れる
0247nobodyさん2013/10/01(火) 15:57:47.39ID:???
2.2.9を使っています。
外部PHPプログラムからCakeの結果(findで生成される配列など)を
受け取りたいのですが、可能でしょうか?

1.3系はググって見つかったのですが、2系は見つかりません。
もし可能なら方法を教えてください
0248nobodyさん2013/10/01(火) 16:00:33.49ID:???
>>247
1.3系でどういった情報が見つかったの?2系で基本的に違いがあるとも思えないけど。
02492472013/10/01(火) 17:43:00.64ID:???
>>248
以下で紹介されている方法を参考にしました。
ttp://web.mt-systems.jp/archives/783

1.3系はこの方法で動きますが、2系ですと一部の関数や命名規則が変わっているので、
この通りにやっても動きません。
Dispatcherの書き方の問題だと思うのですが、
ソースを見てもどうやって実行値を取得すれば良いか、わかりませんでした・・。
0250nobodyさん2013/10/01(火) 18:10:43.96ID:???
読んでみたが、何がやりたいのかさっぱり分からなかった orz...
0251nobodyさん2013/10/01(火) 18:29:49.41ID:???
>>249
そこまでしてでも組み込みたいのか。。。
素直にバッチ化して呼び出すとか、WebAPI経由で呼べばいいものを。。。
0252nobodyさん2013/10/05(土) 01:07:51.95ID:???
Cake2になってよくわからないので誰か教えてくだしあ

コントローラの途中で特定の条件を満たすとヘッダが404を出して終わり
(ブラウザには404 Not foundが表示される)としたいのだが、
CakeResponseというのを使うらしいのだがドキュメント見て

$this->response->httpCodes(404); return; とか
$this->response->statusCode(404); return; とかやっても、ページが表示されてしまう
後者は404が返るようにはなるのだが、ビューの内容も返してしまってるようだ

要は
header('404 Not Found', true, 404);
$this->_stop();
と同じ結果にしたいのだが、CakeResponseを使って書くにはどうすればいいのだろう?
0253nobodyさん2013/10/05(土) 02:07:14.57ID:???
throw new NotFoundExeption();
0254nobodyさん2013/10/05(土) 02:14:19.09ID:???
>>252
Cake2 からしか知らないけど、ヘッダの送出、ビューの指定の二つだけ行って
リターンしたらいいんじゃないの?

if ($error) {
$this->response->statusCode(404);
$this->view = 'error';
return;
}

みたいな感じで。
あと、例外を投げても一部のクラスは 404 になるんだけど、それは知ってる?
0255nobodyさん2013/10/05(土) 02:15:37.07ID:???
あ、253 が先に書いて
0256nobodyさん2013/10/05(土) 04:04:25.49ID:???
>>249

>$_GET['url']に文字列「favicon.ico」をセットすると、require_once で読み込んだ index.php の実行が dispatcher を動作せずに終了するようになっている。

バッドノウハウ過ぎて、製品にはこわくて使えねーよw

https://github.com/cakephp/cakephp/blob/1.3/app/webroot/index.php#L82

https://github.com/cakephp/cakephp/blob/2.2.9/app/webroot/index.php#L91-92

まぁ一応ソースで確認してみた。
faviconは見ての通りなくなってるので諦めろ。

と、ここまで書いてから思ったが、要するにgithubでハイライトされてる最後の2行を消したファイルを作って、
require_onceすればできんじゃねーの?
0257nobodyさん2013/10/05(土) 04:18:28.90ID:???
>>252

$this->response->httpCodes()はgetterだから意味ないぞ。

$this->response->statusCode(404);
$this->autoRender = false;
return;

これで、$this->render('index');と明示的に書かない限り、レンダリングされないので、
body部が空になると思われ。
動確はしてない。
0258nobodyさん2013/10/05(土) 13:04:41.41ID:???
初心者なんですけどfindしたときに一時的にアソシエーションをなくすってことは可能なんですか?
0259nobodyさん2013/10/05(土) 18:22:31.88ID:???
それは流石に本でも買ってきて読んで来いなレベル。
0260nobodyさん2013/10/05(土) 18:26:41.61ID:???
可能
0261nobodyさん2013/10/05(土) 19:24:53.67ID:???
>>259
俺のレベルに丁度いい本教えて
0262nobodyさん2013/10/05(土) 19:35:08.52ID:cB/QUfLz
>>261
ドットインストールと詳解でなんとかなった
実践入門とかも読んだなぁ
0263nobodyさん2013/10/05(土) 20:36:15.64ID:???
Model::unbindModel()
0264nobodyさん2013/10/05(土) 20:37:41.87ID:???
っていうか、

"CakePHP findしたときに一時的にアソシエーションをなくす"

でぐぐったら出てくるんですが・・・
0265nobodyさん2013/10/06(日) 10:47:59.39ID:???
みんな、MySQLのENUMって使ってる?
0266nobodyさん2013/10/06(日) 11:57:58.32ID:???
何回bakeしても

Your database configuration was not found

って出てくるどうすりゃいいの?

index.php と test.phpのコメント行は外しました
0267nobodyさん2013/10/06(日) 12:03:15.88ID:???
できました。

アプリケーションルートディレクトリで実行してないだけでした
0268nobodyさん2013/10/07(月) 13:48:06.58ID:???
viewの中で <?php ほにゃらら ?> としてif文やらechoやらを書くのがいまだに理解できない
0269nobodyさん2013/10/07(月) 17:46:40.29ID:???
Dispatcher::dispatch() とか
View::evaluate() を見てみると良いかも
0270nobodyさん2013/10/08(火) 00:59:47.40ID:???
そういうルールなんだよ
02712472013/10/08(火) 09:11:47.61ID:???
>>256
遅レスですみません。
その2行を消して実行ファイルでDispatcherを宣言しても
CakeRequest側の受取が上手く行かずに、データ取得できませんでした。
そもそも、どうやって外部ファイルからrequestを受け取るのか・・・

全てCakeのフォルダ内で管理したいというよりも、
一部だけCakeを使いたいor既に使っている物をCakeに変更したい
などの需要があると思ったのですが、意外と無いですね。

findはSQL文でSELECTを書けばいいし、PDOを使えば簡単に取得出来るので、
外部ファイルからCakeを通す必要性がないのかもしれません。
0272nobodyさん2013/10/08(火) 13:46:34.36ID:???
ちょと何言ってるのかよく分かって無いかもしれないんだが、
要するに結果を通常のビューじゃなくて
JSONで出力するとかって話じゃないのか?
0273nobodyさん2013/10/08(火) 14:04:35.31ID:???
それみていい事思いついた!

http://www.php.net/manual/ja/function.file-get-contents.php すればいいじゃん!

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

PHPなら2行で通信するプログラムも書けるよ!!

俺はセキュリティ的にこわくてできないけどな
02742472013/10/08(火) 16:34:38.21ID:???
>>272-273
いえ、Cake形式の配列でfindの結果を受け取りたいんです。
で、>>249の方法なら出来るのです。
でも、2系だと無理です。なので質問しました。
0275nobodyさん2013/10/08(火) 16:58:21.71ID:???
JSONで受け取れないか?
0276nobodyさん2013/10/08(火) 17:00:13.50ID:???
あぁ、HTTPリクエストとしてじゃなくて同一プロセスでか。
分かった。
0277nobodyさん2013/10/09(水) 02:02:54.44ID:???
>>274

> これで posts コントローラの index アクションを実行し、レンダリングされた結果が表示できる。

dispatch()したら、findの結果じゃなくビューをレンダリングした結果だぞ。
その1.3でできてるってのも、上記の通りだし。
02782472013/10/09(水) 09:57:04.46ID:???
>>277
1.3の場合、>>249の説明にもありますが、
以下の様なソースで、対象コントローラのfind結果を取得できます。
requestActionみたいな感じです。良かったら試してみてください。

$_GET['url'] = 'favicon.ico';
require_once 'index.php';

$Dispatcher = new Dispatcher;
$list = $Dispatcher->dispatch('/news/index', array('return' => 1));
foreach ($list as $data) {
echo $data['News']['created'] . ':' . $data['News']['title'] . "<br>";
}
0279nobodyさん2013/10/09(水) 11:28:30.56ID:???
Shell で使うShellDispatcher と ConsoleOutput と ConsoleInput を拡張して Shell を走らせてみるとか

class MyOutput extends ConsoleOutput {
public function write($messege, $newlines = 1) { // $message でデータを受け取ってあれこれする.... }
}

class MyInput extends ConsoleInput {
// 面倒なので適当に考えてくれ
}

class MyDispatcher extends ShellDispatcher {
protected function _getShell($shell) {
//... なんやかんや
$shell = new Shell($myOutput, $myErrorOutput, $myInput);
//... なんやかんや
return $shell;
}
}

----
<?php
$args = array(.....);
new MyDispatcher($args)->run();

みたいな感じで。

取得したいデータは $myOutput をパイプみたいにしてゲット。

どう?
0280nobodyさん2013/10/09(水) 14:26:40.63ID:???
天才あらわる
0281nobodyさん2013/10/10(木) 04:29:12.84ID:???
なんやかんやわろた
0282nobodyさん2013/10/12(土) 20:34:20.88ID:???
質問です。よろしくお願いします。
ユーザーが自分で更新出来るCMSを作成してます
そこでユーザーが更新するたびにgoogle等にインデックスされるようにしたいです
こういった場合みなさんはどうやってインデックスさせてますか?
cakeと関係ない質問かもしれませんが便利なやり方があるかもと思い質問しました
よろしくお願いします
0283nobodyさん2013/10/12(土) 21:40:23.39ID:???
Google買収!
0284nobodyさん2013/10/12(土) 23:39:11.12ID:???
ping送信ぐらい?
あとsitemap更新とか。
どっちにしてもGoogle次第
0285nobodyさん2013/10/13(日) 01:02:29.28ID:???
pingを自動的に送信するようにですね
ユーザーが作成したページが検索に乗るようにするって結構難しいのかな
登録・更新のたびにsitemap作成するスクリプトとか流してたら相当重くなりそうですよね
親切にありがとうございます
0286nobodyさん2013/10/13(日) 02:27:44.36ID:???
更新はともかく、新しくURIが増えるんなら、sitemap.xmlは生成したほうがいいんじゃ
0287nobodyさん2013/10/13(日) 15:45:55.81ID:fH7wT7an
>>286
ありがとうございます
深夜辺りにcronで動くように設定したいと思います
完全にスレチでした。すみませんでした
0288nobodyさん2013/10/15(火) 17:36:39.11ID:tnpde/Hs
逆アクセスを設置したいのですが、お勧めはありますか?
今は、自作 or Googleアナリティクスを考えています。
0289nobodyさん2013/10/15(火) 20:16:47.76ID:???
ACR WEB使え
0290nobodyさん2013/10/19(土) 09:01:10.85ID:???
東京からみた大阪は南チョン。
大阪から東京は北チョン。
0291nobodyさん2013/10/23(水) 01:11:43.94ID:???
コントローラの中で
getuser( $user_id, $age)
{

}
と引数を2つで指定しているとします。

http://hogehoge.com/getuser/333/25
→ OK

http://hogehoge.com/getuser/333
でアクセスされた場合に
Missing argument 2 for UserController::getuser()
というエラーが出てしまうのですが、事前にアクセスの想定されるURL以外でアクセスが来た場合に
それを上記の様なエラーが出る事無く弾くにはどうすれば良いでしょうか?


コントローラの中のファンクションで
.Net の optional 的な引数指定の方法はありませんか?
0292nobodyさん2013/10/23(水) 02:18:32.08ID:???
public function getuser() {

$args = func_get_args();
if (count($args) < 2) { ... error ... }

}
0293nobodyさん2013/10/23(水) 02:53:19.47ID:???
291です。

>>292
そんな便利なコードがあったのですね。
ありがとうございます!!
0294nobodyさん2013/10/23(水) 04:27:05.04ID:???
え?正気か?
デフォルト引数値使えよ

public function getuser( $user_id, $age = nulll ){
if(empty($age)){
// http://hogehoge.com/getuser/333 の場合
} else {
// http://hogehoge.com/getuser/333/25 の場合
}
}
0295nobodyさん2013/10/23(水) 05:35:12.35ID:???
empty使わずとも、nullしてるんだからifだけでいいじゃん
0296nobodyさん2013/10/23(水) 11:58:33.55ID:???
サンプルだからelse書いたけど、$ageがない場合にちょっと処理入れるだけってのが多くね?
だから、empty($age)から書いたが、このままじゃ分かりにくいと思ってelseを後付けしたんだ。
あと、例外的なほうから書くほうが好みというのもあるけど。
0297nobodyさん2013/10/23(水) 13:17:01.27ID:???
>>294
色んな方法があるんですね。
0298nobodyさん2013/10/23(水) 22:10:06.74ID:???
いろんなっつうか、>>292 を常用してると死ぬぞ
0299nobodyさん2013/10/23(水) 22:22:55.02ID:TvTq8mzB
>>298
なぜ?


あと、関係ないけど
ERROR:referer情報が変です。(ref1)http://www.engawa.2ch.net/test/read.cgi/budou/ほげほげ/l50

武道板になぜか書き込みができないんだけどなぜ?
0300nobodyさん2013/10/24(木) 00:57:55.24ID:ZRTs6kHv
cakePHP でMySQLの Limit 句と同じ事を以下の様なコードを記述し
試しているのですがなぜかデータの絞り込みが出来ません。
また、何もエラーも出ません。

$data_company = $this->find('all', array(
'conditions' => array( 〜 略 〜 ),
'fields' => array('company_id','company_name'),
'order' => array('sequence_number' => 'asc'),
array('offset' => '0','limit' => '5'),
));


ここでは、取得対象データが300件返って来るけれども
5行のみ取得する、という事を想定して記述しています。

どこに問題があるのでしょうか?
0301nobodyさん2013/10/24(木) 01:30:15.64ID:???
>>300
orderのカッコと、fieldsとoffsetを囲ってあるカッコを取って下さい。
0302nobodyさん2013/10/24(木) 01:32:31.18ID:???
こんな感じ。
$data_company = $this->find('all', array(
'conditions' => array( 〜 略 〜 ),
'fields' => array('company_id','company_name'),
'order' => 'sequence_number asc','limit' => '5',
));
0303nobodyさん2013/10/24(木) 02:29:39.52ID:???
>>301 >>302
ありがとうございます。
やりたかった事が出来そうです!!

※cakePHPに標準で備わっているページング処理よりも
自前でコーディングした方が後々細かい制御が出来てよいと思ってましたので
limit使ってガリガリやろうと思います。
0304nobodyさん2013/10/24(木) 02:53:38.76ID:???
>>303
絶対ページング使うべき。
ajaxにも対応してるし。
0305nobodyさん2013/10/24(木) 03:28:39.25ID:???
ですね。使わないと損。
細かい制御ができないというのなら直ちに調べたほうが良い。
0306nobodyさん2013/10/25(金) 23:49:39.14ID:AB+nrtPz
>>304 >>305
前へ 次へ ... >> <<

色々とやってましたが素直にページング使った方が楽そうなのでページングを使い始めました^^b
0307nobodyさん2013/10/26(土) 21:52:14.71ID:Zi7Pbhr3
$work_check_number には、 float型の0.4が入っています。
この状態で以下のコードを実行すると想定外の出力結果が
返って来ます。何が間違っているのでしょうか?

var_dump($work_check_number);
echo "<br>";

if ( $work_check_number <= (float)0.4 )
{
echo "debug-1<br>";
}
else
{
echo "debug-2<br>";
}

【想定出力結果】
float(0.4)
debug-1


【実際に出力される結果】
float(0.4)
debug-2
0308nobodyさん2013/10/26(土) 22:11:25.69ID:5t9gsaZZ
http://ryo511.blog.jp/archives/23887883.html
0309nobodyさん2013/10/27(日) 03:55:38.51ID:???
>>308
勉強になるますだ
0310nobodyさん2013/10/27(日) 17:26:30.48ID:dxTjMq1b
phpでfloat型の大小比較って凄くメンドクサイな。
0311nobodyさん2013/10/27(日) 17:47:06.22ID:???
>>310
大小比較とこの問題は関係ないよ
IEEE754を採用してる言語なら事情はどこも似たようなもの

$a = 0.4;
$b = 0.4 + 2.2204460492503131e-016;

var_dump($a); # float(0.4)
var_dump($b); # float(0.4)
var_dump($a == $b); # bool(false)
var_dump($a < $b); # bool(true)
0312nobodyさん2013/10/27(日) 17:57:13.61ID:???
>>310
どの言語でもそうだと思うよ
0313nobodyさん2013/10/28(月) 10:28:14.68ID:???
てか、小数点は上手くいかない場合多いから、使わないな
俺の使い方が悪いだけかもしれないが
0314nobodyさん2013/10/31(木) 15:20:24.96ID:S0k5dQpe
cakePHP の Model で SQL で言うところの IN 指定はどうやって記述すればよいのでしょうか?
0315nobodyさん2013/10/31(木) 15:25:47.92ID:???
>>314
arrayを渡す
0316nobodyさん2013/10/31(木) 16:24:28.47ID:???
informationは確かに変化しない英単語かもしれんけど、
だからってinformationテーブルにInformationControllerが正しいと、
それなりに開発が進んでから気がついたときの怒りは、
どこにぶつければいい?
0317nobodyさん2013/10/31(木) 18:32:50.75ID:S0k5dQpe
>>315
ありがとうございます。
無事出来ました!!
0318nobodyさん2013/10/31(木) 18:53:54.33ID:S0k5dQpe
select
user_id, user_age,user_nme
from users where
( user_id = 1 and user_age = 30 )
and ( user_id = 2 and user_age = 25 )
and ( user_id = 3 and user_age = 28 )

cakePHPのconditionsで上記の様なSQLを実行させる書き方はありますか?


'conditions' => array(
'users.user_id =' => 1,
'users.user_age =' => 30,
),

現在ループしながら複数クエリを発行しているのですが
纏めて1回のクエリで必要データを取得したいと考えています。
0319nobodyさん2013/10/31(木) 20:03:43.30ID:???
>>316
英語の勉強を疎かにしてきた自分を呪えば良いと思うよ
まぁ、冗談は抜きにして、英語の基礎ができてないと色々とキツイよな。
0320nobodyさん2013/10/31(木) 20:07:38.67ID:???
>>318
あの・・・ and はカッコ外しても論理構造同じですが。

もし 'or' を入れたいのなら、キーに 'and' とか 'or' とかを用いて
幾重にも入れ子に出来たはず。

キーが数値の場合は 'and' として解釈するんだったっけ。
0321nobodyさん2013/10/31(木) 20:08:43.64ID:???
っていうか、その元のクエリ何だよw
0322nobodyさん2013/10/31(木) 20:10:49.38ID:???
(間違い) and はカッコ外しても論理構造同じ
(正しい) and だけの場合はカッコ外しても論理構造同じ

ミスった
0323nobodyさん2013/10/31(木) 20:11:08.33ID:pvMz+FsK
>>320 >>321
間違えました。

ただしくは、

select
user_id, user_age,user_nme
from users where
( user_id = 1 and user_age = 30 )
or ( user_id = 2 and user_age = 25 )
or ( user_id = 3 and user_age = 28 )

です。 キーに or を入れて試してみたいと思います。
0324nobodyさん2013/10/31(木) 20:15:46.01ID:???
$cond1 = array('user_id' => 1, 'user_age' => 30);
$cond2 = array('user_id' => 2, 'user_age' => 25);
$cond3 = array('user_id' => 3, 'user_age' => 28);

$conditions = array('or' => array($cond1, $cond2, $cond3);
0325nobodyさん2013/10/31(木) 20:23:43.34ID:pvMz+FsK
>>324
あざーすっ!
コードがすっきりしました!!
0326nobodyさん2013/10/31(木) 20:38:39.33ID:???
まあmysqlはor使うと遅くなるんだけどね
0327nobodyさん2013/10/31(木) 23:42:41.93ID:???
漢ならフルスクラッチ
0328nobodyさん2013/11/01(金) 00:32:03.09ID:???
女傑ならソケットでMySQLプロトコル
0329nobodyさん2013/11/01(金) 17:39:10.37ID:???
>>316
bakeすればいいのに
0330nobodyさん2013/11/01(金) 17:45:57.99ID:???
bakeはほぼ使わないなぁ
0331nobodyさん2013/11/01(金) 22:05:00.04ID:???
テーブルのレコードに突っ込んでる時点で数えられるから問題ない
外人がfishesという単語を見て魚の缶詰を思い浮かべるのと同じ
0332nobodyさん2013/11/02(土) 01:30:30.01ID:???
bake 使わない開発が想像できないんだが
0333nobodyさん2013/11/02(土) 09:23:48.01ID:???
いつも0から作り始める人ならそうだろうね
0334nobodyさん2013/11/02(土) 14:49:14.45ID:YSV0Zcpf
bake とか使った事がない。
そもそも何に使うの?

良い解説サイトがあったら教えてください。
0335nobodyさん2013/11/02(土) 18:00:44.69ID:???
別にbakeを使う必要はない。
bakeってのはCakePHPが参考した
Railsで使われていた仕組みで、


たんに、こんなに早く作れるんだよと
なんども練習して撮影したデモを
一秒でも短くするために生まれた道具にすぎない。

そう。3分クッキングのように、
あらかじめ用意しておきましたって
コードを生成するもの。
0336nobodyさん2013/11/02(土) 18:25:11.54ID:???
Searchプラグインって標準では、区切りに全角スペースでは、複数単語検索できないんだね
不便だわ
0337nobodyさん2013/11/02(土) 20:32:04.62ID:???
ある程度まとまった複数のモデルを bake all して、
それをごそっとプラグインに隔離して
適宜削ったり追加したり開発するのはとても便利で早い。
0338nobodyさん2013/11/02(土) 20:42:12.21ID:oRF20owz
html5 で作られた infinite mario すげぇえ。

とおもってたら グラディウスまで作ってる強者がいた。

ここまで出来るのか。。。
0339nobodyさん2013/11/02(土) 20:43:40.35ID:oRF20owz
http://rappdaniel.com/experiment/cubed/

html5 でここまでできるのか。
0340nobodyさん2013/11/02(土) 22:07:26.87ID:???
うちは管理用の画面作るときはまず bake から始めるけどなぁ。
誰が作ってもほぼ同じものができるのは良いよ。
テンプレートをカスタマイズしてるから
元の姿とは全くと言っていいほど違ってはいるけど。
0341nobodyさん2013/11/02(土) 22:18:01.50ID:???
いや、ファイルコピーすればいいですし・・・。
0342nobodyさん2013/11/02(土) 22:57:11.17ID:???
>>341
(言ってはいけないことを。。。)
0343nobodyさん2013/11/03(日) 00:08:16.61ID:???
bakeって何が化けるの?
0344nobodyさん2013/11/03(日) 00:21:41.67ID:???
>>343
つまらん
0345nobodyさん2013/11/03(日) 20:14:17.87ID:???
管理画面はbakeするけど、フロント側はちょっとねぇ。
モデルも開発中盤になってくると、bakeしただけで手の入ってないモデルがいくつか出てくるから、
コピーして必要なとこだけ変えたほうが早かったりするんだよな。
0346nobodyさん2013/11/03(日) 23:30:20.68ID:???
bakeって言ったって
完全に全自動化出来るわけじゃなく、
色々質問されるしな。
前回なんて答えたかなんて覚えていないし、
bakeをする回数は少ないのですぐに使い方を忘れる。
0347nobodyさん2013/11/04(月) 01:31:23.58ID:???
>>346
うちはとにかく bake all だわ。
アソシエーションの制約なんか厳しくて、
かなり CakePHP のルールを守らないと通らないので、
それがかえって誰が作っても同じ出来になるという安心感がある。

それに、コマンドで個別に設定するぐらいならファイル直接触ったほうが楽。
0348nobodyさん2013/11/05(火) 22:46:56.28ID:HKwreGpo
cakeって便利だけど最初の設定って結構面倒じゃないですか?

あとは使っているサーバのスペックが足りなくて
別サーバに引っ越しをする時とか結構手間に感じるのですが皆さんは如何ですか?
0349nobodyさん2013/11/06(水) 00:41:09.71ID:???
なんかCakePHPならではの設定することあったっけ?
0350nobodyさん2013/11/06(水) 01:43:53.69ID:???
DBの設定は面倒だけど、1ファイルの修正で済むからな。
あと、FTPでアップした時のtmpのパーミッション設定は地味に面倒w
0351nobodyさん2013/11/06(水) 07:11:23.30ID:jY+jk4/6
>>350
確かにtmp面倒くさいよな
0352nobodyさん2013/11/06(水) 12:09:46.63ID:???
>>350
俺、多分変更してないけど問題ないな。
0353nobodyさん2013/11/06(水) 19:21:57.33ID:CGtOvjTe
>>349
例えばcakePHP2 で作っていたシステムを
新サーバ+cakePHP3 に移行する時とか大変じゃない?

cakePHP3をサーバに設定した後に、
cakePHP2のソースを手動でしかるべき箇所に移動させて
しっかり新バージョンでも動くかどうか検証とかしなくちゃならないでしょ?


一発で移動とか出来ると楽なんだけどね。
0354nobodyさん2013/11/06(水) 19:28:12.00ID:???
>>353
既存プロジェクトで使ってるフレームワークのメジャーバージョンを上げたら、
そりゃぁ大変だろうよ。
CakePHPに限らずな。
0355nobodyさん2013/11/06(水) 21:06:22.08ID:???
Cake3ってもう使ってる人いるの?
0356nobodyさん2013/11/06(水) 22:24:56.97ID:???
cakePHP2.0 で
ログインしていない場合には閲覧させない様な
クローズドコンテンツを作成しよとしています。

そこで、ログインしていない場合には閲覧させない為に
コントローラのファンクションの中で以下のコードを書いているのですが、
コントローラのファンクションの中では毎度以下の if(ログイン判定)  の
コードを記述する必要があるのでしょうか?

HogeController.php

public function top()
{
if(!$this->Auth->login())
{
//ログインしていないので特定ページ(TOP)へ飛ばす。
return $this->redirect($this->Auth->redirect());
}
}
0357nobodyさん2013/11/06(水) 22:29:20.54ID:???
>>356
Authコンポーネントを良く調べろ。
0358nobodyさん2013/11/06(水) 22:32:14.86ID:???
>>357
'loginAction' => Array('controller' => 'tops', 'action' => 'index'),

色々と試したみたのですが、これでOKですか?
0359nobodyさん2013/11/06(水) 22:39:31.12ID:???
>>358
http://book.cakephp.org/2.0/ja/tutorials-and-examples/blog-auth-example/auth.html
0360nobodyさん2013/11/07(木) 00:07:19.08ID:???
Google Cromeで指定した文字列をクリップボードに
コピーするプログラムを作っています。

$('#id_hoge' ).click( function()
{
var str_text = "あいうえお";
var copyArea = $("<textarea/>");
copyArea.text(str_text);
$("body").append(copyArea);
copyArea.select();
document.execCommand("copy");
copyArea.remove();
});


"あいうえお" がクリップボードにコピーされると思ってたのですが
なぜかされません。cromeでは使えないのでしょうか?
0361nobodyさん2013/11/07(木) 03:12:22.57ID:???
プラグインの日本語情報が異常に少ないんだよね
これじゃなかなか広まらないな
0362nobodyさん2013/11/07(木) 14:17:00.21ID:???
広まらないっていうか、これからどんどん情報減ると思うよ。
自分で調べて情報公開したりするような開発者は、
もうCakePHPなんて飽きてるだろうし。
今は、普通に使えるようになってる人が、普通に仕事をこなすのに使ってる感じじゃね。
書籍も一時期は沢山出てたけどいまはそうでもないしな。
0363nobodyさん2013/11/07(木) 14:34:27.14ID:???
猫も杓子もcakephpの時代が異常だっただけ
今はいいフレームワークがいっぱいあるし
あえてcakephpを選ぶ理由がないからね
0364nobodyさん2013/11/07(木) 14:44:14.56ID:cHcjC9vh
FWはもう、cakePHPに統一しようぜ。
0365nobodyさん2013/11/07(木) 14:52:19.69ID:???
統一するとしてもcakephpだけはやめて
codeigniter, fuelphp, laravel, yiiのどれかで
0366nobodyさん2013/11/07(木) 14:52:21.96ID:???
cakephpは日本が異常だっただけよ
今もオフショア先では大人気
0367nobodyさん2013/11/07(木) 14:55:55.60ID:???
>>365
fuelphpはpsr-0に対応しなかったこととかいろいろあって人気つかないな
codeigniter、laravel、yiiは世界では人気だけど日本だと微妙
0368nobodyさん2013/11/07(木) 15:04:27.70ID:???
http://www.techempower.com/benchmarks/#section=data-r7&;amp;hw=i7&amp;test=json

cakeぼろぼろだ
昔のライバルsymfonyには辛うじて勝利
0369nobodyさん2013/11/07(木) 16:27:36.49ID:urHtWp+p
FWといよりプログラマのスキルによるんじゃねーの。
レスポンスとかさぁ。
0370nobodyさん2013/11/07(木) 18:19:09.69ID:???
codeigniterとか作りが前時代的過ぎてなぁ・・・
その4つの中ならlaravelがいいな
0371nobodyさん2013/11/07(木) 18:25:45.15ID:???
Sinatra風のルーティングは見やすいんだが
PHPとは相性が悪い
リクエストの度にパスの数だけClosureオブジェクトを作ってると考えたらぞっとする
0372nobodyさん2013/11/07(木) 20:37:01.47ID:???
Sinatra風ルーティングは、マイクロFW系向きじゃないかな
0373nobodyさん2013/11/07(木) 20:55:50.09ID:TVGLaC0N
悪い事は言わない

Yiiを使える、進めるヤツはせめてToeic 800点位とってから使おうな。
英語も出来ないのに間隔で変な名前をあちこちに量産されたら迷惑
0374nobodyさん2013/11/07(木) 23:10:35.42ID:???
>>373
なんでYii限定?
0375nobodyさん2013/11/07(木) 23:33:39.73ID:???
TOELCといえばYii
0376nobodyさん2013/11/07(木) 23:35:41.14ID:???
わけがわからないよ
0377nobodyさん2013/11/08(金) 02:55:52.80ID:???
漢字もちゃんと使えてない人に言われてもなー
0378nobodyさん2013/11/08(金) 19:07:09.93ID:???
話題のbakeを試してみたんだけど、命名規則通りにテーブルを作って
cake bake all モデル名 とやったんだけど、
Error: Table ないテーブル名 for model ないモデル名 was not found in datasource default.
とエラー。生成されたモデルを見てみると、勝手に存在しないモデルの$belongsToが書かれてた。
これは何?なんでそうなるのでしょう。
0379nobodyさん2013/11/08(金) 19:51:29.62ID:???
>>378
テーブル名書けよ
0380nobodyさん2013/11/08(金) 22:22:57.25ID:???
テーブル名だけじゃなくてスキーマ全部と、
DATABASE_CONFIG::$default['prefix'] の値も忘れずに
0381nobodyさん2013/11/09(土) 01:13:36.00ID:???
IISにそのままCake載せただけじゃ動かないですよね?
どうすりゃいいんですか?
0382nobodyさん2013/11/09(土) 02:28:19.11ID:???
IISなんて知らんがな
0383nobodyさん2013/11/09(土) 11:02:53.97ID:???
>>381
チュートリアルに書いてるじゃん
0384nobodyさん2013/11/09(土) 22:59:18.49ID:???
え、IISかい。Apache使わないの?
0385nobodyさん2013/11/10(日) 08:55:33.38ID:0LvUSNX1
すみません教えて頂ければ幸いです
CakePHP2.3でフォームで確認画面を制作しているのですがバリデーションが効きません
自分で調べていったんモデルにはセットするとの事で
$this->Model->set($this->request->data);
if($this->Model->validates()){成功の時の処理}
上記の様にしているのですがエラー等も全く出ずただバリデーションが効いていない形です
よろしければどなたか教えて頂けませんか
0386nobodyさん2013/11/10(日) 11:47:08.36ID:???
どんなコードを書いているかも分からないのに答えようがない
0387nobodyさん2013/11/10(日) 19:22:06.34ID:???
より高度なRoRに引っ越しすることをお勧めしよう
Railsスレで質問すれば俺が答えてあげよう
その代わり最大限の敬意を示し、パソコンの前で土下座したまえ
そお誠意が俺まで伝わってきたら答えてあげる

多くの有力企業が採用するRoRにようこそ
0388nobodyさん2013/11/10(日) 20:12:12.51ID:???
今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」
http://blog.sumyapp.com/2013/07/no-recommend-rails/
0389nobodyさん2013/11/10(日) 20:28:10.59ID:???
>>388
書いてある内容がイマイチわからん。
0390nobodyさん2013/11/10(日) 21:34:39.51ID:???
人の作ったプログラム触るのcakephpでも嫌なんだけど、俺だけ?
できれば一から作りたいと思ってしまう。
0391nobodyさん2013/11/10(日) 22:07:59.18ID:???
>>389
CakePHPやる前にPHPはちゃんと理解してんだろうな?てことじゃないかな
0392nobodyさん2013/11/10(日) 23:43:46.77ID:???
というか勉強しなきゃ使えないようなものか?て気がする
0393nobodyさん2013/11/11(月) 01:04:57.32ID:???
cakephpやりながらphp覚えてもいいと思うね
0394nobodyさん2013/11/11(月) 02:24:03.68ID:???
ここはやはりだめだ、Stackoverflowで聞いてくる
0395nobodyさん2013/11/11(月) 06:16:43.22ID:???
それが2chというものだよ
0396nobodyさん2013/11/11(月) 11:04:10.26ID:???
捨て台詞残さずにさっさと消えろよ
0397nobodyさん2013/11/11(月) 12:40:31.09ID:???
>>394
解決していないのはどの質問だろうか?
0398nobodyさん2013/11/12(火) 00:26:13.49ID:O3AZzxQU
1つだけのチェックボックスをcakePHPヘルパーを使ってレンダリングしようとしています。
その為に次のコードを記述し
echo $this->Form->input( 'totaling' , array(
'type' => 'checkbox',
'label' => false,
)); ・・・�@

実行すると

<div class="input checkbox">
<input type="hidden" name="data[User][totaling]" id="UserTotaling_" value="0">
<input type="checkbox" name="data[User][totaling]" value="1" id="UserTotaling">
</div>

こんなコードが生成されてしまいます。

本当は次の様なタグが生成される事を想定しています。
�@のコードの何処に問題があるのでしょうか?

<input type="checkbox" name="data[User][totaling]" checked="checked" id="UserTotaling">
0399nobodyさん2013/11/12(火) 00:56:26.23ID:???
ヘルパーでタグ生成とかやめてほしいわ。
調べてみたけど、Railsもそうなんだろ?

HTMLはウェブデザイナーのもの
だからプログラミング要素を極限まで減らすべき。
そういった考えで作られた
フレームワーク(テンプレートエンジン)って
無いものかねぇ。

でも低機能なフレームワークを求めてるんじゃないんだ。
こういうinputみたいなものはそのままHTMLでかけて
面倒な部分を改善できるそんなフレームワーク
0400nobodyさん2013/11/12(火) 01:00:45.10ID:???
あぁ、ぐちっちゃった。

>>398
その質問の答はCakePHP使ってないんで知らないけど、
なんでそんなコードが出力されるか知ってる?

それはチェックボックスは、
チェックしたらdata[User][totaling]=1が送られてくるけど、
チェックしなかった時data[User][totaling]=0ではなく、
なにも送られてこないんだよ。最終行のコードではね。

それの対策が 、「こんなコード」なわけ。
ここまで言えば、どうすればいいかわかるんじゃない?

そう、チェックしない場合に値を送る機能を
OFFにする設定があるはずだ。
0401nobodyさん2013/11/12(火) 02:01:30.93ID:???
>>399
formヘルパーは使った方がいいと思うよ。htmlヘルパーは使わない方がいいかもだけど。
0402nobodyさん2013/11/12(火) 02:22:03.84ID:???
同じくFormHelperやHtmlHelper嫌い。
でも、使わないとハマったり困ることあるから、しぶしぶ使ってる。
0403nobodyさん2013/11/12(火) 08:35:49.27ID:???
>>399
JavaにはほぼHTMLをテンプレートに使えるのあるけどPHPは無理だろうな
0404nobodyさん2013/11/12(火) 09:05:04.81ID:???
bakeのビューのテンプレートで、どこかにかっこいいの落ちてたりしないでしょうか
まあデフォルトのでもOKっちゃOKなんだけど
0405nobodyさん2013/11/12(火) 10:32:08.86ID:ZxfwGxWG
>>400
サンクス。
checkboxをcakePHPのヘルパー使って書くとなぜ hidden が生成されるかの理由が分かりました。
0406nobodyさん2013/11/12(火) 11:37:30.04ID:???
>>403
Javaってどれのことだ?

ZPT系を使えば良いだけだと思うんだが
0407nobodyさん2013/11/12(火) 11:41:20.37ID:???
>>399
もはや、デザイナーとの役割分担のラインは変わってるよ
旧態依存の開発やってれば別だろうが
0408nobodyさん2013/11/12(火) 13:01:19.39ID:???
FormHelper はタグのラッピングが頑固なところはあるな。
クラス名とか触れないところ多いし。
妥協すればとても便利なツールではあるんだが。
0409nobodyさん2013/11/12(火) 13:42:41.13ID:???
Cakeのヘルパーみたいなローカルルール、外注のコーダーに教え込んで使わせる気にはとてもならんから
ヘルパー使ったこと無いわ
0410nobodyさん2013/11/12(火) 16:29:44.75ID:???
>>403
まさかMayaaのことじゃないだろうな?

>>404
探せばBootstrapベースのがあるんじゃね。
0411nobodyさん2013/11/12(火) 17:01:24.88ID:???
>>407
同意。CSSですら、Sass使ってプログラム的な管理するからな。
デザイナーはデザインだけやって、
コーディングはコーダーではなく、プログラマがやる時代になるよ
0412nobodyさん2013/11/12(火) 17:02:26.87ID:GncxjoFv
プログラマ=コーダーだろ
0413nobodyさん2013/11/12(火) 17:14:40.96ID:???
>>412
別の意味での旧態依存の世界の話だ
0414nobodyさん2013/11/12(火) 17:33:48.33ID:???
どう考えてもフレームワークいじる奴とビュー作る奴は分担した方がいい
0415nobodyさん2013/11/12(火) 20:55:59.85ID:jQBt36at
システムだと一通り何でも出来るけど
どうもWEBデザインがうまくないと自分でも思う。

どうやったら見栄えの良いサイトが作れるのかな?

先ずは何から勉強すべきですか?
0416nobodyさん2013/11/12(火) 21:11:38.61ID:???
>>415
ttp://getbootstrap.com/2.3.2/getting-started.html
0417nobodyさん2013/11/12(火) 21:17:21.91ID:???
>>415
Bootstrapとかの上からデザインしてくれるデザイナーがいっぱいいるよ
0418nobodyさん2013/11/12(火) 21:22:11.96ID:jQBt36at
>>416 >>417
うーん。いまいちそのサイトのテンプレートもカッコよくないですね。
何かWEBデザイナの作成する様なスタイリッシュなデザインのサイトを自分で作れる様になりたいんですよね。

よく無料テンプレートサイトとかあるでしょ?
あーいうサイト(デザイン)テンプレートを自分で作れる様になりたいのです。
0419nobodyさん2013/11/12(火) 21:39:26.80ID:???
>>418 PHPと全然関係ないけど、平面構成の本とか読んでみるのはどうかしら
0420nobodyさん2013/11/12(火) 21:48:23.37ID:???
bootstrapのステマが酷い
スルー推奨
0421nobodyさん2013/11/12(火) 22:04:10.58ID:???
ほれ bakeの解説

ttp://hijiriworld.com/web/cakephp-bake/
0422nobodyさん2013/11/12(火) 22:16:50.91ID:???
なんかうまく読み込めないな、そのブログ
無駄にJS使うのやめて欲しいなあ、ただのブログのくせに
0423nobodyさん2013/11/12(火) 22:23:23.76ID:jQBt36at
>>419読んでみます。

>>421
ステマ臭いけど確かに見易い解説サイトですね。
自慢したいのかしら。
0424nobodyさん2013/11/12(火) 22:35:23.88ID:???
読んだけど初歩的なことしか書いてなかった
誰でも知ってることを丁寧に解説しても無価値だな
0425nobodyさん2013/11/12(火) 22:36:21.38ID:???
まずは、グリッドデザインを勉強すればいいよ。
それがある程度できれば、崩してかっこいいデザインが出来るようになる。
0426nobodyさん2013/11/12(火) 23:22:35.94ID:jQBt36at
ログインしていないと閲覧出来ないページにおいて
サーバ再度のバリデーションを作らずに
javascriptだけだと不味いですか?
0427nobodyさん2013/11/12(火) 23:57:17.43ID:SAG0peet
ケースバイケース
0428nobodyさん2013/11/13(水) 00:11:16.12ID:???
>>426 >>427
時間が無いので認証必須のページではJavaScriptだけ
実装していますが、セキュリティー的に問題は無いか若干心配しています。

そもそも認証されていないとサーバにどんな値がポストされようが
そもそもリクエストは遮断される筈なので安心

と考えているのですが・・・
0429nobodyさん2013/11/13(水) 00:21:37.21ID:???
時間がないのに2chで質問は出来るんだな
0430nobodyさん2013/11/13(水) 01:39:40.82ID:???
>>407

え? 役割分担が変わったって
まさか君んところはプログラマが大変な方向に変わったの?
大変だねぇ。間違った方向に進んでしまったね。

>>411
> 同意。CSSですら、Sass使ってプログラム的な管理するからな。
Sass使ったからって、プログラム的な管理をしたらダメだよ。

Sassは、文法的にはSCSSを使う。これでCSSと互換。
計算やifやforなどのプログラム的要素は原則として使わない。
今まで使わないでできたんだから、大半は使わないで出来るはず。

SCSSで使っていいのはネストとextendとplaceholder等
計算できるようになった。ifやループが出来るようになった。わーい。
なんて考えなしに使うから、プログラマしか扱えないようになるんだよ。

自分の仕事を大変にするようなことはするなよ。
他人でも出来るようにしておけば、自分が楽になるぞ。
0431nobodyさん2013/11/13(水) 03:01:46.38ID:???
純粋な善意でもステマと言われるこのご時勢
嫌だね〜
0432nobodyさん2013/11/13(水) 08:46:45.51ID:???
役割分担が変わったのは自社サービスやってるとことかだろ
JavaScriptの問題だろ

受託とかのほとんどは役割分担かわってない
0433nobodyさん2013/11/13(水) 09:09:21.54ID:???
JavaScript?

下手なプログラマが作ると、JavaScriptで
cssいじったりするよね。

そういう話だったら、プログラマが馬鹿なだけってことだけど。

普通はJavaScriptでいじるのはCSSクラス名だけで
原則としてCSSはいじらない。
0434nobodyさん2013/11/13(水) 09:27:26.37ID:???
え?普通はJavascriptでCSSのIDもクラスもいじると思うが。
Googleのコーディング規約とか、そう書いてるよ。
どこの原則なのか気になるなー
0435nobodyさん2013/11/13(水) 09:35:30.68ID:???
受託だろ
0436nobodyさん2013/11/13(水) 09:39:16.24ID:???
お金のあるなし関係あるだろな。
デザイナにCSSもHTMLも任せた方が安上がり。
0437nobodyさん2013/11/13(水) 10:23:29.63ID:???
もっと言えば、デザインもプログラムも扱える奴に
一括で任せたほうが安上がり。
CMS程度ならそれほどデザイン力も求められないしな。
0438nobodyさん2013/11/13(水) 12:38:34.67ID:???
>>433はクラスやIDの操作までは問題にしてないと思う
CSSのプロパティの有無や値をJavaScriptで直接いじるのはよろしくないって意味だろ?
見た目とロジックを両方JavaScriptに任せるのはあまり良い設計じゃない

アニメーションなんかはある程度仕方ないけど
0439nobodyさん2013/11/13(水) 12:57:43.60ID:???
>>438
役割分担のJavaScript部分で噛み付いてるから、もろ問題にしてる
0440nobodyさん2013/11/13(水) 13:27:54.87ID:1DbvJ5ZT
>>437
なかなかいない。どちらかよりだろ。
0441nobodyさん2013/11/13(水) 13:33:26.00ID:???
>>440
いると思うけどな。マッチングサイトとかその手の募集ばかりじゃん。
あんなもん、複数人数でやってたらどうやっても赤だよ
0442nobodyさん2013/11/13(水) 13:39:20.44ID:???
>>440
基本プログラムよりだよ。デザインはテンプレ系で済ませて
これ以上のデザインは後からやってくださいってのが多い

デザイナに今求められてるのって、主なテンプレ系で作られたサイトに
CSS被せてデザインする能力
0443nobodyさん2013/11/13(水) 14:30:30.66ID:???
>>433
こないだやった仕事が、まさにそれをやっててイラっとした。
cssファイルを見ても何処にも書いてないスタイルがあっておかしいなと思ったら
$('#hoge').css()で色々設定してあんの。

あとついでに、cssもcssで、

.mB7{
margin-bottom: 7px !important;
}
.mB10{
margin-bottom: 10px !important;
}

みたいなのが、left top right bottom全部に、数px毎の間隔で定義してあって、すごい困った。
0444nobodyさん2013/11/13(水) 21:38:36.71ID:???
>>442
> デザイナに今求められてるのって、主なテンプレ系で作られたサイトに
> CSS被せてデザインする能力

CSS+HTMLだな。
CSSだけで完結することってないし。

当たり前だけど、HTMLとCSSはウェブデザイナーの仕事
Sassももちろんウェブデザイナーの仕事だよ。
あれはCSSの拡張でしかないんだから。
(Sassの動作環境を作るのぐらいは手伝うけど)

そしてこれも当たり前だけど、JavaScriptはプログラマの仕事。
ただし、JavaScriptでデザインを変えてはいけない。
変えるのはクラス名ぐらい。

テンプレートはHTMLがメインなのでウェブデザイナの仕事
テンプレート変数なんかはプログラマが特殊なタグを
置かせてもらってる的な感覚でやるべき。
ウェブデザイナーもバカじゃないので、教えたルールは理解してくれる。

ウェブデザイナーーが手に負えなくなるぐらいコードが含まれるのであれば
それはプログラマのテンプレートの使い方が悪い。

うーん、上で言ったのと同じことを言ってるだけだなw
0445nobodyさん2013/11/13(水) 21:51:20.71ID:???
受託だろ
0446nobodyさん2013/11/13(水) 21:52:31.94ID:???
>>443
>$('#hoge').css()

こうやるとコメントアウトが楽なんです。

って言われて俺もイラっと来た記憶ある
0447nobodyさん2013/11/13(水) 22:17:37.75ID:???
htaccess使えないサーバでもCake2系を使う方法ってありませんか?
0448nobodyさん2013/11/14(木) 01:37:31.90ID:???
あれ?PATH_INFOを使って動かなかったっけ?
0449nobodyさん2013/11/14(木) 01:57:11.42ID:???
bootstrap3ってどう?
ここだとboostcakeか
0450nobodyさん2013/11/14(木) 02:00:23.48ID:???
BoostCakeになってから、Bootstrapベースでのbake機能がなくなったから使ってないなぁ。
Bootstrap3ベースのスケルトンで良いのがあったら使おうかなって思ってるけど、
積極的には探してない。
0451nobodyさん2013/11/14(木) 02:04:40.49ID:???
ありゃ、それはダメだね
0452nobodyさん2013/11/14(木) 02:53:48.18ID:???
bootstrapはセマンティックじゃないから
使う気がしねぇ。
CSSの文化に逆行してる。
0453nobodyさん2013/11/14(木) 04:30:33.71ID:???
cakephp初心者なんですけど、phpの関数ってcakeでも使えますか?
前のページのURLを取得したいんですけど
…
0454nobodyさん2013/11/14(木) 05:08:41.87ID:???
・・・流石に呆れて閉口だわ
0455nobodyさん2013/11/14(木) 05:10:58.85ID:???
>>453
使えるよ
0456nobodyさん2013/11/14(木) 11:45:51.79ID:???
>>452
そういうのをこだわる人は
Bootstrapで使ってるLessを読み込んで
セマンティックに使うことができますよ

SASSとかでもできるな、変換されたのあるしね
0457nobodyさん2013/11/14(木) 12:14:49.49ID:???
ロマンティック
0458nobodyさん2013/11/14(木) 14:08:00.47ID:???
SASSって言っても、HTMLやCSSはセマンティックになるんだろ?
bootstrap方式だと
<div class="red line box">
みたいな感じだけど、セマンティックなら
<div class="main-box">
みたいにするよな。
0459nobodyさん2013/11/14(木) 15:30:11.14ID:???
>>458
使い方の問題。
ああいう系のCSSそのまま使ったら
どういう作り方、使い方してもセマンティックにならない
0460nobodyさん2013/11/14(木) 15:32:38.35ID:???
http://semantic-ui.com/

どう思う?
0461nobodyさん2013/11/14(木) 15:50:12.29ID:???
>>460
<main class="ui three column grid">

こういうのがもう嫌気さすわ。CSSの意味があるのかと
0462nobodyさん2013/11/14(木) 15:56:57.10ID:???
>>458
echo '.main-box { .box; .line; .red; }' > less/my-components.less
echo '@import "my-components.less";' >> less/bootstrap.less
grunt

BootstrapもLESSも使ってないからよく分からんがこれでいいだろ
要らんクラスが出来てもいいならだが
0463nobodyさん2013/11/14(木) 16:15:36.03ID:???
>>458
の1行目が理解できないのだが
0464nobodyさん2013/11/14(木) 17:05:51.55ID:???
Bootstrapのスレ荒らしてた奴と
セマンティックって騒いでる奴が同じ奴に思える
0465nobodyさん2013/11/14(木) 17:18:19.93ID:UudgqYGt
初心者なのですが、ログインしたユーザーが登録情報を更新できるようにしたいのですが、users/editにアクセスしたときにログインユーザー以外は弾きたいです。Controllerは
public function edit($id = null) {
$this->User->id = $id;
if (!$this->Auth->user('id') == '$id') {
throw new NotFoundException(__('ユーザー違います'));
}
}
URLを他のログインしていないユーザーに変えるとそのまま表示されてしまいます。
どうすればログインユーザー自身の情報のみを表示できるのでしょうか?
0466nobodyさん2013/11/14(木) 17:37:41.41ID:???
>>465
cookbookでAuthの説明読めよ
$this->Auth->deny('edit');
を書いて、認証が必要なページを指定すればいいだろ
0467nobodyさん2013/11/14(木) 23:18:44.29ID:???
>>464
俺にはお前が、そのBootsrapのスレで
こてんぱんにやられた奴に見えるよw
0468nobodyさん2013/11/14(木) 23:28:19.13ID:???
>>467
負けてたのおまえのほうじゃん
0469nobodyさん2013/11/15(金) 00:30:04.73ID:???
>>468
いや、俺はそのスレなんか知らんよ。
俺はそのスレを見たことないが、
お前がそのスレにいたことは、お前の発言から確かだろう?
そしてその出来事を今も忘れなれない。
思い出してしまう。君、病気だよ。
0470nobodyさん2013/11/15(金) 00:33:55.48ID:???
そもそも「負けてた」ってのから、何と戦ってるんだって話だがw
0471nobodyさん2013/11/15(金) 00:44:32.60ID:???
俺ROMってたけど
SASSとBootstrapという
場違いの喧嘩を売ってた奴がいたって感じだったな
0472nobodyさん2013/11/15(金) 01:33:42.42ID:???
まぁそんなにセマンティックとかに明るくない俺でも、
Bootstrapは使ってみると、騒がれてるほど洗練されてないなとは思った。

でも楽なんだよねぇ。
とりあえずclass="well"って書けば、無難な枠ができるし。
wellの中にちょっとした欄外のボックスが欲しくなって、
あと2個くらい枠の種類があればなとか思い始めてしまう。
0473nobodyさん2013/11/15(金) 04:03:21.24ID:???
ただ問題は、HTMLが醜くなるのと
メンテナンス性が下がるっってところだよな。

いざデザインを変えようと思うと、
CSS的には、CSSファイルを弄るだけのはずのことなのに、
Bootstrapを使うと全HTMLファイルにわたって
参照箇所を探して個別に修正しないといけない。

これもう普通のCSSの使い方じゃないよ。
0474nobodyさん2013/11/15(金) 11:12:17.32ID:???
Bootstrapとかああいう系がセマンティックなはずがない
0475nobodyさん2013/11/15(金) 14:16:20.80ID:???
>>473
俺もそう思う。やたらOOCSSなんて言われてるから
CSSもオブジェクト指向型に変えないといけないのかと悩んでいるが、
HTMLやCSS両方変更しなきゃいけないってのに違和感あるわ
0476nobodyさん2013/11/15(金) 14:27:36.43ID:???
>>475
Bootstrapをただ使うだけだとOOCSSとは言わんと思うよ。
OOCSSはSASSとかLESSとかあそこらへんで組まないと。

そうするとHTML変更する必要はなくなる。
0477nobodyさん2013/11/15(金) 14:27:39.11ID:???
OOCSSで一番悪なのはextendこれに気づかない奴が多い
extendが入るとOOCSSではなくてOOSSになることに気づかない
0478nobodyさん2013/11/15(金) 14:36:44.68ID:???
>>476
SASSとかLESSって結局は新たなCSSが作成されるわけだろ?
PHPで言えば、includeした後のファイル(HTML)になるというか。

だから、HTML側は
class="well"じゃなくて、class="weel-box"みたいに固有名になると思うんだが。
つまり、Bootstrapみたいな書き方にならないと思うんだが、間違ってる?
0479nobodyさん2013/11/15(金) 14:42:57.08ID:???
>>478
あってるよ。

Bootstrapは今はやってるようなただ使うってこともできるけど、
LESSのライブラリとして利用することもできる。
0480nobodyさん2013/11/15(金) 15:25:51.04ID:???
余所のスレでセマンティックしてくれ
0481nobodyさん2013/11/15(金) 19:56:55.32ID:???
ロマンティックは夜のデートで。
0482nobodyさん2013/11/15(金) 22:19:35.59ID:???
OOCSSをちゃんとやるには、Sassが必須ということ。
Sassを使わないでOOCSSをやろうとするとはメンテナンス性が
悪いものになってしまう。

そもそもSassはオブジェクト指向を取り入れて作ったCSS言語で
OOCSSで言ってることは、Sass利用者は普通にやっている。

で、Bootstrapの一般的なサンプルはSassを使わない
OOCSSになってるからメンテナンス性が悪い。

何がダメかというとclassに割り当てたいスタイルを羅列するやり方。
正しいCSSをメンテナンス性を保ちながら書くにはSassが必須。

まとめると、SassがCSSを超えた言語。これが基本。
OOCSSは考え方であって実態はない。
BootstrapはただのCSSデザイン集。
0483nobodyさん2013/11/15(金) 22:24:05.29ID:???
>>482
Sassはextendsがちまたで問題になってるし好きじゃない
0484nobodyさん2013/11/15(金) 22:26:24.01ID:???
>>482
出たSass信者
盲目って怖いね
0485nobodyさん2013/11/15(金) 22:30:06.73ID:???
>>483
extendsの問題って?Sassには@extendがあるが、
そのほかのextendsの話とごっちゃにしてるでしょ?
それか古いSassでPlaceholderがなかった頃の話をしてるとかだろうね。

>>484
でたSassアンチ
たいていこいつらは、
理由を何も言わないんだ。
0486nobodyさん2013/11/15(金) 22:33:30.11ID:???
しばらくsassのサイト見てなかったけど、
電話のお姉さんどこいった?w
0487nobodyさん2013/11/15(金) 22:36:21.54ID:???
「ある人に魚を一匹与えれば、その人は一日食える。
魚の取り方を教えれば、その人は一生を通して食える。」

という言葉がある。

Bootstrapは誰かが作ったCSS。
Sassは自分でCSSを作るよりよい方法。
0488nobodyさん2013/11/15(金) 22:58:23.33ID:???
>>485
Sassアンチなわけじゃないぞ
SassだけがOOCSSの答えじゃないって意味だ
普段もJS縛りがなければ使ってるし

extendが使えるって主張する人多いけど
書いてるコード量一緒、メンテナンス性一緒
吐かれるCSSが違うだけ

デザイナと仕事するときはLessの方がまだ理解してくれる
0489nobodyさん2013/11/15(金) 23:03:55.67ID:???
CSSの話しはスレ違いだからやめません?
0490nobodyさん2013/11/16(土) 00:37:07.43ID:???
>>488
lessもextend実装されそうな流れみたいだけど?

http://webtech-walker.com/archive/2012/10/less_extend_experimental.html

extendを使ったほうが自然な場合に
使えばいいだけじゃん。
無理して他のを使う必要はない。

extendが問題になってるって話じゃなかったの?
「extendじゃなくても同じことが出来る」という話は
exntedが問題になってる理由にはならないよ。
0491nobodyさん2013/11/16(土) 01:39:48.43ID:???
>>489
この話やめると過疎るしいいんじゃね。
CakePHPの質問がきたら誰かしら答えてるし。
0492nobodyさん2013/11/16(土) 03:00:40.54ID:???
この話にかぎらず、やめるとかやめないとか
そういうのは勝手にやるから
仕切っても無駄だよ。
04934842013/11/16(土) 07:54:37.23ID:???
>>490
他人の発言混ぜないで。

Lessにも実装か、PullRequestが結構昔に投げられてたもんね
0494nobodyさん2013/11/16(土) 22:07:19.93ID:Rk/pBkL7
これまでcakePHPのシェル(Console)実行は、TeraTermでWEBサーバに接続してシェルを実行していたのですが
これだと知識のある人しかできないので、

cakePHPの認証機構で構築されたシステムにログインし
【***処理実行】といったリンクがクリックされるとコマンドラインから実行するのと
同じ事をバックグラウンドでやりたいと考えています。

何か良い方法はありませんか?
0495nobodyさん2013/11/16(土) 22:23:02.69ID:???
テーブルの中に入力項目があり
検索ボタンを押して検索が走る仕組みにしています。

<form name="name_search" action="/hoge/search" method="post">
<table>
<!-- 入力項目〜略〜 -->
</table>
</form>
<input type="button" value="検索する" name="" style="">


どうもPOSTが走ってる気がしないのですが、
コードに間違いは無いでしょうか?
0496nobodyさん2013/11/16(土) 23:20:57.91ID:???
>>494
いい方法かどうかは知らんが、手っ取り早く、exec()とかsystem()すればいいんじゃないの?
ただ、お勧めはしないけど。

シェルでどんなことをしようとしてるのか知らないけど、開発中に使うbakeとかそういうのなら、
知識を付けろって話し。

ってか、そもそも、管理画面からクリックで実行する機能なら、シェルじゃなくて普通に実装したらええやん。
管理画面から実行できる機能が、cronからも実行したいみたいな話なら、まぁありえるし分かるんだけど。
その場合、コントローラーからもシェルからも使える場所にロジックを書けばいい。
そんなに複雑じゃないならモデルにかけるだろうし、無理そうなら普通のクラスで作ってlibにおいて
App::import()すればいいんじゃね。
0497nobodyさん2013/11/16(土) 23:23:16.88ID:???
>>495
CakePHPの前にHTMLから勉強しろw
inputがformの外にあるじゃねーか
0498nobodyさん2013/11/16(土) 23:29:51.46ID:???
www
0499nobodyさん2013/11/16(土) 23:42:15.65ID:???
>>494
現在teraterm でシェルを実行していたのなら
バッチファイルをダブルクリックさせて、
内部でSSHを呼び出してリモートのコマンドを
実行すればいいだけじゃん?
0500nobodyさん2013/11/16(土) 23:43:19.37ID:???
>>495は優秀。
再現可能なコードをちゃんと書いて
質問している。
05014952013/11/17(日) 01:46:08.06ID:???
>>497
formの中に入れてもう一度試してみます。


>>500
ありがとうございます。頑張ります。
05024942013/11/17(日) 10:01:58.45ID:???
>>496
なぜシェルで作っているかというと cronで回しているからです。
しかし、基本的にはcronでシェルをキックしていますが
特定の条件の時にはユーザが手動でシェルを実行する必要があるのです。

かといって一般ユーザにシェルを実行させるとかも
危険なので、シェルを管理画面上からも実行させたいと思っています。


※結構複雑な処理です。

>>499
そーいう手もありますね。。。
ですが管理画面上から一度に出来ないものかと。。。
0503nobodyさん2013/11/17(日) 15:42:23.43ID:???
>>502
ん?だから
> その場合、コントローラーからもシェルからも使える場所にロジックを書けばいい。
> そんなに複雑じゃないならモデルにかけるだろうし、無理そうなら普通のクラスで作ってlibにおいて
> App::import()すればいいんじゃね。
0504nobodyさん2013/11/18(月) 12:55:59.49ID:???
>>503
サンクス
> その場合、コントローラーからもシェルからも使える場所にロジックを書けばいい。
試してみます。
0505nobodyさん2013/11/18(月) 15:30:58.69ID:???
cakePHP2で検索を行うプログラムを書いています。
検索条件が複数項目あり、複数の組み合わせで指定可能な場合において
ユーザが指定をした検索条件で、conditionに動的に検索条件をバインドする良い方法はありますか?
現在は、毎度ifで分岐してcondtionコードを書いており効率の悪さを痛感しています。

�@ユーザIDだけ指定した場合
'user_id' => '333'

�AユーザID、年齢を指定した場合
'user_id' => '333',
'age' => '44'

�BユーザID、性別を指定した場合
'user_id' => '333',
'sex' => '0'
0506nobodyさん2013/11/18(月) 17:02:23.94ID:???
>>505
サーチプラグイン使えばいいんじゃないの?
0507nobodyさん2013/11/18(月) 18:19:43.56ID:???
>>505
Searchプラグイン使わないとか、罰ゲーム?
0508nobodyさん2013/11/18(月) 18:53:39.61ID:???
>>506 >>507 
cakePHPだけではそういった機能は無いのですね。

Searchプラグインとかちゃんと動作するかちょっと心配だったりします。
05095082013/11/18(月) 18:56:37.22ID:???
サーバ変えた時とかめんどくさそうなので地道にif分岐
させてやる事にします。
0510nobodyさん2013/11/18(月) 19:01:09.34ID:???
>>509
意味わからん
0511nobodyさん2013/11/18(月) 19:07:25.95ID:???
>>509
の文章とか普通に分かり易いじゃん。
理解出来ない人って頭大丈夫かな。
0512nobodyさん2013/11/18(月) 19:14:07.40ID:???
いや俺も意味わからんし
0513nobodyさん2013/11/18(月) 19:14:32.25ID:???
>>511
サーバ変えたときに面倒になる実装ってどんなんだ?
0514nobodyさん2013/11/18(月) 19:16:28.18ID:???
サーバー変えたら何が変わるんですかね…
0515nobodyさん2013/11/18(月) 19:20:29.41ID:???
エスパーな511が何を分かったのか気になる
0516nobodyさん2013/11/18(月) 19:23:26.86ID:???
>>513
サーバ変えたらまた search プラグインの設定せねばならん
面倒だーって事でしょ。

それくらい小学生でも分かると思うけど。
0517nobodyさん2013/11/18(月) 20:09:16.65ID:???
>>516
お前だけ噛み合ってないぞw
0518nobodyさん2013/11/18(月) 22:03:29.92ID:???
あえて苦しい道を行くか・・・
0519nobodyさん2013/11/18(月) 22:41:02.59ID:HBQEtXMZ
サーバーごとに設定が必要な Search プラグインっていうのを教えて欲しい。
いや、やっぱりいいや。
0520nobodyさん2013/11/19(火) 00:24:04.47ID:???
cakephpやってりゃサーチプラグインは必須レベルだと思うんだけど。
0521nobodyさん2013/11/19(火) 00:31:47.95ID:???
>>520 が使ってるサーチプラグインてサーバーごとに設定が必要なの?
0522nobodyさん2013/11/19(火) 01:03:09.36ID:???
>>521
必要じゃないね
0523nobodyさん2013/11/19(火) 05:39:12.52ID:???
まあcakeやphpのバージョンがコロコロ変わってそのたびに使えなくなるんだろうなと思うと
プラグインに頼りたくない気持ちはわかる
0524nobodyさん2013/11/19(火) 10:30:58.16ID:???
まぁちゃんと調べて検証してから使ったほうがいいのは確か。
サーチはもう定番だと思うけど、同じCakeDCでもユーザープラグインはクソだし。
0525nobodyさん2013/11/19(火) 14:07:12.30ID:???
サーチプラグインはルーティングしていると困るときあるからな
今までIFでやっているならIFで独自コンポーネントでも作ればいいじゃん
0526nobodyさん2013/11/20(水) 09:40:20.78ID:???
findがネスト配列返してきて衝撃を受けたんだがパフォーマンスの問題なのか?
PHPが配列処理に強いから特性を活かすとかそういう話か?
なにも考えないで使うとコントローラーやヘルパーの肥満化を促進しそう
0527nobodyさん2013/11/20(水) 11:35:26.62ID:???
>PHPが配列処理に強いから特性を活かすとかそういう話か?
そうです

>なにも考えないで使うとコントローラーやヘルパーの肥満化を促進しそう
Hash クラスを使いましょう

Hash のコード見ると、こんなことするぐらいなら
オブジェクトで返しておけよ! と思うがなw
0528nobodyさん2013/11/20(水) 12:06:21.22ID:???
CakePHP3まで耐えるんだ
0529nobodyさん2013/11/20(水) 12:14:01.60ID:???
ただでさえPHPの配列遅いのに
0530nobodyさん2013/11/20(水) 19:29:25.32ID:sxeXAx98
CakePHP:save()を使ってテーブルのレコードをupdateしようとしていたのですが
そもそも、cakePHPの場合には、複数の主キーが設定されている場合には
saveメソッドを使ってupdateは出来ないのでしょうか?


id だけじゃなくて
id と sequence_number の2つが hoge テーブルの主キーの場合とか
って普通にSQL分を投げるしかないですか?
0531nobodyさん2013/11/20(水) 21:17:34.01ID:???
>>530
複合キーは使えないよ

裏技的なプラグインか何かがあった気がするが、失念
0532nobodyさん2013/11/20(水) 21:19:13.23ID:???
×複合キー
○複合主キー
0533nobodyさん2013/11/22(金) 13:52:04.15ID:???
艦これのサーバサイドってCakeだったのね
0534nobodyさん2013/11/22(金) 14:47:24.43ID:V2BhDK+1
>>531
そうなのね。諦めました。

地道にupdate分を投げます。
0535nobodyさん2013/11/22(金) 15:48:01.98ID:???
CakePHPに限らず、大抵のフレームワーク、というかORマッパーは、
複合主キーはサポートしないか、してても無理やり感のあるものだよね。
0536nobodyさん2013/11/22(金) 15:57:57.23ID:W1kV2v2N
なんで複合主キーはダメなのさ。
0537nobodyさん2013/11/22(金) 17:52:26.73ID:???
>>536
嫌なら使うな、というと厳しいが、
fw使うってそんなものだと思う。
0538nobodyさん2013/11/22(金) 18:01:15.94ID:???
>>533
ソースは?
0539nobodyさん2013/11/22(金) 18:26:27.31ID:4CXM4jc6
cake初心者なんですけど、リダイレクトしたらっていう条件式って作れますか?
すべてのページを指定するのは賢くないと思いまして…
0540nobodyさん2013/11/22(金) 18:40:09.88ID:UUBP/xq0
>>537
じゃ、諦めるわ。
0541nobodyさん2013/11/22(金) 20:34:04.53ID:???
複合主キー対応してないのってRailsもどきで対応できてない奴だけじゃない?
0542nobodyさん2013/11/22(金) 21:35:11.99ID:???
複合主キーにする設計自体どうなのかと思わないでもない
0543nobodyさん2013/11/22(金) 21:44:16.48ID:???
>>539
session 使うしか思いつかないが、
やってやれないことは無いと思う。
0544nobodyさん2013/11/22(金) 23:24:16.29ID:???
現在サクラインターネットを使っています。

そしてソースコード一式のバッグアップ処理にTeraTermマクロでログインし
手動で以下の様なコードを実行しています。

tar czvf file_1_2.tar.gz file_1 file_2


しかし、毎度手動でこのコマンドを実行するのは不便なので(かといってcronは使いたくない)
TeraTermマクロから自動でログインと同時に、特定のコマンドを発行する方法とかってありませんか?
0545nobodyさん2013/11/22(金) 23:27:18.44ID:???
Cake関係なさすぎワロタ
0546nobodyさん2013/11/23(土) 01:58:50.84ID:???
>>544
マクロなんか使う必要ない。

SSHの引数にコマンド書けばいいだけ。
ログインのパスワードはカギを使えばいいだけ。
0547nobodyさん2013/11/23(土) 12:13:55.44ID:???
>>546
詳しすぎわろた
0548nobodyさん2013/11/23(土) 12:27:27.10ID:???
あー、そっか、ワンライナーで書けるんだ。
0549nobodyさん2013/11/26(火) 03:02:20.11ID:???
一からサイト作るの好きなんだけど、
作ったサイトを改造するのが苦手なんだよね。

やっぱりみんなもそんな感じ?

人の作ったコードを触るのが先って人もいるのかな。
0550nobodyさん2013/11/26(火) 03:29:46.00ID:???
好きってひとも
0551nobodyさん2013/11/26(火) 05:56:36.78ID:2m7znfvZ
>>549
たぶん全員がそうだろ
0552nobodyさん2013/11/26(火) 08:59:27.15ID:???
まずコードの意図を読むのに時間かかるからね
数カ月前の自分が書いたコードでもたまに分からないし
テストが書いてあったらそれはとっても嬉しいなって
0553nobodyさん2013/11/26(火) 09:09:47.39ID:???
何らかの有名MVCフレームワークを利用したものなら
MVCという大枠とそのFWの規約とドキュメントがあるだけマシ
0554nobodyさん2013/11/26(火) 09:26:27.15ID:???
>>552
おれおれフレームワークなんて、わけがわからないよ。
0555nobodyさん2013/11/26(火) 11:33:42.73ID:???
俺はCake風(ただし1.3)のオレオレ作ってるから、割と理解できるな。
ただし、そこからカスタマイズ依頼とかされたら困るが。
0556nobodyさん2013/11/26(火) 12:09:28.97ID:???
オレオレやってしまうと、せっかくのオープンソースの魅力が半減する。
0557nobodyさん2013/11/26(火) 17:50:46.60ID:???
xampp
Cakephpvar2.3.10
でSmartyの3.1.15導入してみた。
tplファイルがない場合に選択されるctpファイルでの表示がおかしい。
HtmlHelper関連だと思うのだけどどなたか解決方法教えてください
0558nobodyさん2013/11/26(火) 18:08:22.89ID:???
>>553
wordpressのプラグインとか作ってても
ドキュメントに無いソースの奥に眠る関数とか探して調べるのにすごい疲れたわ
0559nobodyさん2013/11/26(火) 20:04:02.44ID:???
(WP早く滅びて)
0560nobodyさん2013/11/26(火) 20:20:25.47ID:???
>>559
わかるわー。
WordPressが無ければどれほどプログラマーが稼げてたか。
0561nobodyさん2013/11/26(火) 20:29:19.30ID:???
せめてまともなプログラマがWordPressを書いていれば…
あんな意味不明なぐちゃぐちゃなコードどうやってメンテしてんだろう
0562nobodyさん2013/11/26(火) 21:37:55.32ID:???
>>561
大成できないタイプだな
0563nobodyさん2013/11/26(火) 22:03:23.94ID:???
WP使えばなんでも安く・早く・簡単に出来ると思い込む奴ってなんなの?
0564nobodyさん2013/11/26(火) 22:05:01.70ID:???
プラグインの多さだけがとりえですしお寿司
0565nobodyさん2013/11/26(火) 22:30:57.24ID:nldP7I2h
wordpress って最高だよね。
無料でここまで何でも出来るCMSとかこのスレの馬鹿グラマには出来ないでしょうね。
0566nobodyさん2013/11/26(火) 22:48:15.61ID:???
お前らがWPに恨みたっぷりなのは分かった
せめてCakePHPで作られたCMSの話を……
0567nobodyさん2013/11/26(火) 22:50:57.41ID:???
>>557
Smartyを破棄する
0568nobodyさん2013/11/27(水) 00:18:20.01ID:???
CakeでもWPでも仕事するしおすし。
CakePHPベースのCMSは、なんかなぁ、
どうせCakeなら自分で好きなようにしたくなっちゃう感じする。
0569nobodyさん2013/11/27(水) 00:25:51.15ID:Rk4EDw/d
wordpress って素敵だなぁー
0570nobodyさん2013/11/27(水) 01:30:39.60ID:???
>>569
ユーザーから見える所はな
0571nobodyさん2013/11/27(水) 01:57:50.96ID:???
ユーザー数が多いからWordPressには安心感があるよ。
どんなにドツボにはまってても、
あぁ、この泥沼に世界中の見知ら人が
何万と埋もれてるんだろうなという
温もりがWordPressにはある。
0572nobodyさん2013/11/27(水) 03:22:25.52ID:mdMZh+Ob
最強に糞だったCMS

Moval Type
0573nobodyさん2013/11/27(水) 06:23:21.20ID:???
>>572
スペリング違うけど、クソなのは同意。2.xに初めて触ったときは感動したけど、4.xで卒業したよ。最近のは知らない
0574nobodyさん2013/11/27(水) 22:12:09.37ID:???
だからさぁ
cakeもプラグインをもっとメジャーにしようよ
wordpress派も流れて来るから
0575nobodyさん2013/11/28(木) 01:28:07.13ID:???
こないこない
wordpressはphpなんて知らない人用のもの
0576nobodyさん2013/11/28(木) 06:31:59.63ID:???
新人研修で、汚いプログラムの例としてWordPressのソース見せてる
0577nobodyさん2013/11/28(木) 10:50:04.35ID:???
うちの研修では、
商業的な成功には理念的な完成度は不要である例として
WordPressを引き合いに出してる。
0578nobodyさん2013/11/28(木) 11:11:40.35ID:???
WordPressって商業的に成功してんの?
無料配布でしょ?
0579nobodyさん2013/11/28(木) 11:35:10.00ID:???
http://allthingsd.com/20120425/automattic-grows-up-the-company-behind-wordpress-com-shares-revenue-numbers-and-hires-execs/

>>578
かなり儲かってるよ
0580nobodyさん2013/11/28(木) 11:36:57.69ID:???
http://www.crunchbase.com/person/matt-mullenweg
0581nobodyさん2013/11/29(金) 02:16:14.63ID:???
Fat Controllerはもちろんだめ。
Fat Modelになりすぎてもだめ。
むずかしいよ、最初からそんな見通せないから、ついモデルに書いて太らせてしまって、
行数増えすぎてからうあーってなるよ。
ComponentとBehaviorも、気軽に作ってると数ばっか増えて、煩雑になってくる。
特にComponentが、コントローラーにもモデルにもアクセスできちゃうから、
つい責任持たせすぎになっちゃうよ。
0582nobodyさん2013/11/29(金) 06:26:18.01ID:???
>>581
うあーってなるん?
0583nobodyさん2013/12/01(日) 15:08:36.60ID:???
会社のサイトに簡単なメールフォーム付けようと
久々に素のPHP書いたら、メチャクチャに面倒臭く感じた
でもそれだけにCakeとか使うのもなあ…。
0584nobodyさん2013/12/01(日) 16:08:25.46ID:???
>>583
ちょっと大きめのライブラリを導入した、ぐらいに思っておけば幸せかもよ
0585nobodyさん2013/12/01(日) 18:00:34.36ID:???
>>583
それ単に、メールの仕様が複雑なだけだから。
0586nobodyさん2013/12/01(日) 21:20:50.87ID:???
メールフォーム作るなら既存の小さいライブラリ使いたいな
メール用にはSwiftMailer選ぶんだけどバリデーションの部分はたまに悩む

Symfony2みたいなコンポーネントごとの独立性の高いFW知ってるなら
一部のコンポーネントだけ使えばいいらしいが
0587nobodyさん2013/12/01(日) 21:35:29.81ID:???
Cakeでも頑張ればいけるんじゃね
メール:CakeEmail
バリデーション:Model/Validator
フォーム:Formヘルパー

いや面倒だな`,、('∀`) '`,、
0588nobodyさん2013/12/01(日) 21:58:22.92ID:???
cake関係ないかもしれんけど、フルスクラッチっていうの?サイトのシステムを全部作り直すのってどれくらい経過してからやればいい?

cakephp1のシステムを1年前に作ったんだが2で作り変えるか。。。迷い中。

ヤフーとかグリーとかミクシーみたいなでかい企業はどれくらいの頻度でやってるんだろ?
0589nobodyさん2013/12/01(日) 22:06:14.84ID:???
>>588
そういう企業は複数のシステムを持ってるものだから、一気に全部を作り直したりはしない
少しずつ手を付けていく
0590nobodyさん2013/12/02(月) 00:36:17.56ID:???
お問い合わせフォームのように、一部だけCakeで作ろうとしても
大体は「全体のデザインの中にフォームがある」ってスタイルになるから、
レイアウトやテンプレートをCakeで作らなければいけない。

そうなると、元々ある静的な部分を更新したら当然Cake側も更新しないと
整合性が取れないわけで、手間やコストが2倍に膨らんでしまう。

結局、Cakeやフレームワークを使うなら、全てそれで管理しないといけなくなる。
0591nobodyさん2013/12/02(月) 09:12:38.83ID:???
Cake関係ない話だけど
ちょこっと導入できるような小さなメールフォームのライブラリが、案外ぐぐっただけじゃ見つからなくて
これ以上探す時間が勿体無いから自分で書こうと思った
CAPTCHAのライブラリはすぐ見つかったので、それはさくっと採用したけど

とにかくさっさと動くようにして終わらせたくて、テストも書かずに作ったので
ブラウザでいちいち動作確認して、面倒臭かった
0592nobodyさん2013/12/02(月) 09:38:56.13ID:???
>>587
CakePHPの一部をコンポーネント/ライブラリとして他所で使う例を調べようと思ったが
CakeのControllerのComponentの話とCakeにサードパーティのライブラリを導入する話しか出てこない
0593nobodyさん2013/12/02(月) 18:03:31.67ID:???
上でメールフォームの話題が出てるから試してみたんだけど、

/public_html
└contact.php
/cakephp
└/app
└/webroot

こういう構成だったとして、contact.phpにアクセスしたら
ContactControllerのindexを実行したいと思い、

#contact.php
$_GET['url'] = '/contact/';
require '../cakephp/app/webroot/index.php';

#webroot内の.htaccessのindex.php箇所
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

こんな風にしてhttp://example.com/contact.phpにアクセスしたんだけど、
「Contact.phpController could not be found.」ってエラーが出た。
やっぱ、public_htmlをアプリケーション化しないと無理なのかな?
0594nobodyさん2013/12/03(火) 00:14:57.84ID:???
突っ込みどころ満載すぎてどこから書けばいいのか
0595nobodyさん2013/12/03(火) 08:50:43.83ID:???
>>594
一個ずつ突っ込んでくれ
0596nobodyさん2013/12/03(火) 09:30:31.38ID:???
>>595
漫才みたいになるけどいい?
0597nobodyさん2013/12/03(火) 13:43:20.44ID:???
OK
0598nobodyさん2013/12/03(火) 14:19:05.43ID:???
まず、ファイルとかパスの名前を正しく書け。
全部小文字なわけがない。
0599nobodyさん2013/12/03(火) 16:50:09.45ID:???
>>598
え??
0600nobodyさん2013/12/03(火) 18:25:14.17ID:???
はい、ネタ続けて!
0601nobodyさん2013/12/04(水) 09:36:02.64ID:???
メールフォームだけ作るのって、逆に面倒でもはや他の人に投げたいレベル。
なんか公開されてるのでやろうと思っても、なんか古いCGIを思い出させるのしかないんだよねぇ。
ちょっとバリデーションのところをカスタマイズしたいなと思っても、手を入れにくいし・・・
0602nobodyさん2013/12/04(水) 09:51:23.15ID:???
PHPはいつまでも古い情報が検索の上位に出てくる
たとえ情報が間違っていて時代遅れでも検索上位にあるから初心者に利用されやすい
どんどん変なやり方や糞なプログラムが広がる負の連鎖を断ち切れなくなっている

The Right Wayみたいなベストプラクティスをまとめたサイトが現れるってことは英語圏でも事情は同じってことだな
0603nobodyさん2013/12/04(水) 09:55:24.07ID:???
PHPを書いている人はあまり小さいライブラリを活用しない印象があるなあ
素のPHPかフルスタックフレームワークか完成品かという感じ
0604nobodyさん2013/12/04(水) 09:57:37.43ID:???
どうでもいい雑談になっちゃうけど
htmlspecialchars_decode ってすごい関数名だよなあ
じわじわ笑いがこみ上げてきた、どうしてこうなったんだろ
0605nobodyさん2013/12/04(水) 10:09:33.35ID:???
>>603
メールフォーム程度だと悩む
まともにテストしてあるライブラリを探す手間を惜しんで
自分で全部書いてPHPの謎関数名や謎仕様を再び実感する羽目になる
0606nobodyさん2013/12/04(水) 10:49:10.54ID:???
だいたいメールフォームってPHPを勉強しだした頃に作るからな。
当然、その頃と今ではだいぶ書き方も変わってるわけで、
「昔自分が作ったプログラム」を使いたくないから、1から書きたくなる。
0607nobodyさん2013/12/04(水) 23:45:10.66ID:???
>>604
もともとオブジェクト指向ではなくて
名前空間がなかったから。
名前が被らないようにしようと思えば
どうしても名前は長くなる。
0608nobodyさん2013/12/04(水) 23:46:52.74ID:???
>>605
メール受信じゃなくて送信だろ?
HTMLメールや添付ファイル付きメールを
送ろうとでも思ってるの?

メールフォーム程度なら
文字をエンコードする程度で終わりだろ?
0609nobodyさん2013/12/05(木) 00:13:14.38ID:???
>>608
画像認証
0610nobodyさん2013/12/05(木) 00:24:35.97ID:???
真面目にやるなら外部からの入力は徹底的にチェックするのが基本だよな
GETほど手軽じゃないにせよPOSTのパラメータだってCookieだってリクエストヘッダだって好きにいじれるんだから
自分が書いたHTMLのフォームで設定した以外の値が送られてくる可能性は大いにある

それに一口にメールフォームと言っても入力が名前とコメントだけのものから企業のアンケートフォームまで色々ある
電話番号・郵便番号・メールアドレス・整数……よくある項目に対して毎回1から入力チェックを書く気はしないな
CSRF対策や二重送信防止・画像認証も1から書くのは時間の無駄だし

確かにCakeを持ち出すのは大げさかもしれんが馬鹿が素で書くよりマシじゃね
0611nobodyさん2013/12/05(木) 00:41:23.84ID:???
今どきメールフォームを1から書いて割に合うの?
Webサイト全体をCMSやFWで構築するって話だとフォームは標準装備って感じじゃない?
昔みたいにメールフォーム設置3万円〜とかまかり通らないでしょ?

おしえてぷろのひと
0612nobodyさん2013/12/05(木) 09:41:31.15ID:???
cake2系に対応したbaserCMS3がついにリリースされたそうな
ttp://basercms.net/news/archives/218
0613nobodyさん2013/12/05(木) 10:21:18.03ID:???
で、Cake3のリリースが迫っていると・・・
0614nobodyさん2013/12/05(木) 10:27:58.21ID:???
こないだやっと苦労してCake2にしたばかりなのに、もう3へ以降なんてやらんぞ
0615nobodyさん2013/12/05(木) 10:38:50.61ID:???
>>614
basercmsってcakephpプログラマーからして使いやすいん?
使ったこと一度もないわ。
0616nobodyさん2013/12/05(木) 10:45:00.73ID:???
CMSって言っても特別な機能が入ってるわけじゃないし、
cakeに慣れてる人はcake使うからなw
0617nobodyさん2013/12/05(木) 12:08:21.04ID:???
ようやくCakePHP2になったとはいえ、基本的に古いCakeになるから、
Cakeベースってとこも、最新のが使えないという不便さはあるしなー
0618nobodyさん2013/12/05(木) 12:23:17.69ID:???
今、静的ページと動的(Cakeベース)ページの共存作業をしてるんだが、
レイアウト使わないほうがいいな。
ヘッダー、フッター、サイドバーなんかはelementでまとめて
ピュアPHPのようにHTML上にコード埋め込む形の方が、
デザイナーとの共同作業時に捗るわ
0619nobodyさん2013/12/05(木) 13:37:55.86ID:???
baserCMSは触ってみたけどCakeなだけあってWPよりは断然構造把握しやすかった
カスタムできるお問い合わせフォームがついてるのは嬉しい

ただプラグインもテーマもまだまだ少なすぎる
デフォの機能で間に合うサイトなら使えなくもないかな―
0620nobodyさん2013/12/06(金) 02:33:30.99ID:???
>>618
それで捗る理由がわからん
0621nobodyさん2013/12/06(金) 09:58:37.69ID:???
>>620
レイアウトだとCakeの言語要素が強いから理解するまで難しいけど、、
elementだけなら、includeとかDreaweaverの挿入感覚で使用できるから、
Webデザイナーは一部の修正だけで済み、言語知識を必要としない。
故にWebデザイナーへの説明や、ビューの修正を依頼するときにわかりやすく、
自分の仕事(プログラミング)に専念できるから捗る。

ここまで書く必要ありましたかね・・・
0622nobodyさん2013/12/06(金) 10:13:37.67ID:???
>>621
わかりやすくて良い!
0623nobodyさん2013/12/06(金) 11:24:56.76ID:???
バーチャルホスト設定しているCentOSのサーバでCakePHPの勉強をしたいのですが、

/home/hoge/public_html
/home/fuga/public_html

こんな2つのディレクトリがあった場合、各public_html直下に
Cake本体のディレクトリを配置する感じになるんでしょうか?
0624nobodyさん2013/12/06(金) 12:02:18.41ID:???
>>621
レイアウトもエレメントも同じ仕組みで出来てるし、
その説明読んでも、あえて避ける必要性を感じないなぁ。
自分のアプリの見直してみても、
レイアウトもエレメントもビューも、全部HTMLに多少のifやforeachやヘルパーが入ってるだけで、
レイアウトだけなにか難しいってのは無いように見える。
てか良く考えたら、デザイン側の人にわかんねぇよって言われたこと無かった。
0625nobodyさん2013/12/06(金) 12:27:57.95ID:???
>>623
慣れるまで最初はそれでもいいかもしれんけど
複数のアプリを作ったりしたくて、サーバ丸ごと触れる環境なら
cakephp本体は/usr/local/libとかどこかに1つ置いて
ユーザーディレクトリの中にappの中身を置くようにするのがいいと思う

http://book.cakephp.org/2.0/en/installation/advanced-installation.html#sharing-cakephp-libraries-with-multiple-applications
0626nobodyさん2013/12/06(金) 13:57:26.35ID:???
>>625
レスありがとうございます。
こういう方法があるんですね。
試してみますー
0627nobodyさん2013/12/06(金) 19:30:44.10ID:???
>>624
「METAタグ挿入したいんだけどどうしたらいい?」
「CSSやJavascriptは?インラインで書きたい時もあるんだけど」
「titleタグもページごとに変更したいんだよね」
「そうそう、パンくずリストはどうするの?」

え〜まだまだ続ける?これら全てCakeの機能で実現できるけど、
Cakeを知らない人は出来ないよね。その前にPHPか。
デザインもプログラムも出来る人なら問題ないかもね。
0628nobodyさん2013/12/06(金) 19:57:56.87ID:???
デザイナにプログラム知識を要求するのは、プログラマの怠慢だと思うな。
0629nobodyさん2013/12/06(金) 23:30:47.19ID:???
プログラムを使ってでしか出来ないものを
やろうとするのが根本的な問題。

だから「お前には無理」で終わればいい。
0630nobodyさん2013/12/07(土) 02:09:10.25ID:???
>>628
プログラマーってのは、デザイナーのために仕事してんじゃねーんだよ。
0631nobodyさん2013/12/07(土) 03:04:09.81ID:???
>>630
それ、逆も言えるよね
0632nobodyさん2013/12/07(土) 03:05:33.58ID:???
仲良くしよう。
できるプログラマーは、デザイナーの事を考えて作る。
できるデザイナーは、プログラマーの事を考えてデザインする。

そう思うんだよね。
0633nobodyさん2013/12/07(土) 03:16:42.52ID:???
どちらも、ユーザーや客やクライアントのことを考えて仕事するべきだろ。
で、自分の領域の仕事をこなす上で必要な知識は身に付けていかないとダメだと思うんよ。
0634nobodyさん2013/12/07(土) 03:21:24.80ID:???
2ちゃんでは正論は伸びない
0635nobodyさん2013/12/07(土) 07:23:32.80ID:???
何の話かよくわからんが
かわいいデザイナーの娘と仕事がしたい
0636nobodyさん2013/12/07(土) 10:04:31.60ID:???
2.3なんだけど、shellのコマンドを実行すると、modelが見つからないとエラーが出ます。
これがいつもじゃなくて、時々起こります。
なんでだろ〜?
0637nobodyさん2013/12/07(土) 10:09:45.65ID:???
CakePHPのビューで読み込むJavaScriptのテストがしたい
ビューのテストはどうやればいいの?調べてもヘルパーのテスト方法しか出て来ない
0638nobodyさん2013/12/07(土) 10:30:48.05ID:???
>>635
まったくだな
0639nobodyさん2013/12/07(土) 12:21:40.57ID:???
なんかデザイナとプログラマを同列に考えてる人多いけど、デザイナのほうが上位だからな。
デザイナー様に無理難題ふっかけるなよ。
0640nobodyさん2013/12/07(土) 12:30:01.21ID:???
>>627
Cakeってそんなに使えないレイアウトのViewしかないんだっけ?
0641nobodyさん2013/12/07(土) 14:55:19.27ID:???
>>635
かわいいけど、HTMLとCSSもおぼつかないイラレ使いのデザイナーとなら、仕事したことある。
0642nobodyさん2013/12/07(土) 14:58:21.59ID:???
>>637
JavaScriptはJavaScriptとしてテストしたらええやん。
画面としてテストしたいならせれにうむを使うやん。
0643nobodyさん2013/12/07(土) 15:06:54.00ID:???
>>642
別にそれでもいいんだけど、テスト用のHTMLやJSはCake内のどこに置くのが定番なん?
0644nobodyさん2013/12/07(土) 16:41:30.86ID:???
>>640
使える・使えないの問題じゃなくて、
Cakeの仕様をデザイナーにも覚えさせるのか?
ってことだと思うが。
0645nobodyさん2013/12/08(日) 01:28:28.09ID:???
【質問】
PHPUnitでHttpヘッダーのステータスコードをチェックするテストコードを書きたいが、
わからない。

【調べたこと】
公式で$this->headersにデータが入っているようなことが書いてあるが、取得できない。
・テストコード
$this->testAction( '/hoge.json', $request ); // 内部でステータスコードを変更するコードを出力
$this->headers // array() が出力される

・エラーコード発生場所(HogeController.php)
$this->response->type( 'json' );
$this->response->statusCode( 400 );
$this->response->body( json_encode( $body ) );
$this->response->send();
$this->_stop();

【前提】
RESTfulなコードを書いている。エラーはステータスコードを4XXや5XXなどとして、
コーディングしたい。

【環境】
CakePHP2.3
0646nobodyさん2013/12/08(日) 17:12:58.59ID:???
HTTPレスポンスヘッダを持ってるのはCakeResponseな

$this->response->header(); //全取得
$this->response->header('Server'); //Serverの値取得
$this->response->header('Server', 'foo server'); //Server: foo serverをセット
0647nobodyさん2013/12/08(日) 17:17:32.39ID:???
$thisの意味わかってんのか心配になるな・・・いやまさか
06486452013/12/08(日) 20:13:36.09ID:???
レスありがとうございます。

>>646
CakeResponseの値を確認する場合は、
テストコード上ではHogeControllerのインスタンスはどのように持たせればよいでしょうか?

$this->testAction( '/hoge.json', $request ); 
$this->Hoge->response->header();

ModelでのテストではClassRegistry等を使ってsetupで
テスト側にインスタンスの持たせるかと思いますが、
Controllerのテストではどのようにインスタンスを持たせるのでしょうか?
0649nobodyさん2013/12/08(日) 20:20:56.25ID:???
>>648
ID出せよ
0650nobodyさん2013/12/08(日) 22:01:22.39ID:???
テストってのはさ、どんなものでもテストしてやるぞ!って
意気込みで望むものではなくてさ、
テストがしにくいものを無くすぞって考えてやるべき。

テストしにくい所のコードをついばんでいって、
テストしやすい形に抜き取っていって、
最終的にどうしてもテストしにくい部分だけ最小限にして残す。

テストしにくいと思ったら、そのままのコードで残したらダメだよ。
そのままのコードでテストするなんて愚の骨頂。
0651nobodyさん2013/12/08(日) 22:31:39.34ID:???
>>650
いい事言ってだんろうけど、わかりにくい。わかりやすくお願いします!
0652nobodyさん2013/12/08(日) 22:32:26.91ID:???
あーわかった。
ようは、テストもできねーようなコード書くなということか。
0653nobodyさん2013/12/08(日) 22:43:19.55ID:???
テストできるぐらいの役割に分割しないとね
0654nobodyさん2013/12/08(日) 23:02:00.09ID:???
テストがしにくいコードってのはあるし、
テストをする意味が無いコードもあるんだよ。

一連の処理の中から冗長なコードを取り除いていくと
最終的にはコードというより定義に近くなる。

PHPのスレだからまあ、WordPressのは例を出すと、
wp_config.php これは一応PHPのコードだろ?
だけどこれをテストする意味が俺にはわからない。

設定ファイルでもない限りここまで定義のみに
できることはないけどそれでもテストする意味あるのか?って
思えるほど減らすことは出来るよ。

テストは後付で加えるものじゃない。
テストが出来るようにコードを書いていくんだ。
テストがしにくいと感じたら、テストを書く技術を磨く前に
テストがしやすいコードを書く開発技術を身につけるんだ。
0655nobodyさん2013/12/08(日) 23:13:20.11ID:???
>>645なんてそういうことだよ。

> 【質問】
> PHPUnitでHttpヘッダーのステータスコードをチェックするテストコードを書きたいが、
> わからない。

> $this->response->statusCode( 400 );
って書けば、当然HTTPヘッダのステータスコードは400だろ?

「400という数値を与えれば、それがHTTPヘッダーになる」というテストは必要だよ?
でもそれはCakePHPが開発元がやってるテスト。
400を与えれば当然HTTPステータスは400だし、404って書いていれば当然404だろ?
これ、ただの定義じゃないか。そんなのテストする意味が無い。

ではなくて、本当にテストするべきなのは400になる原因の方だよ。
なんかのデータを引数にしてなんかの処理をやったらエラーになるんだろ?
それをテストするべき。

そのエラーを最終的に400としてクライアントに伝えるというのはただの定義でしかない。
06566452013/12/08(日) 23:53:33.88ID:???
>>655
(釈迦に説法ではありますが)RESTfulな設計思想で、エラーを発生させた場合にはエラーメッセージと共に
200以外のHttpステタースコードを投げるのは、異論はないと思います。

論点としては、「RESTful」な設計だとしても
エラーを発生させるような処理を確認するテストの場合に、
エラー発生を「HTTP status code等」でテスト結果を確認すべきか否か?
というところを言いたいのだと思いますが、、、、ここは議論の余地があるかと思います。

> そのエラーを最終的に400としてクライアントに伝えるというのはただの定義でしかない。
現状、クライアント側の実装でも、
「ステータスコードを見て処理を振り分ける」処理があるため、
テストをやっておいた方がいいのではないかと思った次第です。

>>648 についてですが、
testActionなどの後では、$this->controller でインスタンスに
触れるようですが、、、 responseの内容は相変わらず取得できません。
0657nobodyさん2013/12/09(月) 00:29:29.65ID:???
>>656
やらないよりはやったほうがいいけど、意味が少ないというだけ。
そして、費用対効果まで考えるとそこまでやる意味ないんじゃないってこと。

なぜなら400を返すまでのコードが正しければ絶対400返るでしょ?一回確認すれば十分じゃない?
その400を返すコードは400を返すという仕様そのものが変わらない限りもう変えることはないでしょ?
それよりも複雑なのは400を返すまでの仮定であってその仮定が正しければ400返すでしょ?

そういう難しくもなく安定したコードのために、どうやってテストをすればー
なんて言うのなら、やっても時間がかかるだけで効果が無いと思うよ。

> 現状、クライアント側の実装でも、
> 「ステータスコードを見て処理を振り分ける」処理があるため、
もしかしてサーバーとクライアント一緒にしてテストしてない?
サーバー側の実装がどうであれ、400が返って来た場合のテストをすればいい。
だから400を返すだけのアプリ(モック)を使えばいい。
もっと言えば、クライアントだけで400が返って来たかのようにエミュレートさせれば
クライアントだけでテストできる。

どんなものでもテストしてやるぞ。ではなくアプリに手を加えてテストが簡単にできる
ようにするというのはこういう話。
06586452013/12/09(月) 01:07:18.47ID:???
>>657
引き続き、お付き合いいただきありがとうございます。
全体的なテストの思想、手法のお話しについては概ね同意いたします。
(クライアント側はSinon等を使っており、おっしゃるようなテストを書いております)

ご教示いただいている、お話しについては
「○○のようなテストはやるべきか、やらないべきか?」という形に収束しつつありますので、
スレに添う、単純なCakePHPの
「○○の実装の方法は?」というような部分について引き続き、お知恵をお借りできれば幸いです。
0659nobodyさん2013/12/09(月) 01:10:16.11ID:???
>>658
無駄な努力を頑張れやw
0660nobodyさん2013/12/09(月) 01:43:48.55ID:???
http://api.cakephp.org/2.3/source-class-ControllerTestCase.html#195-287
わざわざ$this->headersに入れてるし、普通ならちゃんと入ってるものっぽい気がする。
でも入ってないって言うなら、testAction()からvar_dump()仕込んでって追いかけるしかないんじゃね?
06616452013/12/09(月) 01:53:31.21ID:???
自己解決しました。
ありがとうございました。

先の例では、
$this->testActionのあとに
$this->assertEqual( 400, $this->controller->response->statusCode() );
$this->assertEqual( "something", $this->controller->response->body() );
$this->assertEqual( "json" $this->controller->response->type() );
のような形で対応できました。

お騒がせしてすみません。
06626452013/12/09(月) 01:55:29.19ID:???
>>660

こちらの例では。
$this->headersはarray()になっており、
$this->controller->header() はNULLになっていました。
0663nobodyさん2013/12/09(月) 11:11:00.28ID:???
>>662
$this->controller->header() なんてのCakePHPに無いぞ?
そのリンク先にもそんなコードはないし、そもそもCakePHP本体のコードだし・・・
0664nobodyさん2013/12/09(月) 11:48:24.86ID:???
クラス名も書かず$this $thisって・・・メソッドで判断できるからまあいいけど
問題にしてるクラスが何かってことくらい明確に書いたほうが回答者が質問の意図わかりやすいと思うの

あとRESTfulかどうかってステータスコードの扱いと何か直接的な関係あるの?
ステータスコードを適切に設計するのはREST以前の問題でしょうに
0665nobodyさん2013/12/09(月) 12:09:57.41ID:???
チラ見しただけだけど
確かに>>660の言うとおりControllerTestCaseクラスの_testActionメソッドを見る限りは
ちゃんと$headersプロパティにレスポンスヘッダの情報が入るようにみえるね

その前の条件分岐によっては入らないケースがあるのかな?
0666nobodyさん2013/12/10(火) 18:08:28.36ID:???
PDOでCake風に使えるライブラリを書こうとしたけど、面倒で止めた
0667nobodyさん2013/12/10(火) 18:16:34.35ID:???
>>666
cakeを使おうと思わないのは何故なんだろう?
0668nobodyさん2013/12/10(火) 21:50:48.63ID:???
>>667
Cakeだと規模が大きくなりすぎるし、ファイル数も多い。
それに既に運用しているサイトだと、
Cake使わないほうが静的ファイルとの共存がしやすい。
0669nobodyさん2013/12/10(火) 22:48:38.38ID:???
俺、人の作ったcakephpとか触ったことないんだけど、みんなは、DB設計とかめちゃくちゃでも我慢してその上からコードを編集するの?
0670nobodyさん2013/12/11(水) 00:30:44.85ID:???
DB設計?モデルのことか?
プラグインなんか使う時は自分のやり方と違うから戸惑うけど、
気にせずに編集していくな。
0671nobodyさん2013/12/11(水) 10:49:31.96ID:???
引き継ぎ案件の話なんか?
0672nobodyさん2013/12/11(水) 16:23:21.68ID:???
DBの命名規則がよくわかりません。
例えばユーザテーブルを「users」という名前でつけたとして、
ユーザが所持しているアイテムを管理するテーブルを作りたいとします。
そういう場合は

user_items
users_items

どっちの名前が適切なんでしょうか?
0673nobodyさん2013/12/11(水) 16:53:19.79ID:???
>>672
ただの items

でitemsテーブルの中にuser_id
0674nobodyさん2013/12/11(水) 17:43:03.38ID:???
>>673
なるほど。
関連するテーブル名を連結させる必要はないんですね。
ありがとうございました。
0675nobodyさん2013/12/11(水) 19:34:39.55ID:???
接頭辞として使う場合もあるよ。
その際は、user_itemsが正しい名前になる。
0676nobodyさん2013/12/11(水) 20:01:39.21ID:???
>>671
引き継ぎ案件。
自分で昔作ったサイトとかもリニューアルする時、DBが複雑になってる時があって構造を直すんだけど相当手間だし、バグの原因になる。

こういう場合はみんなは
そのまま使うか、構造を変えるかどっち?
0677nobodyさん2013/12/11(水) 20:35:59.75ID:???
引き継ぎで、その後のメンテナンスの必要性が明確じゃない時は
なるべくそのままにしておく。

長期間の保守契約も含めた場合は話は別。

自分のサイトなら極限まで自分の好きにする。
じゃなきゃ自分でやる意味なくない?
0678nobodyさん2013/12/11(水) 21:44:14.31ID:???
>>677
ありがとう!
0679nobodyさん2013/12/11(水) 23:56:50.75ID:???
どういたしまして
0680nobodyさん2013/12/12(木) 01:28:30.30ID:???
>>679
誰だよお前w
0681nobodyさん2013/12/12(木) 01:30:43.56ID:???
>>680
俺だよ! 誰なのかあててみ!
0682nobodyさん2013/12/12(木) 03:41:11.74ID:???
>>681
俺かよ!マジかよ!ざけんなよ!
0683nobodyさん2013/12/12(木) 04:05:39.56ID:???
いや、ここは俺が。
0684nobodyさん2013/12/12(木) 05:30:01.88ID:???
ようじょ、ようじょ
0685nobodyさん2013/12/12(木) 11:49:32.21ID:G/DBAFTk
cakephp1.3で$this->Auth->user()でもってこれる情報って
1つか、もしくは全部?
idとusernameの二つの値を持ってきたいのですが、
どなたかご存知の方いたらお願い致します。
0686nobodyさん2013/12/12(木) 11:59:53.86ID:???
>>685
1レコードそのまま取れなかったっけ?
0687nobodyさん2013/12/14(土) 00:57:14.30ID:???
cakephp1を、そのままcakephp2にしてくれと言ったら、いくら取る?
俺なら最低20万円。
0688nobodyさん2013/12/14(土) 02:23:18.09ID:???
20万〜2000万ぐらいだな。
0689nobodyさん2013/12/14(土) 02:25:37.01ID:???
>>687
まぁ規模によるよね。
0690nobodyさん2013/12/14(土) 02:40:33.10ID:???
俺も今 php4 + CakePHP1.1 で稼働しているサイトを php5.4(以上)のサーバーで
稼働できるように頼まれるかもしれない。

工数が全く見えないんだけどどうやって見積もり取ればいいんだろう。
0691nobodyさん2013/12/14(土) 02:41:06.36ID:???
規模もだけど現在のコードによる。

cakephp2を考慮して正しく書かれたコードと
全く考慮しない上に、間違った使い方ばかりした
汚いコードでは100倍ぐらい差がでても不思議ではない。
0692nobodyさん2013/12/14(土) 02:44:20.85ID:???
>>690
移行ではなく、全部最初から作り直しの工数を見積もればいいよ。

仕様を0から考える時間 or 現在のシステムを理解するのにかかる時間
 +
0から開発した時の時間。

決して、今あるコードを再利用できるから
開発時間が短縮できると思ってはいけない。

再利用できるように使えるように作られたコードであれば再利用できるが、
使えるかもしれないというコードは、基本的に使えない。
0693nobodyさん2013/12/14(土) 03:06:53.02ID:???
問題は、自分が過去に作った場合だな。
蔵からしたら「お前が作ったものを新しくするだけだろ?」
ってなもんで、予算をとってもらえないことが多い。

だったら諦めろって話だが、そこで終わると仕事に繋がらないわけで、
結局は安く請け負ってしまうんだよな
0694nobodyさん2013/12/14(土) 03:30:14.45ID:???
>>691-693
おぉ、色々ありがとう!
参考にさせてもらう。

これ、たぶん、断るわw
0695nobodyさん2013/12/14(土) 10:36:42.60ID:???
>>693
そういう理解の客って、そもそもCakePHPを新しくするって発想すら出てこないんじゃないの?
目の前には動いてるプロダクトがあるわけで、やって欲しいのは機能の追加とかであって、
機能は増えないし変わらないけど、CakePHP2にするってことじゃないと思うんだが。
逆にCakePHP2にする事の意義を知ってる客なら、
それが簡単じゃない事も知ってるはずだと思った。
0696nobodyさん2013/12/14(土) 17:19:20.55ID:???
>>695
「もっと動作を早くしてほしい」とか「サーバを変えたい」って場合がある。
または、自分がCake2用の開発に切り替えてて、
ライブラリもCake2用に作っている・使用している場合とか。

つまり、「現状より良くしたい」という要求に対して
「開発方法を変えないと出来ません」
ってなったら客も怒るだろ?こっちの事情はともかくとして。

ずっと1.3系&PHP4系を使い続けるならともかく、
技術の進化と客の要求に対応するなら、
どこかで折り合いをつけなければいけない。
0697nobodyさん2013/12/14(土) 22:46:14.15ID:???
古いとセキュリティがどうのこうの…とか言ってみれば
0698nobodyさん2013/12/15(日) 00:01:11.18ID:???
cakeの1系->2系なんてほとんど互換性ないだろ。
バージョンアップのメリットないから。
0699nobodyさん2013/12/15(日) 01:04:45.89ID:???
>>696
開発方法を変えるなんて言う必要ないよ。
勝手に変えればいい。
どうせ客に言っても理解できない。
0700nobodyさん2013/12/15(日) 01:12:59.53ID:???
>>696
> 技術の進化と客の要求に対応するなら、
> どこかで折り合いをつけなければいけない。

なんか他人のせいにしているように聞こえるけど、
それ、技術力がないからだから。

君に足りない技術はね。今のコードを
新しいコードへ連続的に変化させていく技術だよ。
どうせ、今のを捨てて書きなおすことしか思いつかないんでしょ?

この変化させていく技術力があれば、1系でも2系でも動くコードがかける
PHP4系でもPHP5系でも動くコードがかける。
動かないコードを動くように変えることが出来る。
古いコードを新しいコードから利用できるように出来る。
新しいコードを古いコードから利用できるように出来る。

今の君は、このようなことをするのに何が必要かわからず
またわかったとしてもそれを実現するだけの力がない。
ゴールを見据えてそこまで至るルートを見つける力がない。
ルートがわからないからいつまでたってもゴールに辿りつけない。
0701nobodyさん2013/12/15(日) 01:13:50.99ID:???
>>699
その勝手に変える作業に金出してもらえないって話じゃないか?
0702nobodyさん2013/12/15(日) 01:15:42.18ID:???
>>701
そんなもん、普段の開発費に含めればいいじゃないか。
0703nobodyさん2013/12/15(日) 01:22:24.83ID:???
>>700
君の非難はちょっと違うと思うんだよ。
俺がオレオレフレームワークなり、ライブラリを作った上で
「PHPのバージョンが変わったら全て書き換えないといけない」
的な事を言い出すなら、「技術がないだけ」って切り捨てるのもわかる。

でも、CakePHPというフレームワークでの話だろ?
Cakeが1.3→2に変わっても、君の言うようにどのバージョンでも
動けるコードになっているかな?なっていないよね。

もちろん、「CakePHP選んだお前が悪い」っ
てのなら自身の選択ミスだ。俺が悪い。
だが、俺の言う「折り合いをつける」ってのは、
「なんだかんだ言われてもやる」なんだけどな。
>>693の書き込み見てくれればわかると思うが。
0704nobodyさん2013/12/15(日) 01:34:39.31ID:???
>>703
やっぱり技術力がないだけ。

CakePHPを選ぶのが間違いとかそういう話ではない。
何を選ぼうが未来がどうなるかはわからない。
安全な未来を選ぶ力が重要なのではなく、
どんな未来が来ても、そこに至るルートを見つける力が重要。

まず、フレームワークは使うが
本質的なコード=重要なコード=大部分のコード
というのはフレームワークに依存しないように作る。
(作れるのが技術力)

フレームワークにべったりくっついた設計にするのではなく

フレームワーク ⇔ 薄い中間層 ⇔ 大部分のコード
こういう設計にしておく。フレームワークは変わるのは
当たり前の話なんだから、最初からそうすべきと判断する
(これも技術力)

> Cakeが1.3→2に変わっても、君の言うようにどのバージョンでも
> 動けるコードになっているかな?なっていないよね。
フレームワークに依存しまくるから、動かないコードが”大量に"できる。

フレームワークに依存しない部分を大量にして、依存している部分を
最小限にしておけば、動かないコードを最小限の力で移行させられる。

CakePHP1.3の時代に、まだ見ぬ2に対応することは不可能だが、
CakePHP1.3の時代でも、フレームワークが無いとみなして作るのは可能だ。
0705nobodyさん2013/12/15(日) 01:43:20.20ID:???
フレームワーク等、バージョンが違ったとき
互換性が100%でないのは知っているし100%の互換性はないのが普通。

http://book.cakephp.org/2.0/ja/appendices/2-0-migration-guide.html
> 2.0 移行ガイド
> このページはプロジェクトを2.0に移行する手助けをする、
> CakePHP 1.3からの変更点の要約をします。 またこれは、コアへの
> CakePHP 1.3ブランチからの変更点への最新の開発者リファレンスともなります。
> 必ずこのガイドにある新機能とAPIの変更の全てのページを読んでください。

こういうのもある。たいていの有名どころであれば移行する手段は用意されている。
これを読めば、何が良くて何がダメでダメなものはどう対処すればいいかわかるはず。

こういうのを読んで、移行できない問題点を見つけて、すぐに諦めてるでしょ?

移行っていうのは、自分の作ったシステムのフレームワークを入れ替えて
そのままじゃ動かない。あーだめでした。もうお手上げだー。
移行できない。いつまで延命できるかなー。ってこういうものではない。

移行できないものをどうやれば移行できる形にできるか見つけて、
直して、必要ならば新旧両対応できる書き方に書き換えながら、
移行できない問題点を潰していくのが本当の移行の仕方だ。

これが技術力なんだよ。
0706nobodyさん2013/12/15(日) 01:47:21.85ID:???
>>704
君の非難を素直に受けるし、技術が無いのも確かだろう。
でも、怒りの矛先を向けるのは俺じゃないと思うんだが。

君は技術ありきで話をしているけど、話の最初は>>687だよ?
君が作った素晴らしいコードなら、1.3だろうと2だろうと3だろうと
チョチョイのチョイでバージョンアップできるから、困らないかもしれないね。

だから、バージョンアッップ後の更新作業をしてもお金取ろうとしないのかもね。
でも、そういう考えならやっぱり俺が提示する
「技術の進化と客の要求に対応して折り合いをつける」
ってな事にならないかな?

そもそもスレの流れをちゃんと見てるか?
ちゃんと見ないのに非難する人間って技術力高いのかなぁ。
0707nobodyさん2013/12/15(日) 01:51:11.60ID:???
>>706
> 君が作った素晴らしいコードなら、1.3だろうと2だろうと3だろうと
> チョチョイのチョイでバージョンアップできるから、困らないかもしれないね。

それは大きな勘違い。

未来なんてわからないし、最初は技術力低いのが当たり前
フレームワークなんて難しい物を、最初から完璧に使いこなすことなんて不可能。
最初から素晴らしいコードなんてかけるわけがない。

じゃあどうするか。
それが連続的に変化させていく技術力だよ。

高い開発技術ではなく
汚いコード(古いコード)から、綺麗なコード(新しいコード)へ
変化させていく技術力。

それが圧倒的に足りない。
0708nobodyさん2013/12/15(日) 01:52:59.47ID:???
具体的にどんなコード書いてるんだかw
全部ラップしてるんでしょ?オーバーヘッドえらいことになるやん
0709nobodyさん2013/12/15(日) 01:55:27.23ID:???
>>707
だったら、それを俺じゃなくて
「Cakeのバージョン変えたいけど、お金もほしい」
って奴に言ってくれよ。

俺はどちらかというと、あんたみたいな考え方だよ。
向上心もなく、単に金がほしいなら
「技術の進化と客の要求に対応して折り合いをつける」
ってな言い方はしないだろ?

どこがあんたの気に触ったのかしらないけど、
頼むからスレの流れを読んで非難してくれ。技術云々を語る前にな。
0710nobodyさん2013/12/15(日) 02:20:52.91ID:???
普通に考えて、必要なのは技術力でなく交渉力だと思うんだな。
0711nobodyさん2013/12/15(日) 03:25:11.57ID:???
金出せよ(直球
0712nobodyさん2013/12/15(日) 07:14:03.45ID:???
>>696
なんか俺へのレスから長々と続いてるみたいだけど、それは置いといて。

もっと動作を早くするとか、別のサーバーにのせるために、
CakePHP1から2にする必要があるなら、
それは客が負担するコストじゃね?
実際CakePHP2は1より早くなってるし、キャッシュエンジン使うとかリバースプロキシの導入とか、
他の手も考えてみて、CakePHP2化が有効なら、
後は普通に見積もって提案するのがいいと思った。

機能追加のために、CakePHP2用のライブラリが使えないことに関しても、
CakePHP2化してあれば、機能追加時に使えるライブラリの選択肢が増えて、
機能追加の見積もりが安くなるかもしれないから、コストかけてCakePHP2化しませんか?
って話にならんかね。
それで、CakePHP1のままって言われたら、機能追加は相対的に高めの見積もりになり続ける、と。
まぁCakePHP1で保守開発するのは、高めにもらってもあまりやりたくは無いけど。
0713nobodyさん2013/12/15(日) 13:49:38.36ID:???
全部ラップするくらいならオレオレフレームワーク作れよと。
フレームワークの上にフレームワーク乗っけてるようなもんだから
何がやりたいのかわけわからんわ。
どんなにラップしようがcakephpのバージョン上がったら
それに合わせて書き換えないと動かないんだから
それならはじめからラップなんてしなくていいのよ。
ビジネスロジックだけ分けておくとかならともかく。
ばかばかしいわ
0714nobodyさん2013/12/15(日) 15:02:58.71ID:???
>>713
御意。
0715nobodyさん2013/12/15(日) 21:35:08.31ID:???
>>713
> 全部ラップするくらいなら

誰がそんなこと言ってんの?
0716nobodyさん2013/12/15(日) 21:36:55.56ID:???
あぁ、こいつか。>>708

> 全部ラップしてるんでしょ?オーバーヘッドえらいことになるやん

いきなり的はずれなこと言い出したのはこいつだな。
こいつ以前にはラップという話は出てきていない。

なんでラップなんかするんだか。
0717nobodyさん2013/12/16(月) 13:36:53.84ID:???
上の方で、バージョンの差異を吸収出来る様に云々って言葉が出てきたから、
ラップって言ったんじゃない?

なんか言っている事はすごく正論なんだが、金という最も大事な項目を考えないで議論している人がいる気がする。
現実と理想とで議論しても何時までもかみ合わないというか。
0718nobodyさん2013/12/16(月) 17:10:04.70ID:???
>>712
みんな名無しなので話がややこしくなるが、
俺は>>693、696を書き、なぜか煽ってきた>>700は
「他人(客)のせいにするのではなく、自身の技術の無さを問題視しろ!」
と言ってるわけだ。

だが、俺はそもそも技術云々なんて論じてないし、
出来ない(やらない)とも書いてない。

俺の意見としては>>696に書いたとおり、
「客がバージョンアップを希望する場合もあるし、
 だからといってその分のコストを請求し、納得させるのも難しいから、
 どこかで折り合いを付けなければいけないね」
と言った、中立的な発言をしたわけだ。

開発者としてはバージョンアップでもお金欲しいけど、
客は見た目変わらないからお金を出しづらいね、みたいな。

なのに、なぜか「技術が無いから対応できないんだ!}みたいな非難をされている。
きっとレスの流れを見ずに一部だけを切り取って腹が立ったのだろうけど、
未だに俺のレスの何が癇に障ったのかはわからない。
0719nobodyさん2013/12/16(月) 18:01:53.46ID:???
>>718
お金を出さない客のためになぜ働くんだろうか?
0720nobodyさん2013/12/16(月) 22:23:01.69ID:???
>>719
俺が1.3→2.2にした時は、
フレームワークのバージョンアップとは言わずに、
他の機能を追加する面目で対応したよ。
1.3のままだと不都合を感じたし、蔵も新機能が欲しかったからね。

だけど、バージョンアップだけで見積請求してもいいと思うし、
それに苦言を呈してくる客に対してメリットを感じなければ、
付き合いを止めればいい。それだけの話だよ。
どっちの言い分も考えた上で発言しているだけだから。
0721nobodyさん2013/12/17(火) 01:14:36.31ID:???
>>720
> 他の機能を追加する面目で対応したよ
それが普通

で、そういうことができないって言ってるんでしょ?
自分の書いたコードが1.3にがっつり依存してしまって
全部書き直しぐらいな、そうとう大変なことになってしまってるから。

だからフレームワークを使うのはいいが、
依存しまくらないようにしろという話。
それが出来ない奴は技術力無いってことよ。

そういったらなぜか全部ラップするとか言う
斜め上の対応策が出てきてワロタ。
そうか、技術力低いと、そういう間違った対応をするのか。
0722nobodyさん2013/12/17(火) 01:16:55.25ID:???
>>718
> なのに、なぜか「技術が無いから対応できないんだ!}みたいな非難をされている。

違う違う。「技術がないから金がかかるんだ」って非難してる。
CakePHPの1系から2系へのバージョンアップなんて
>>720みたいに、他の機能を追加する名目で対応しろよ。
0723nobodyさん2013/12/17(火) 04:19:56.51ID:???
>>722
どのくらい大変かは、アプリのボリュームにもよるだろうなぁ。
コンポーネントやビヘイビアをちゃんと書いて、DRYに作っていれば、
移行系は手を入れる必要がある箇所が少なくなって楽になるとは思うけど、
影響がある化も知れないアクションは全てだから、
ボリュームが大きいと、動作確認だけで大変になる。
テストを書いてたとしても、フロントの振舞いこみで確認しないと、
もしエンバグしたら事だからなぁ。
あと確か、1系から2系で、テストフレームワークが変更になった気がするし。

フレームワークのバージョンの移行なんて、ボタンひとつで出来るわけじゃないし、
時間を使う以上金はかかるよ。お仕事だもの。
単純に移行だけで、機能も増えないし見た目も変わらないとなると、
無知な客からすると、どんな見積もりを出しても高く見えるだろうけどね。
でも、無知な客はむしろよりコストを負担して欲しいわ。
0724nobodyさん2013/12/17(火) 11:07:41.43ID:???
誰が誰だかよくわからなくなってるなw
0725nobodyさん2013/12/17(火) 11:10:20.38ID:???
>>721
>で、そういうことができないって言ってるんでしょ?
「それが普通」って認めてるのに、出来ないって言ってるとは??

>>722
718=720なわけだが。レスの感じでわかると思ったけど。
0726nobodyさん2013/12/17(火) 20:14:25.92ID:???
結論、世の中、金。
0727nobodyさん2013/12/18(水) 02:28:32.22ID:???
かねくれかね
0728nobodyさん2013/12/18(水) 08:28:28.95ID:???
ここ数年、Cakeを卒業したいと思いつつ、やはり金と時間が大事で
Cakeを使い続けてるわ…
0729nobodyさん2013/12/18(水) 17:52:24.89ID:???
まあね、Cake以外を勉強する時間も
書籍に消える金も大切ですもんね。
0730nobodyさん2013/12/18(水) 23:54:54.14ID:???
そんなみみっちい
0731nobodyさん2013/12/30(月) 17:33:32.85ID:???
CakePHPよりいいフレームワークなんてないからね
0732nobodyさん2013/12/30(月) 18:23:15.55ID:???
皆さん、良いお年を
0733nobodyさん2013/12/30(月) 18:57:43.73ID:???
来年はPHP 6出ますように
0734nobodyさん2013/12/30(月) 19:49:29.10ID:???
来年はCakePHP卒業
0735nobodyさん2013/12/30(月) 19:50:02.15ID:???
ついでにPHPも卒業
0736nobodyさん2013/12/30(月) 21:52:42.70ID:???
そして2ちゃんも卒業
0737nobodyさん2013/12/30(月) 22:11:14.32ID:???
童貞も卒業
0738nobodyさん2013/12/30(月) 22:45:31.59ID:???
ブラックIT会社も卒業
0739nobodyさん2013/12/30(月) 22:46:21.83ID:???
人生も卒業
0740nobodyさん2013/12/31(火) 03:34:51.36ID:???
マジレスするとCake PHPよりゆるくて俺俺ができるフレームワークないからCake最強
ただし引き継ぎは出来ないと思う
0741nobodyさん2013/12/31(火) 04:17:37.80ID:???
Yii
0742nobodyさん2013/12/31(火) 09:57:07.65ID:???
ああYiiを忘れてた
ゆるゆる具合が素晴らしいな
0743nobodyさん2013/12/31(火) 11:56:15.23ID:???
ゆるいってどういう意味?
0744nobodyさん2013/12/31(火) 12:18:53.48ID:???
Cakeは緩すぎてダメだ
次のシステムは別なのにするわ

Viewがひとつの<?php ・・・ ?>で括られてたり、モデルやコンポーネントを呼んでゴリゴリロジック書いてたりするシステムのメンテはもう無理
0745nobodyさん2013/12/31(火) 13:22:04.12ID:???
>>744
URLに対応したファイルがあって、そこにあれこれ書かないと理解できない人たちの産物か
0746PHPスレ1272013/12/31(火) 16:49:17.45ID:4Xz0mw7Z
PHPスレから来ました

Cakeで途中からMySQLのテーブルに列を増やしたんだがクエリがそれに追随して増えてくれん
そりゃ、$this->query()で直接書けばいいんだが、fetchなんかが増えた列に対応してくれん、、、
どこをなおせばいいんだ?
Model/*phpでdisplay属性に追加すればいいのか?
0747nobodyさん2013/12/31(火) 19:02:25.74ID:???
>>746
>クエリがそれに追随して増えてくれん

普通はフィールドの変更は即座に反映されるぞ。
もっと詳しく書かないと何も言えんがな。

「display属性」って、もう何が何だか・・・
0748nobodyさん2013/12/31(火) 20:06:02.40ID:8qYMp9pv
cakePHPだとどの位の大規模サイトまで耐えられるのかな?
0749nobodyさん2013/12/31(火) 20:13:53.91ID:???
コントローラーが400個あるぐらいのサイトまでなら仕事したことある
0750nobodyさん2014/01/01(水) 01:29:18.48ID:???
>>749
テーブル数はどのくらい?
0751nobodyさん2014/01/01(水) 01:39:21.82ID:???
>>746
CakePHPは、スキーマをコードにしないので、
普通にModelのfind()を使えば、増やしたカラムは取得できるよ。
CakePHPを使っててfetchというメソッドは書いたことが無いから、何のことかわからん。
注意点としては、実はスキーマはキャッシュとしては吐き出されてるから、
このキャッシュが残ってて、カラム追加が反映されないというのはある。
運用モードのdebug 0だと、それなりの時間キャッシュされてる。
開発中ならdebug 2にしてるはずだから、それならキャッシュは毎回生成されるはずなので問題ない。
0752nobodyさん2014/01/06(月) 13:53:28.04ID:???
3.0ついにきたか。
0753nobodyさん2014/01/06(月) 17:42:05.41ID:???
Cakeで使わないフォルダって削除してる?
TestとかVendorとかLibとか。
それともデフォルトのままにしてる?
0754nobodyさん2014/01/06(月) 18:02:00.84ID:???
使うから削除しない
07557462014/01/06(月) 22:30:53.31ID:nz1Q23oZ
>>753
Libは要るだろw
0756nobodyさん2014/01/07(火) 00:08:21.82ID:uOROpRea
皆様の高い知見を期待してスレ違いの質問をさせていただきます。

世界中に事業者ユーザーを持っているサイトを運営しています。
ただ、ばかばかしいことに、彼らが本当に存在しているのか確信がありません。

本来であれば、事業者ユーザーの申請があったときに、手紙でアクティベート用のコードを送る云々などが本人確認には最適だと思うのですが、
実はこれ、費用が莫大になります。

実在する事業者だけを集めたい場合、何か優れた認証方法はないでしょうか?
0757nobodyさん2014/01/07(火) 01:53:19.80ID:???
>>756
サイトを止めてみて、クレームをあげてきたのが本物のユーザー
0758nobodyさん2014/01/07(火) 02:26:20.62ID:???
>>753
消す必要ないしなぁ
0759nobodyさん2014/01/07(火) 02:28:06.56ID:???
>>756
登記簿謄本でも送ってもらえば?
0760nobodyさん2014/01/07(火) 02:59:18.00ID:???
>>752
まだ開発版の最初期だ
今のペースだと今年いっぱいかかるだろ
パッと見た感じ、かなり変化してるな
0761nobodyさん2014/01/07(火) 04:15:26.41ID:uOROpRea
>>759
グローバルで展開しているので・・・
0762nobodyさん2014/01/07(火) 09:48:08.32ID:???
3.0安定版になってもたぶん2.4のままで行きそうだ
0763nobodyさん2014/01/07(火) 12:32:14.31ID:???
>>756
本人確認だけならTwilioとか使って電話応答確認すれば
ある程度のフルイにはかけられるんじゃないかと思うが。

実体のある事業者かどうかなんてことは、
それこそ地方自治の役所ですら把握しかねるだろうから
諦めたほうが良いんじゃねぇの?

それじゃなきゃそんだけ採算取れる事業ってことなら
結局は金かけて調べるってことにしかならないと思う

むしろ安価でそれを調査できる仕組みを作ればそれだけで飯が食えるだろ
0764nobodyさん2014/01/07(火) 15:04:00.93ID:uOROpRea
>>763
twilio、私も昨日の深夜に辿り着いて、色々調べていました
電話は他の一般ユーザーに登録させているので、その電話番号から認証すればOKということにするのが次善策なのかなと思いました。
事業者が一般ユーザーを装って、先回りで電話番号を登録してたら偽装しほうだいですが。

一般ユーザーに監視させ、疑いがある場合は手紙(住所)での認証を求めようかな。手紙は日本国内向けとそんなに変わらないので、件数さえ押さえれば何とかなります。

仰るように、日本の役所ですら全部把握するのは難しいですし、ある程度割り切りが必要ですね。

ありがとうございました。
0765nobodyさん2014/01/07(火) 17:44:06.60ID:???
>>756
それってCakeで作ってるの?
0766nobodyさん2014/01/11(土) 15:05:10.50ID:+1e/PKP4
Cake も PHPも初心者です。

ここを参考に写経しているんだけど、リダイレクト引数がわたってくれません。
ttp://libro.tuyano.com/index3?id=738001&page=5

自分が書いたコード
 http://codepad.org/PM79JO8d

other の出力が dummy になってしまうので、引数がわたってないってことですよね?
redirectを2通りの方法で書いてますがどっちも同じ.

環境は Win8 + Web Matrix です。
0767nobodyさん2014/01/11(土) 15:46:24.87ID:???
よくわからんがとりあえず、その仕組みはCakePHPの用語で言うところの
passed argumentsなので、リダイレクトはおいといてそれだけで確認してみたらどうだろう。

わかってるとは思うけど、デフォルトのルーティング設定なら、

example.com/contrllers/action/passed_arguments

こういうURLになるので、

example.com/sample/other/foo

これでアクセスして、送られた値= foo となるかどうか。

これが動く場合、リダイレクトした結果のURLと、上で確認したURLを見比べたら何かわかるかもしれない。
07687662014/01/11(土) 16:02:01.38ID:???
時刻フォーマット H:i:s のコロンがいけないみたいだと分かった。H_i_s ならうまくいく。
でも urlencode してるんだけどな。。。
IEの問題かとも疑ったけど、firefoxでも同じだった。
0769nobodyさん2014/01/11(土) 16:26:13.52ID:???
>>768
ああ、そういうことか。
CakePHPにはpassed argumentsのほかにNamed parametersという仕組みがある。
これはkeyとvalueをコロンで区切ったものなんだ。
詳しくはドキュメント参照。

http://book.cakephp.org/2.0/en/development/routing.html#named-parameters

おそらく、/で区切られたディレクトリのようなURLでありつつ、
key:valueなパラメーターを渡すために用意された仕組みなんだろうけど、
通常のクエリーストリングとできること被ってるし、
CakePHP3では廃止されると聞いてる。
実際のところはよく知らんけど。
0770nobodyさん2014/01/11(土) 22:11:29.88ID:???
>>768
特におかしな所無さそうと思ってコピペしてやってみたら普通に動いたけども
Mac Safari / Chrome共
0771nobodyさん2014/01/11(土) 22:16:34.58ID:???
ちなみにController::redirect() に
$this->autoRender = false; が既に書かれているんで
リダイレクト時にはわざわざ書く必要はないっすよ
07727462014/01/11(土) 23:04:18.40ID:2cCSIQxG
モデルのアソシエーションって必要?
クエリで結合させてquery()に渡せば同じ事なの?
0773nobodyさん2014/01/11(土) 23:47:21.89ID:???
>>772
絶対的に必要だと思うよ。
時間かけてでも学ぶべき。

query直でも同じ結果だろうけど、それじゃドライじゃないね。
0774nobodyさん2014/01/12(日) 07:53:33.34ID:???
>>766
質問と関係ないけど
private function now_time(){
は、
private function _now_time(){
がいいよ。
public以外は関数名に_をつけるっていう。
あと文末の?>は不要。
0775nobodyさん2014/01/12(日) 10:51:35.14ID:vGoVpF+Z
[mysql5 apache cakephp2]
バッチ処理中にテーブルロックをかけており、
バッチ処理中はクライアントからのselectをエラーとして返したいです。

こちらで試したものは、
innodb_lock_wait_timeoutを設定し、selectをタイムアウトさせる
というものでしたが
タイムアウトしませんでした。

どのようにすればタイムアウト(もしくはテーブルロックを検知)できるのでしょうか?
0776nobodyさん2014/01/12(日) 15:44:58.79ID:???
よくわからんけどWRITEロックすればええんちゃうの?
0777nobodyさん2014/01/12(日) 17:33:27.87ID:???
シェルからcakephpのcron動かす場合って、ブラウザ経由では動かないような重い処理でも動く?
共用サーバー、vpsの両方を使ってますが。教えて下さい。
0778nobodyさん2014/01/12(日) 18:18:22.27ID:???
>>777
無理
0779nobodyさん2014/01/12(日) 18:20:25.36ID:???
>>778
ありがとうございます。
07807462014/01/12(日) 19:23:52.45ID:eraGilbY
じゃぁアソシエーションで外部結合ってどうやってかくの?
07817462014/01/12(日) 19:51:04.52ID:eraGilbY
あ、モデルの片側にしか書かなきゃいいのか>>アソシエーションと外部結合
07827752014/01/12(日) 19:54:19.20ID:vGoVpF+Z
>>776
バッチ処理側でlock writeをしているので、
クライアント側からselectするとタイムアウトすると思われたのですが、
タイムアウトすることなく、ずっとクエリ結果を待っている。
さらに、クライアント側が結果を待っている間に、
バッチ処理側でunlockをすると、
クライアント側にphp実行時間オーバーというエラーが表示されます。
0783nobodyさん2014/01/13(月) 03:03:19.61ID:???
>>777
重いってのがどの程度のことを言ってるのかわからないけど、
ユーザーを待たせすぎるような時間のかかる処理や、
集計みたいなユーザーのリクエストに拠らないし、時間のかかる処理は、
CakePHPのシェルで書いてcronから起動するってのはよくやるよ。
0784nobodyさん2014/01/13(月) 03:04:51.41ID:???
>>782
ロックとかしないからよくわからんわ。
まぁ、その辺はPDOとMySQLの間の問題だろうし、
MySQLかPHPのスレで聞いたほうがいいじゃない?
0785nobodyさん2014/01/13(月) 10:17:24.81ID:???
>>783
ブラウザ越しにやると、
30秒メモリーなんたらというエラーを吐く処理ですね。
07867462014/01/13(月) 10:36:55.49ID:tHg0j5+R
あれ、やっぱり外部結合がわからん、どーやってquery関数を使わずに
外部結合を実現させるんだ?
0787nobodyさん2014/01/13(月) 10:57:22.69ID:???
>>786
find のパラメーターのjoinsをいじる
0788nobodyさん2014/01/13(月) 11:54:04.96ID:???
>>786
has one
belongs to
has many

をググってみよー
0789nobodyさん2014/01/13(月) 12:26:21.11ID:???
アソシエーションはCakeの最初の壁
0790nobodyさん2014/01/13(月) 13:08:06.60ID:???
>>785
なんかエラーメッセージが混ざってる気がするが、
cronから起動したとしてもPHPが使えるメモリ上限はphp.iniに設定されているし、
実行時間上限も、確かされていたような気がする。
そのどちらも、ini_set()で変更可能だし、確かCLI用のphp.iniを用意する方法もあった気がする。
ともあれ、ブラウザ越しでは有効な実行時間上限とメモリ上限より、
大きい上限を設定してやればいい。

設定でメモリ上限を無限にすることもできるけど、当然積んでるメモリを使い切ったらダメだから、
重すぎる処理はダメ。
あと、VPSは仮にもroot権限あるだろうからいいけど、共用は無いと思うので、
メモリ上限とかを変更できるかどうかは、鯖しだいじゃね。
0791nobodyさん2014/01/13(月) 13:12:00.94ID:???
has manyはJOINをしてるわけじゃないけどな
0792nobodyさん2014/01/13(月) 14:00:43.33ID:???
>>790
詳しくありがとうございます。
助かりました。
07937752014/01/13(月) 15:02:01.49ID:qnOxD/aG
>>784
回答ありがとうございます。
他スレで質問してきます。
0794nobodyさん2014/01/17(金) 13:54:07.36ID:G1JYixnY
みんな定数ってどうやって書いてる?
Model View Controllerのどこからでもアクセスしたい場合は
bootstrap.phpにdefineかConfigure::writeで書くのが
定石だと思うんだけど、配列の扱いが上手くいかない

扱う情報としては 1:man 2:woman 3:other という感じのシンプルなもので、

やりたいことは
1. 1というキーからmanという値が一発で取得できる
2. manという文字列から1というキーが一発で取得できる
3. radioボタンやselectボックスのoptionsにそのまま指定してフォームが作れる
の3点なんだけど

Configure::write('Gender',
  array(
   1 => 'man',
   2 => 'woman',
   3 => 'other',
  )
);

って感じに書くと1と3は実現できるんだけど2の文字列からキーの取得が
array_keysとか使わないとできなくて多少面倒なんだ

何かうまい書き方があったら教えてくれ
0795nobodyさん2014/01/17(金) 15:47:12.66ID:???
>>794
たしかphpも5から定数に配列をつかえるようになったんじゃないっけ?

俺もあなたと同じ方法でやってます。
0796nobodyさん2014/01/17(金) 16:20:23.00ID:???
Configure ディレクトリ下に単純なgetterクラスの
ConfigureGender クラスみたいなのを作るというのは?
0797nobodyさん2014/01/17(金) 16:23:24.34ID:???
俺も>>794みたいな配列作って1からmanに変換とmanから1に変換する関数をそれぞれ自前で書いてる
getKeyByValue( 'Gender', 'man' ) // 1が返る
getValueByKey( 'Gender', 1 ) // 'man'が返る
みたいな
こういう自前関数を1クラスにまとめてLib以下に置いてbootstrapでApp::usesしてる
0798nobodyさん2014/01/17(金) 17:29:25.79ID:???
もうモデルにしちゃいなよ
0799nobodyさん2014/01/17(金) 18:22:00.66ID:???
>>797
俺もほぼ一緒。
俺の場合、まとめ先がHelperになってる。
0800nobodyさん2014/01/18(土) 01:54:27.23ID:???
>>794
って感じに書くと1と3は実現できるんだけど2の文字列からキーの取得が
array_keysとか使わないとできなくて多少面倒なんだ

Key/Valueだし仕方なくね?

というか、3のようにして作ったoptionタグから帰ってくるのは、値のほうじゃなく、keyである数字のほうでさ、
それをDBに入れるし、取り出して使うときは1の取得で文字列にして表示だから、困った経験があまり無いぞ。
2の取得をするって機会があんまないきがする。

あってもarray_flip()でひっくり返せば配列アクセスできるし、そんなに面倒かね?
08017942014/01/18(土) 19:26:16.46ID:???
多数のレスありがたい
値からキーを取るのは定数定義とは別に書いた方が良さそうだね

>>800
たとえばこんな感じでコントローラーやビューで使いたい
ビューで使わないのなら>>798の言うようにモデルに任せるのが一番いいんだろうけど
if ($gender == Configure::read('Gender.man'))
0802nobodyさん2014/01/19(日) 10:13:44.22ID:0MqMVmkC
教えてください。

今、PCの故障でCAKEPHPを新しいPCへ移行中なんですが、
CAKEPHPのバージョンとソースは以降前と同じでDBを復元し、動かすと以下のエラーが表示されてしまいます。
----------------
Missing Database Table
Error: Database table logs for model Log was not found.
Notice: If you want to customize this error message, create app/views/errors/missing_table.ctp
----------------
database.phpや$uses=>array()などを試しては見たのですが、原因がわかりません。

確認すべき場所など原因をご存知の方がいらっしゃいましたら教えてください。
---------cakephpバージョン---------------
1.3.12
----------------database.php-------------
class DATABASE_CONFIG {
var $default = array(
'driver' => 'postgres',
'connect' => 'pg_connect',
'port' => '5432',
'host' => 'localhost',
'login' => 'cakeuser',
'password' => 'cakeuser',
'database' => 'phpmain',
'encoding'=>'EUC-JP',
'prefix' => ''
);
}
-----------------------------------------
0803nobodyさん2014/01/19(日) 15:30:52.90ID:???
>>802
エラーメッセージを、読め!
0804nobodyさん2014/01/19(日) 15:33:16.41ID:???
>>801
あーなるほどね。
確かにそういう使い方はしたいな。
納得はしたけど、すまんけど特に提案できる方法はもってなかった。
Configureが内部的にarray_flipしたのを持ってたりして、keyからでもvalueからでも取れればいいのになー
0805nobodyさん2014/01/19(日) 16:02:35.99ID:???
Cakeで開発するとDBスキーマがいちいちキャッシュされてめんどい
(テーブルにカラム増やしてもキャッシュが効いてて反映されない)
モデルキャッシュを無効化する方法ないの?
0806nobodyさん2014/01/19(日) 16:34:55.98ID:???
Modelの$cacheSource
0807nobodyさん2014/01/19(日) 23:36:21.74ID:???
CakeEmailってめっちゃ便利なんだが、送信したあとの本文を
データベースとかに保存しておきたい場合、どうすればいいんだろう。
0808nobodyさん2014/01/20(月) 00:26:36.62ID:???
message()っつうメソッドがあってだな
0809nobodyさん2014/01/20(月) 00:29:49.05ID:???
マッサージか
0810nobodyさん2014/01/20(月) 00:48:11.93ID:???
シャッチョさんヤスイヨー
08117462014/01/20(月) 02:15:34.59ID:WMGmZL6V
gmailでfromを書き換えたい・・・>>CakeEmail
ま、出来ないのはCakeEmailだけじゃないけどさ
0812nobodyさん2014/01/20(月) 09:19:53.03ID:???
出来ますが?
0813nobodyさん2014/01/20(月) 13:51:40.06ID:???
Twitter Bootstrap3でいいスケルトンどっかに無い?Bake用の。
0814nobodyさん2014/01/20(月) 14:00:14.69ID:???
使ったこと無いけど、BoostCakeはどうなん?
0815nobodyさん2014/01/20(月) 14:01:05.46ID:???
>>814
いいよ!
0816nobodyさん2014/01/20(月) 14:13:36.53ID:???
BoostCakeはいいけど、Bake用のスケルトンはいってなくない?
前身のやつにはあったんだけど、あれはbootstrap2だし。
0817nobodyさん2014/01/23(木) 13:12:43.27ID:???
質問
$this->request->queryってコントローラのコンストラクタの中じゃ参照できないのか?
俺の勘違いだったらいかんから、お前らも試してみてくれ
0818nobodyさん2014/01/23(木) 13:22:37.04ID:???
教えてください。
1.3で作成したAPIに、SecurityコンポーネントでBasic認証をかけたいと思っています。

そこで1.3の該当マニュアルを読んで進めておりますが、
requireAuth()
requireLogin()
loginCredentials(string $type)

この3つのどれを使うのが良いのか分かりません。
違いと実装の例など教えていただけませんか。
0819nobodyさん2014/01/23(木) 23:16:39.26ID:???
>>817
parent::__construct();が抜けてんじゃねーの?
0820nobodyさん2014/01/24(金) 00:03:19.65ID:???
コントローラのコンストラクタなんて触ったこと無いな。
変わったことやってんのか?
0821nobodyさん2014/01/24(金) 01:25:22.59ID:???
>>818
1.3なんてもう覚えてないけど、認証はAuthコンポーネントじゃないの?
CakePHP2ではAuthだぞ。
SecurityコンポーネントはCSRF対策とか、そういうの用だと思うが。
0822nobodyさん2014/01/24(金) 08:54:07.70ID:OhuU+SsS
cakePHPの入門書でオススメあったら教えてくだしあ><
0823nobodyさん2014/01/24(金) 09:17:20.30ID:???
>>821
ありがとう。CakeでウェブAPIをつくっているので、Authコンポーネントではなく、
Securityのベーシック認証にしたいのです。
08247462014/01/25(土) 00:27:35.89ID:fnA/g+QM
コントローラをFacadeパターンにして実務処理は自作のちっさいコントローラクラスにやらせれば良いの?
クラス設計するなら
0825nobodyさん2014/01/25(土) 00:34:45.21ID:???
Model だろ普通
0826nobodyさん2014/01/25(土) 00:38:00.50ID:???
CakeがMVC2の勘違いをkskする
0827nobodyさん2014/01/25(土) 00:42:48.60ID:???
>>822
これ、というのは無いなぁ
ただ、「CakePHP事典」と「レシピ119」だっけ?
あれはひと通り目を通すといいと思う。
CakePHPの機能を結構カバーできてる。
ただ、レシピの方は今ひとつ癖があるなぁって思った。
まぁ、ひとつの参考としては良いと思うよ。

網羅性に欠けるけど「実践」もいい。

まぁ、この3冊に全部目を通して損はないと思うよ。
08287462014/01/25(土) 00:46:35.74ID:fnA/g+QM
あ、モデルだよなw
CakeでモデルつーとDBのテーブルを連想してしまってた
08298222014/01/25(土) 05:12:01.03ID:???
>>827

あざっす m(_ _)m
08307462014/01/25(土) 13:37:17.68ID:fnA/g+QM
いきなりbakeを使わせる本を入門書には向かないと思うが>>実践
0831nobodyさん2014/01/25(土) 13:56:53.37ID:???
知らない
0832nobodyさん2014/01/25(土) 14:52:32.45ID:???
>>828
CakePHPのモデルはDBとくっつきすぎていて、
そこにロジックを入れるのはちょっと違う感じもするようになった。
0833nobodyさん2014/01/25(土) 14:55:02.37ID:???
CakePHP辞典も入門としては使えないと思った。
いやいい本だし、入門時でも慣れてきても、
ソースコードを見るかCakePHP辞典を見るかって時はあるから、
持っといて損はないと思うけど。
あれで入門しようというのは難しいとおも。
0834nobodyさん2014/01/25(土) 15:06:07.31ID:???
だから、コレというのはないと言ったんだ。
1系の時みたいな手取り足取りのチュートリアル本は無いからな。

もし本当に初心者で一からCakePHPをやりたいっていうんなら
ブログチュートリアルを暗記できる程度まで繰り返し覚えろとしか言えない。

ただ、実践本が初心者向けでないことは確かだった。あれは奨めない。
0835nobodyさん2014/01/25(土) 15:07:52.67ID:???
ActiveRecord=モデルみたいな誤解を広めたRailsが全ての元凶
Cakeは犠牲になったのだ
0836827, 8342014/01/25(土) 16:41:20.78ID:???
「はじめてのCakePHP (I・O BOOKS)」っていう本があるみたい。
読んでないんでなんとも言えないけど、
Amazonの書評とサンプルコードダウンロードしてみた感じ、
入門書として、ひょっとしたら良いかもしれない。
コードの一部が古いので注意する必要ありだろうけど。

(パッと見て、コントローラのプロパティ宣言キーワードに public を使わずに var を使ってるのはヤバイわ)
0837827, 8342014/01/25(土) 17:56:10.31ID:???
そういえばCakePHP辞典って正誤表を公開するって
随分前に著者がツイッターで言ってたんだけど
音沙汰なしだな。。。
0838nobodyさん2014/01/25(土) 18:59:02.53ID:???
>>837
まさぴーだな。
あの人のソースが一番わかりやすいし綺麗。
本もわかりやすい。
俺はお勧め。
0839nobodyさん2014/01/25(土) 22:40:50.09ID:???
CakePHP2でvarを使ってるってだけで敬遠したい。
08407462014/01/26(日) 00:18:39.58ID:2eFTwFkL
メンバ変数、みたいなのは$componentsに入れなきゃダメなのか?
コントローラで $this->hogehoge みたいな使い方したい場合
08417462014/01/26(日) 00:27:11.25ID:2eFTwFkL
多少、誤植とかあるけど
WebデザイナーのためのCakePHPビューコーディング入門
ttp://www.amazon.co.jp/dp/4798033146/
はプログラマ向け入門書としてもそこそこよかったと思った。前半しか読んでねーが
0842nobodyさん2014/01/26(日) 00:45:57.89ID:???
>>839
俺もvarだけどなんかダメなん?
0843nobodyさん2014/01/26(日) 02:18:11.54ID:???
>>842
PHP5になって何年たったと思ってるんだ。
0844nobodyさん2014/01/26(日) 02:19:40.46ID:???
>>798
俺モデルにstaticで関数作って使うクラスだけapp::usesして使ってるけど(bootstrapまわりのグローバル層には置かない)
これって少数派なのかね
0845nobodyさん2014/01/26(日) 02:20:44.56ID:???
>>746
あなたの書き込み最初から読ませてもらったけど、
フレームワークって、あなたの思ってる「プログラミング」にくらべると
すごく不自由なもんだと自覚した方が吉。

何しろ他人が「型」を作って、それに自分を嵌めこむ作業だから。

特にCakePHPはCodeIgniterやYiiなんかと比べるとその傾向は強いと言われる。

まずは開発者の意図を極力咀嚼して定形と言われる方法で開発するところから始められないなら、
フレームワークなんて使う意味ないよ。
0846nobodyさん2014/01/26(日) 02:25:24.29ID:???
array()はまだいいけど、varはさすがにちょっと…。
0847nobodyさん2014/01/26(日) 02:25:56.65ID:???
>>840
PHP初心者なのか。
メンバ変数って単語を知っててなぜそうなるのか疑問だが、

class Foo{
public $foo = 1;
public function bar(){
return $this->foo;
}
}

な
0848nobodyさん2014/01/26(日) 02:26:09.48ID:???
>>844
全然いいんじゃない?
static ならテスト書きやすいし
ただ、Modelに入れずにLibに入れるかってのはある。
Modelにしちゃうと色々副作用とか考慮する必要もあるし。
0849nobodyさん2014/01/26(日) 02:32:12.27ID:???
>>848
とっ散らかるのイヤだなーとモデルごとに置いてて、今まで特に問題は起きてないけど
Lib層の使いこなしは考えていきたいね
ロジックはMVCで分けても、定義まわりは汎用的に使いまわしたいこと多いしな
0850nobodyさん2014/01/26(日) 02:51:45.24ID:???
マジか!もうvar使わないのか。
時代が流れるの早いなー!
0851nobodyさん2014/01/26(日) 03:30:04.12ID:???
>>847
いや、>>840 が言ってるのは Component のオブジェクトプロパティを
直接指定できないかってことでしょ。
で、フレームワークが $components の内容を参照して勝手にセットする
しか方法がないのかってことにイラついてるんだろ。
0852nobodyさん2014/01/26(日) 04:22:27.54ID:???
>>851
ああそういうことか。
じゃぁ

$this->Foo = $this->Components->load('Foo');
0853nobodyさん2014/01/26(日) 04:25:33.67ID:???
>>850
おいおい、俺がこの業界にまだ入りかけで、アルバイトでPHP書いてたときですら、
アクセス修飾子書いてたぞ。
もう5年以上は前の話だ。
0854nobodyさん2014/01/26(日) 04:51:42.85ID:???
>>853
PHP歴、俺は10年以上だな。おっさんだ。。。
プログラムだけは経験多くても新しいのについてけないとダメだな。

var でも privateでもpublicでも何も変わらん気がするんだけどどうなん?
で、varが3文字で無難だからという理由で使ってるんだけど。
教えてください。
0855nobodyさん2014/01/26(日) 05:06:46.50ID:???
>>854
テスト書いてる?

変えちゃいけないインターフェース(public){=テストする}と
変えてもいい内部でだけで使うメソッド(private){=テストはpublicメソッド経由で行う}を
varでどうやって区別するんだい?

どっちでもちゃんと動くからいいというものではなく、
重要なのは、コードに"意図"を記述できるかどうかだよ。
0856nobodyさん2014/01/26(日) 05:09:49.74ID:???
>>855
すげー!
そんな違いがあるのか。
勉強になりました。
テストは書いてないです。
ありがとう。
0857nobodyさん2014/01/26(日) 05:21:51.60ID:???
>>854
アルバイトが長かっただけで俺もそれなりにおっさんだけど。
varで書かれたコードは見た目が気に食わない。

というのも、varは互換性のためpublicと同じになるから、
private, protectedが使えないわけだけど、
JavaScriptみたくアクセス修飾子がないけどうまくやってる言語もあったりするから。

とはいえ、途中参加のPHPプロジェクトに入ったりしたら、既存のコードを読むときに、
publicなのかそうじゃないかは、コードを読むときに手がかりにするし、
というかpublicメソッドだけ追ったほうが概要がつかみやすいと思う。

まぁ、1人で作ってたり少人数チームだったりすると、アクセス修飾子なんてなくても、
なんとなくわかったりするし、privateには _ つけるといった運用カバー的方法もあったりするし、
どうしても徹底しないととは、正直言いづらい。
だから、見た目が気に食わない。
0858nobodyさん2014/01/26(日) 09:20:27.99ID:???
>>854
varもpublicも変わらんというならまだしも、
privateとpublicが何も変わらんと思ってるってことは、手続き型しかやってなさそう。
テストの無い数千行の神クラス・・・。
08597462014/01/26(日) 10:00:51.56ID:2eFTwFkL
>>847
> >>840
> PHP初心者なのか。

PHPもCakeも3ヶ月くらいしか経験はない
練習で掲示板を作ったくらいだ

>
> class Foo{
> public $foo = 1;
> public function bar(){
> return $this->foo;
> }
> }

できるんだな。サンクス
今作らされてる仕事でコントローラーばかりにコードを書くとクラスが肥大してヤだから
URLから呼ばれるコントロールをFacadeにして個別機能を小さくクラスわけて new したいな、
と思ってる所なんだ
0860nobodyさん2014/01/26(日) 10:25:55.73ID:???
>>859
じゃぁ

コントローラをFacadeにするのは正解。
ビジネスロジックを別クラスにするのも正解。
一般的に、ビジネスロジックはModelに書くのが良いとされている。
一つのModelばかりになんでも詰め込んで肥大化させるのはあまり良くない。
複数のモデルで共通する振る舞いはBehaviorを作るのが正解。
Modelとテーブルの関係を外して新たなModelを書くのはOK。
Libに新しいクラス作ってもいいよ。

ってところ。
08617462014/01/26(日) 10:42:05.01ID:2eFTwFkL
>860
ありがとう。少し光が見えてきた
0862nobodyさん2014/01/26(日) 12:35:40.50ID:???
作るものにもよるかもしれんけど、コントローラーやモデルに、
そんな沢山書かないとな場合て、そんなにないよな。

もしそうなら、コントローラーも、新たに作ったコントローラーもモデルも、
数行しか書いてないみたいには、しないほうがいいと思うよ。

find2回して、片方をforeachでまわしてちょっと加工して、
あとは表示なんてのは、そのページでしか使わないんだったら、
もうコントローラーに書いておけばいいと思ってる。
0863nobodyさん2014/01/26(日) 12:57:42.83ID:???
>>862
それだと、テストが難しくなる。
0864nobodyさん2014/01/26(日) 13:08:34.52ID:???
>>863
すべてをテストする必要はないんじゃね。
find2 foreach1だけなら、ほぼ間違えないし、
テスト可能にする事も含めて、テストのコストのほうが高いと思う。
foreachの中身が1行2行という想定だけど、
もしこれが複雑なものなら、foreachのとこだけ切り出してテストできるようにはしてもいいと思うけど。
0865nobodyさん2014/01/26(日) 15:09:54.48ID:???
>>860
Cakeって案外不親切だよな
自由度が高いといえば聞こえはいいが
0866nobodyさん2014/01/26(日) 17:52:52.45ID:???
CakePHPは自由度高くないでしょ
0867nobodyさん2014/01/27(月) 08:26:21.27ID:???
2014年にもなって「varって何が悪いの?」レベルのことを言う経験10年って・・
不勉強とかそういうレベルじゃねーだろ
0868nobodyさん2014/01/27(月) 09:15:59.49ID:???
化石だな
0869nobodyさん2014/01/27(月) 10:27:59.61ID:???
(俺も正確に理解せずに使ってた、なんて言えない・・・)
0870nobodyさん2014/01/27(月) 13:43:50.37ID:???
var使ってますってのは
私はいまだにOOも理解してない手続き型しか書けない老害です
って宣言と同義
0871nobodyさん2014/01/27(月) 17:32:39.84ID:???
アクセス権はOOに必須ではないがな
0872nobodyさん2014/01/28(火) 09:32:01.09ID:???
カプセル化はOOのキモだと思う
0873nobodyさん2014/01/28(火) 11:26:46.25ID:???
そりゃそうだ
0874nobodyさん2014/01/28(火) 12:09:08.34ID:???
全部publicにstaticに…ってただのファイル分割だわ
そういやそんなおじさんがいたな…
0875nobodyさん2014/01/28(火) 12:36:13.58ID:???
varおじさん
08767462014/01/29(水) 08:28:57.79ID:4MhCoapX
アクション名と違うファイル名のctpを使うにはどうしたらいいの?
アクション名がかぶりそうなんだよ
0877nobodyさん2014/01/29(水) 08:47:04.63ID:???
Viewフォルダ内をコントローラごとにフォルダ分け
同一コントローラで名前がかぶりそうなら設計があやしい
0878nobodyさん2014/01/29(水) 17:13:25.95ID:???
>>876
コントローラの中で

$this->render('任意の名前');
0879nobodyさん2014/01/29(水) 22:52:44.55ID:???
かっこいいbake用skeletonどこにありますかね…
なかなか見つかりません
08807462014/01/29(水) 23:39:01.19ID:4MhCoapX
>>878
サンクス。調べてたら$layerの使い方もなんとなくわかった気がしてきた
0881nobodyさん2014/01/30(木) 02:58:52.18ID:???
Amazonみたいにさ、
この商品を見た人は、以下の商品も見ています。

ってのを作りたい場合、どのように作ればいいか教えてもらえませんか?
0882nobodyさん2014/01/30(木) 03:35:25.70ID:???
閲覧ページのURL、ページ遷移、滞在時間とかを取得して、
統計データから商品Aから商品Bへのスコアを計算して、
閾値を設定して、それを超えたものをスコア順に並べる

みたいな感じじゃないの?
0883nobodyさん2014/01/30(木) 03:39:02.25ID:???
FacebookとかAmazonレベルだと複雑なスコア算出の式をしてるだろうが、
とりあえず何らかの指標で弾き出したスコアを元にリストアップってのはどこも同じはず。
0884nobodyさん2014/01/30(木) 07:39:44.50ID:???
オライリーから、集合知プログラミングって本が出てたはず
わりとそのものズバリな内容が書いてあった
中のコードはphpじゃないけどpythonだから読みやすいし
0885nobodyさん2014/01/30(木) 09:24:11.61ID:???
奥が深い分野だから、Amazonと同じ精度出すだけでも、
難易度相当高いよ。
0886nobodyさん2014/01/30(木) 09:35:06.95ID:???
同じ精度出す必要無いよ。過剰実装だ。
単純に文字通り受け取って、リファラから商品IDを集計すれば良いだけだろ。
0887nobodyさん2014/01/30(木) 10:50:07.49ID:???
>>884
881じゃないけど横からサンキュー
08887462014/01/31(金) 01:19:24.89ID:nps2dTDl
アクションとURLの関連性を任意にしたい場合、config/route.phpのRoute::connectで指定してやればいいの?
0889nobodyさん2014/01/31(金) 09:22:20.73ID:???
>>888
おっけーです
0890nobodyさん2014/01/31(金) 13:18:43.14ID:???
CakePHPがあまり関係ない+そんな基礎的なことをと言われそうだけど、
よく見てるスレってここくらいだし、一応CakePHP使って作るし、質問させてくれ。

入力、確認、完了というよくあるフローの投稿機能なんだけど、
入力の段階でテキストやプルダウンなどのほかに、画像アップロードがあるんだ。
確認ページでは画像アップロードは完了させて、確認できるように表示する。
完了すれば、画像は所定のディレクトリに保持されて、ファイルパスが他のテキストとあわせてDBに入る。
確認の段階で戻ったり、完了に到達しなかったら、テキストも画像も保持しない。

良くある話だとは思うけど、確認ページ+画像アップロードが、なんか久しぶりで、
さらにcronが使えないサーバーで動かす予定なんだ。
前やったときは、daily cronで完了に至らなかったケースの画像を削除してたんだけど、
その方法が使えないから、どうしたものかと悩んじゃって。

この画像の後始末って、普通どうやってやるもんなのかな?
0891nobodyさん2014/01/31(金) 21:38:59.99ID:???
>>890
俺ならcron使えるサーバー使う。
0892nobodyさん2014/01/31(金) 21:40:33.68ID:???
>>890
というか、いちいち俺は削除しないな。
下手に削除プログラム走らせるとバグの原因になる。
ゴミデータあっても誰も見ないし。
0893nobodyさん2014/01/31(金) 22:07:45.62ID:???
トリガなんてなんでもええやろ
ユーザリクエストでもいいし外部Cronでもいいし脳ミソ0か
0894nobodyさん2014/02/01(土) 01:04:49.93ID:???
乱数でハズレ引いたユーザーに負担してもらう
0895nobodyさん2014/02/01(土) 11:45:31.12ID:???
>>890
俺は正式アップロード用のフォルダとそうでないのと分けてるよ。
後から手動で消しても大差ないし、SSHからなら一瞬だしな。
0896nobodyさん2014/02/01(土) 12:00:34.17ID:???
今まさに正式アップロードになろうとしてるやつを手動で消さないように注意ね
0897nobodyさん2014/02/01(土) 14:32:58.78ID:???
それは日付指定して削除すればいいだけだよね
0898nobodyさん2014/02/01(土) 14:57:34.78ID:???
解決
しゅーーりょーー!
0899nobodyさん2014/02/19(水) 17:11:55.42ID:???
てすつ
0900nobodyさん2014/02/19(水) 21:57:40.50ID:???
政党助成金で借金返済していた 
http://www.jcp.or.jp/akahata/aik13/2014-01-21/2014012115_01_1.html
舛添要一元厚生労働相
0901nobodyさん2014/02/19(水) 23:22:12.01ID:???
また都知事選やるの?いい加減にしろ
0902nobodyさん2014/02/20(木) 06:30:09.81ID:???
なんとなくフレームワーク作ったんだけど
どこに公開すれば見てもらえそうかな?
0903nobodyさん2014/02/20(木) 09:10:38.08ID:???
github? でもセキュリティ関係最優先じゃないと相手にもしてもらえんよ
0904nobodyさん2014/02/20(木) 14:25:47.40ID:???
えっ
0905nobodyさん2014/02/21(金) 10:04:17.22ID:???
×せっかく作ったから見て欲しい
◯他人にバグチェックして欲しい
09067462014/02/22(土) 01:05:45.30ID:2RhH+s5m
ctpにコントローラを直接setしてモデルの表を作ろうと思ったんだが、できないんだな、残念

こんなかんじ
$this->set('controllet', $this);
0907nobodyさん2014/02/22(土) 06:40:06.00ID:eWHrltNv
え?
0908nobodyさん2014/02/22(土) 11:16:29.17ID:???
bootstrap3ベースのbake用テンプレを早く教えてくれ…
0909nobodyさん2014/02/22(土) 11:35:21.57ID:???
CakePHPについて質問したいんだがどこかいい掲示板ありませんか
公式フォーラムみたいなのないの?
0910nobodyさん2014/02/22(土) 12:01:29.59ID:???
なんかあったと思うけど、ググっても投稿日が2009とか2010ばかりヒットするので今動いてるのかどうか
Stackoverflowで英語で質問するか、他の人の英語の回答読むかしたほうが早いことが多い
0911nobodyさん2014/02/22(土) 12:04:13.17ID:???
Stackoverflowでコーディング以外の質問したらいきなりサスペンドされて以来使ってないな
あそこいろいろうるさいよね
0912nobodyさん2014/02/22(土) 15:22:58.24ID:???
test
0913nobodyさん2014/02/22(土) 15:51:42.33ID:???
テストならPHPUnitでやれ
0914nobodyさん2014/02/23(日) 03:41:44.73ID:???
>>906
それが出来てしまったら構造がぐちゃぐちゃになって破綻するんよ。
まぁViewにModelを渡せないのは使いにくいっていう人たちも居るけどな。
0915nobodyさん2014/02/23(日) 03:43:48.97ID:???
>>909
このスレの速度見てもわかるとおり、CakePHPはなんか過疎ってるんだよな。
使ってる人はいっぱい居るはずなのにな。

http://cakephp.jp/modules/newbb/

まぁ過疎ってるけど動いてはいるよ。
0916nobodyさん2014/02/23(日) 08:32:18.38ID:???
ありがとう、そこは以前質問したけどさっぱり反応がなかったw
内容も初心者ばっかりぽいしなあ
0917nobodyさん2014/02/23(日) 08:44:16.18ID:???
CakePHPerは質問せずに開拓が求められるんだよ
0918nobodyさん2014/02/23(日) 09:46:38.47ID:???
Cakeの利用者は増えてるけど、悪い層のところだけ増えてるからな

むしろ質問に答えてた人とかは減ってる
0919nobodyさん2014/02/23(日) 18:12:32.45ID:???
そういう層はいまどこ行ってんの
0920nobodyさん2014/02/24(月) 00:10:09.26ID:???
>>919
ここにいるよ
0921nobodyさん2014/02/24(月) 09:01:57.32ID:???
CakePHPはまだ使えるけどテンプレート出力も全部PHPでやるのは馬鹿らしくなってきた
0922nobodyさん2014/02/24(月) 13:11:20.87ID:???
なに?Smartyの時代に戻りたいの?
0923nobodyさん2014/02/24(月) 13:43:40.83ID:???
SmartyもCakePHPのテンプレートもかわらん
0924nobodyさん2014/02/24(月) 14:15:56.59ID:???
Twigでええやん
Smartyはダメだけど
0925nobodyさん2014/02/24(月) 14:24:34.88ID:???
>>919
他フレームワーク、他言語
0926nobodyさん2014/02/24(月) 14:43:49.14ID:???
テンプレートはもういっそクライアント側のJSで処理したいとよく思う
でも検索エンジンへの対応がだるい

妥協してTwig
0927nobodyさん2014/02/24(月) 15:28:05.05ID:???
Twigって何がいいの?
表面的にはSmartyとさほど変わらないように見える。
CPUやメモリコストは、Smartyより優れてるみたいだけど。
0928nobodyさん2014/02/24(月) 16:10:19.13ID:???
>>927
CPUやメモリコストはSmartyのが優れてるよ
処理も遅くてCで一部書いてるぐらいよ

エスケープや構造等々が優れてるかな
0929nobodyさん2014/02/24(月) 16:55:37.65ID:???
>>928
え、そうなの?
古い記事だけど、素のPHPに近いくらい低コストってベンチとって書いてるとこあったけど・・・

Twig使ってないからわからないのかもだけど、
エスケープって甲乙つける程、することあったっけ?

構造がどういうものを指してるのかわからないけど、
公式サイトに少し載ってるコードを見る感じ、
専用のタグがあって、制御構文的なものが使えるよと、
Smartyと比べてそんなにすごいものには見えないんだよなぁ。

概念は同じだけど少し洗練されたSmarty、じゃないの?
0930nobodyさん2014/02/24(月) 19:26:59.64ID:???
>>926
大枠だけphp、データは全てJSON、これよ
0931nobodyさん2014/02/24(月) 19:31:05.74ID:???
Smartyは今でも十分使えるよな。シンプルでわかりやすい。
0932nobodyさん2014/02/25(火) 00:10:09.65ID:???
>>930
検索エンジン対策は?
0933nobodyさん2014/02/25(火) 01:19:57.55ID:???
動的なアプリに検索エンジン対策もくそもあるか(諦め)
0934nobodyさん2014/02/25(火) 01:23:14.53ID:???
サーバ側にPhantomJS入れてキャッシュ生成
0935nobodyさん2014/02/25(火) 03:06:11.06ID:???
Googleって今はJavaScriptも実行してindexingするんじゃないっけ?
0936nobodyさん2014/02/25(火) 08:25:03.55ID:???
>>935
一部のクローラーな
0937nobodyさん2014/02/26(水) 02:32:49.89ID:???
modelのvalidateについて質問です。

public $validate = array(
'test1' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'validate_error_empty'//�@
)
),
'test2' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'validate_error_empty'//�A
)
),
);

エラーメッセージの国際化対応をする場合、�@と�Aで異なるpoファイルを
指定することはできるのでしょうか?
やはり動的にvalidateを書き変えないと無理でしょうか?
0938nobodyさん2014/02/26(水) 09:59:25.64ID:???
つ beforeValidate
0939nobodyさん2014/02/26(水) 10:22:05.34ID:???
会社がCakePHPをやめてPhalconPHPに行く決断をしてしまった
俺、もうダメポ
0940nobodyさん2014/02/26(水) 10:42:56.93ID:???
>>938
ありがとうございます。やはりbeforeValidateがベターですね。
0941nobodyさん2014/02/26(水) 13:30:58.82ID:???
>>939
API読めば一緒さ(適当)
0942nobodyさん2014/02/26(水) 14:12:28.58ID:???
Webサーバーなんかのリソース消費を切り詰めて、どんだけ効果があるというんだろうな。
0943nobodyさん2014/02/26(水) 14:25:02.45ID:???
ソシャゲとかページキャッシュが効かない系は
Cakeがボトルネックになることが多々あるみたいね
0944nobodyさん2014/02/26(水) 14:41:16.73ID:???
あるな。ソシャゲじゃなくてもポータル系でも結構辛い。
0945nobodyさん2014/02/26(水) 19:23:54.13ID:???
>>944
ピュアPHPにしたほうがいいって感じなん?
0946nobodyさん2014/02/26(水) 19:37:19.20ID:???
>>945
流石にそれはない
0947nobodyさん2014/02/26(水) 19:57:37.76ID:???
なので、リソースが必要な箇所はPDO使って何とかする場合もあるけど、
Cakeと他のライブラリ使うってのが、どうも違和感あるんだよな
0948nobodyさん2014/02/26(水) 20:01:39.90ID:???
ボトルネックってメモリとかではなく、速度の問題だろ?

cakephpはかなり遅いし
09497462014/02/26(水) 23:41:41.61ID:D60NlfkY
ネーミングルールが詳しく書いてある本を教えてくれ
あと、route.php の詳しい書き方が載ってる本もたのむ
0950nobodyさん2014/02/27(木) 02:13:38.99ID:???
そんなに重いかね?CakePHP
web鯖は負荷上がったら増やせばいいと思ってるんだが。
0951nobodyさん2014/02/27(木) 09:28:40.59ID:T7LVkdm4
>>949
routesはともかく、ネーミングルールなんか
公式サイト以上の説明しようがない
0952nobodyさん2014/02/27(木) 15:50:58.08ID:???
増やせばいいって、簡単に言ってくれるな
0953nobodyさん2014/02/27(木) 19:46:19.11ID:???
だよなwww
0954nobodyさん2014/02/27(木) 19:52:48.74ID:???
>>953
いや、実際cakeって増やしやすい作りじゃん
0955nobodyさん2014/02/27(木) 20:09:04.31ID:???
cakeの作りは関係無いと思います
0956nobodyさん2014/02/27(木) 20:14:19.11ID:???
いやだって、CakePHP自体の処理コストがボトルネックになるっていうくらいなら、
それなりの規模じゃない?
ここであがってたのはソーシャルゲームとかポータルとか。
web鯖は最初から複数あるか、
そうでなくてもスケールアウトは最初から考慮に入ってるかなと思ったんだが。
0957nobodyさん2014/02/27(木) 20:20:06.09ID:???
ぼとるねっくはぼくのこーどです(^q^)
0958nobodyさん2014/02/27(木) 22:35:36.63ID:???
俺がいたソシャゲ会社ではmod_rewriteの処理も高負荷すぎて使用禁止だったぞ
さらにコントローラも重いcakeは論外だろな
0959nobodyさん2014/02/27(木) 22:40:08.45ID:???
んなとこでPHP使うなよ……
0960nobodyさん2014/02/27(木) 23:52:49.24ID:???
mod_rewriteの処理が高負荷だったから使用禁止だったのか、
高負荷な気がするからmod_rewriteが使用禁止だったのか
わからんな。

まあ実際はmod_rewriteが難しくて
サーバーエラー連発でサービス停止しちゃったから
使用禁止ってのがありそうだがw
0961nobodyさん2014/02/28(金) 00:19:30.70ID:???
そのエンジニアの能力には高負荷だったんだろw
0962nobodyさん2014/02/28(金) 00:39:19.75ID:???
mod_rewrite禁止はさすがに不便そうだ
0963nobodyさん2014/02/28(金) 01:54:00.82ID:???
よほど複雑なルール書いてなければ、そんな重いことないと思うけどなmod_rewrite
0964nobodyさん2014/02/28(金) 02:38:32.60ID:???
うん、だから使用禁止の理由がほんとかなぁって思ってる。

あたりまえだけど、処理が入る分、負荷は0にならない。
だが、禁止の理由は本当に負荷なのかと。
0965nobodyさん2014/02/28(金) 06:14:53.29ID:???
一度でいいから作ってみたい
ボトルネックを気にするほどのウェブサービス
歌丸です
0966nobodyさん2014/02/28(金) 11:05:16.91ID:???
>>959
PHPは対して問題にならん、ほかのLLよりインフラ面は優秀だぞ
0967nobodyさん2014/02/28(金) 11:07:12.84ID:???
mod_rewriteは書いた分だけapacheのプロセスが肥大化するからな

静的ファイルも同じapacheで処理とか間抜けなことやってれば禁止したくなる
0968nobodyさん2014/03/01(土) 00:15:39.50ID:???
それがほんとかどうか怪しいものだw
0969nobodyさん2014/03/01(土) 01:05:56.30ID:???
ディレクトリ分ければ済む話じゃないかw
0970nobodyさん2014/03/01(土) 09:14:39.36ID:???
>>969
ディレクトリ?
もしや、まさか、.htaccessですか?
0971nobodyさん2014/03/01(土) 09:33:49.87ID:???
そこまでしてなぜApacheを使いたがるのか理解不能
0972nobodyさん2014/03/01(土) 09:45:19.90ID:???
一番情報量が多くてわかりやすいから
0973nobodyさん2014/03/01(土) 10:16:36.77ID:???
Apacheをphpのアプリケーションサーバだと割り切るとそれなりに問題はない
0974nobodyさん2014/03/01(土) 13:15:36.92ID:???
>>970
なんで、ディレクトリに分けると
.htaccessになるんですか?
.htaccessだと思っちゃったんですか?w
0975nobodyさん2014/03/01(土) 13:22:36.07ID:???
フロントをnginxやIISに切り替えたら、rewriteも書き換え。。。
PHP堺で、WSGIの様なものがあまり普及していないのが不思議。
0976nobodyさん2014/03/01(土) 13:39:51.53ID:???
>>974
で、ディレクトリってどういう意味かね?
0977nobodyさん2014/03/01(土) 13:58:30.25ID:???
ディレクトリを分けるなんてアホなことを言うのはやめたまえ
0978nobodyさん2014/03/01(土) 14:17:30.65ID:???
>>971
今でこそnginxの使用例も増えてきたけど、
設計が5年前にスタートしていたApache使うよ。
0979nobodyさん2014/03/01(土) 14:20:32.76ID:???
>>967
インフラやミドルウェアはほかの人がやってくれるからあんまり詳しくないんだけど、
Apacheは静的ファイルはその容量にかかわらず、一定のメモリを消費するとか聞いたことあるけど、
そういうこと?
0980nobodyさん2014/03/01(土) 14:24:06.86ID:???
Cakeやmod_rewriteがボトルネックになるような世界は
アプリ屋がwebサーバの設定なんて触らせてくれない世界だし
気にすることないんじゃないのか
0981nobodyさん2014/03/01(土) 14:26:17.69ID:???
そんなこといいからBootstrap3のCake用スケルトンおしえてくれよ
0982nobodyさん2014/03/01(土) 14:34:44.95ID:???
>>976
ディレクトリ分けてmod_rewriteの設定をするのですが?w
その時、当然.htaccessなんか使いませんが?w
0983nobodyさん2014/03/01(土) 14:36:21.14ID:???
>>982
意味ないよ
0984nobodyさん2014/03/01(土) 15:02:55.67ID:???
>>983
理由が書いてないよw
0985nobodyさん2014/03/01(土) 15:25:49.24ID:???
>>984
プロセスが肥大するからだろ
ディレクトリごとにプロセスができるなんてことはないからな
0986nobodyさん2014/03/01(土) 16:09:00.07ID:???
俺は面倒だから.htaccessにmod_rewriteの設定書くわ
0987nobodyさん2014/03/01(土) 16:28:20.44ID:???
>>985
それなら的外れだ。
ディレクトリを分けることで
mod_rewriteの処理を省けるわけだから。
0988nobodyさん2014/03/01(土) 16:29:35.86ID:???
>>986

.htaccessに書くのは素人


って>>970はいいたいのかな?
これも理由が書いてないな。
0989nobodyさん2014/03/01(土) 16:40:17.32ID:???
>>988
http://httpd.apache.org/docs/2.4/howto/htaccess.html#when
0990nobodyさん2014/03/01(土) 16:46:45.91ID:???
>>979
そういうことでしょ
静的ファイルを返すためだけに
mod_phpやmod_rewriteで肥大化したプロセスを使うってのが問題なのよ

Apacheの問題もあるけどpreforkの問題もある
0991nobodyさん2014/03/01(土) 16:52:56.57ID:6RJcYqVQ
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
http://toro.2ch.net/test/read.cgi/tech/1393660194/1
0992nobodyさん2014/03/01(土) 17:04:01.74ID:???
【PHP】フレームワーク CakePHP 17ホール目【v2.4】
http://kohada.2ch.net/test/read.cgi/php/1393661004/
次スレ建てたからせいぜい議論してくれや
0993nobodyさん2014/03/01(土) 17:18:57.75ID:???
>>990
ああそうか。おかげで思い出してきた。
静的ファイルを返すだけでもmod_phpをロードした状態になるから〜
みたいな事をいってた気がするそういえば。
0994nobodyさん2014/03/01(土) 20:37:18.74ID:???
>>975
まったくだわ

http://www.appserver.io
これとか性能どんなもんなんだろう
0995nobodyさん2014/03/02(日) 23:37:10.58ID:???
埋め
0996nobodyさん2014/03/03(月) 07:01:39.39ID:???
埋め
0997nobodyさん2014/03/03(月) 08:07:24.36ID:???
mod_rewriteの良さ
サブリクエストとか余計なことをしなければ処理が速い

mod_rewriteの悪さ
スパゲティになりやすい
リソース消費を増やす

常識だからな、ディレクトリとか的ハズレもいいとこ
0998nobodyさん2014/03/03(月) 11:15:18.98ID:???
でも、ディレクトリのほうが直感的で分かりやすいよね
0999nobodyさん2014/03/03(月) 11:51:29.41ID:???
>>998
ディレクトリはわかりやすいから使うのは良いんじゃないの?
負荷云々の話には意味がないってだけだよね。
1000nobodyさん2014/03/03(月) 11:52:02.43ID:???
rewriteご馳走様梅
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。