【PHP】フレームワーク CakePHP 16ホール目【v2.4】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/09/09(月) 01:56:10.19ID:m9OPw/HTCakePHPから派生した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
0276nobodyさん
2013/10/08(火) 17:00:13.50ID:???分かった。
0277nobodyさん
2013/10/09(水) 02:02:54.44ID:???> これで posts コントローラの index アクションを実行し、レンダリングされた結果が表示できる。
dispatch()したら、findの結果じゃなくビューをレンダリングした結果だぞ。
その1.3でできてるってのも、上記の通りだし。
0278247
2013/10/09(水) 09:57:04.46ID:???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:???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:???0284nobodyさん
2013/10/12(土) 23:39:11.12ID:???あとsitemap更新とか。
どっちにしてもGoogle次第
0285nobodyさん
2013/10/13(日) 01:02:29.28ID:???ユーザーが作成したページが検索に乗るようにするって結構難しいのかな
登録・更新のたびにsitemap作成するスクリプトとか流してたら相当重くなりそうですよね
親切にありがとうございます
0286nobodyさん
2013/10/13(日) 02:27:44.36ID:???0287nobodyさん
2013/10/13(日) 15:45:55.81ID:fH7wT7anありがとうございます
深夜辺りにcronで動くように設定したいと思います
完全にスレチでした。すみませんでした
0288nobodyさん
2013/10/15(火) 17:36:39.11ID:tnpde/Hs今は、自作 or Googleアナリティクスを考えています。
0289nobodyさん
2013/10/15(火) 20:16:47.76ID:???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:???$args = func_get_args();
if (count($args) < 2) { ... error ... }
}
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:???0296nobodyさん
2013/10/23(水) 11:58:33.55ID:???だから、empty($age)から書いたが、このままじゃ分かりにくいと思ってelseを後付けしたんだ。
あと、例外的なほうから書くほうが好みというのもあるけど。
0299nobodyさん
2013/10/23(水) 22:22:55.02ID:TvTq8mzBなぜ?
あと、関係ないけど
ERROR:referer情報が変です。(ref1)http://www.engawa.2ch.net/test/read.cgi/budou/ほげほげ/l50
武道板になぜか書き込みができないんだけどなぜ?
0300nobodyさん
2013/10/24(木) 00:57:55.24ID:ZRTs6kHv試しているのですがなぜかデータの絞り込みが出来ません。
また、何もエラーも出ません。
$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行のみ取得する、という事を想定して記述しています。
どこに問題があるのでしょうか?
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:???ありがとうございます。
やりたかった事が出来そうです!!
※cakePHPに標準で備わっているページング処理よりも
自前でコーディングした方が後々細かい制御が出来てよいと思ってましたので
limit使ってガリガリやろうと思います。
0305nobodyさん
2013/10/24(木) 03:28:39.25ID:???細かい制御ができないというのなら直ちに調べたほうが良い。
0306nobodyさん
2013/10/25(金) 23:49:39.14ID:AB+nrtPz前へ 次へ ... >> <<
色々とやってましたが素直にページング使った方が楽そうなのでページングを使い始めました^^b
0307nobodyさん
2013/10/26(土) 21:52:14.71ID:Zi7Pbhr3この状態で以下のコードを実行すると想定外の出力結果が
返って来ます。何が間違っているのでしょうか?
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:5t9gsaZZ0310nobodyさん
2013/10/27(日) 17:26:30.48ID:dxTjMq1b0311nobodyさん
2013/10/27(日) 17:47:06.22ID:???大小比較とこの問題は関係ないよ
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)
0313nobodyさん
2013/10/28(月) 10:28:14.68ID:???俺の使い方が悪いだけかもしれないが
0314nobodyさん
2013/10/31(木) 15:20:24.96ID:S0k5dQpe0316nobodyさん
2013/10/31(木) 16:24:28.47ID:???だからってinformationテーブルにInformationControllerが正しいと、
それなりに開発が進んでから気がついたときの怒りは、
どこにぶつければいい?
0317nobodyさん
2013/10/31(木) 18:32:50.75ID:S0k5dQpeありがとうございます。
無事出来ました!!
0318nobodyさん
2013/10/31(木) 18:53:54.33ID:S0k5dQpeuser_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:???英語の勉強を疎かにしてきた自分を呪えば良いと思うよ
まぁ、冗談は抜きにして、英語の基礎ができてないと色々とキツイよな。
0320nobodyさん
2013/10/31(木) 20:07:38.67ID:???あの・・・ and はカッコ外しても論理構造同じですが。
もし 'or' を入れたいのなら、キーに 'and' とか 'or' とかを用いて
幾重にも入れ子に出来たはず。
キーが数値の場合は 'and' として解釈するんだったっけ。
0321nobodyさん
2013/10/31(木) 20:08:43.64ID:???0322nobodyさん
2013/10/31(木) 20:10:49.38ID:???(正しい) and だけの場合はカッコ外しても論理構造同じ
ミスった
0323nobodyさん
2013/10/31(木) 20:11:08.33ID:pvMz+FsK間違えました。
ただしくは、
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:???$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あざーすっ!
コードがすっきりしました!!
0326nobodyさん
2013/10/31(木) 20:38:39.33ID:???0327nobodyさん
2013/10/31(木) 23:42:41.93ID:???0328nobodyさん
2013/11/01(金) 00:32:03.09ID:???0330nobodyさん
2013/11/01(金) 17:45:57.99ID:???0331nobodyさん
2013/11/01(金) 22:05:00.04ID:???外人がfishesという単語を見て魚の缶詰を思い浮かべるのと同じ
0332nobodyさん
2013/11/02(土) 01:30:30.01ID:???0333nobodyさん
2013/11/02(土) 09:23:48.01ID:???0334nobodyさん
2013/11/02(土) 14:49:14.45ID:YSV0Zcpfそもそも何に使うの?
良い解説サイトがあったら教えてください。
0335nobodyさん
2013/11/02(土) 18:00:44.69ID:???bakeってのはCakePHPが参考した
Railsで使われていた仕組みで、
たんに、こんなに早く作れるんだよと
なんども練習して撮影したデモを
一秒でも短くするために生まれた道具にすぎない。
そう。3分クッキングのように、
あらかじめ用意しておきましたって
コードを生成するもの。
0336nobodyさん
2013/11/02(土) 18:25:11.54ID:???不便だわ
0337nobodyさん
2013/11/02(土) 20:32:04.62ID:???それをごそっとプラグインに隔離して
適宜削ったり追加したり開発するのはとても便利で早い。
0338nobodyさん
2013/11/02(土) 20:42:12.21ID:oRF20owzとおもってたら グラディウスまで作ってる強者がいた。
ここまで出来るのか。。。
0339nobodyさん
2013/11/02(土) 20:43:40.35ID:oRF20owzhtml5 でここまでできるのか。
0340nobodyさん
2013/11/02(土) 22:07:26.87ID:???誰が作ってもほぼ同じものができるのは良いよ。
テンプレートをカスタマイズしてるから
元の姿とは全くと言っていいほど違ってはいるけど。
0341nobodyさん
2013/11/02(土) 22:18:01.50ID:???0343nobodyさん
2013/11/03(日) 00:08:16.61ID:???0345nobodyさん
2013/11/03(日) 20:14:17.87ID:???モデルも開発中盤になってくると、bakeしただけで手の入ってないモデルがいくつか出てくるから、
コピーして必要なとこだけ変えたほうが早かったりするんだよな。
0346nobodyさん
2013/11/03(日) 23:30:20.68ID:???完全に全自動化出来るわけじゃなく、
色々質問されるしな。
前回なんて答えたかなんて覚えていないし、
bakeをする回数は少ないのですぐに使い方を忘れる。
0347nobodyさん
2013/11/04(月) 01:31:23.58ID:???うちはとにかく bake all だわ。
アソシエーションの制約なんか厳しくて、
かなり CakePHP のルールを守らないと通らないので、
それがかえって誰が作っても同じ出来になるという安心感がある。
それに、コマンドで個別に設定するぐらいならファイル直接触ったほうが楽。
0348nobodyさん
2013/11/05(火) 22:46:56.28ID:HKwreGpoあとは使っているサーバのスペックが足りなくて
別サーバに引っ越しをする時とか結構手間に感じるのですが皆さんは如何ですか?
0349nobodyさん
2013/11/06(水) 00:41:09.71ID:???0350nobodyさん
2013/11/06(水) 01:43:53.69ID:???あと、FTPでアップした時のtmpのパーミッション設定は地味に面倒w
0351nobodyさん
2013/11/06(水) 07:11:23.30ID:jY+jk4/6確かにtmp面倒くさいよな
0353nobodyさん
2013/11/06(水) 19:21:57.33ID:CGtOvjTe例えばcakePHP2 で作っていたシステムを
新サーバ+cakePHP3 に移行する時とか大変じゃない?
cakePHP3をサーバに設定した後に、
cakePHP2のソースを手動でしかるべき箇所に移動させて
しっかり新バージョンでも動くかどうか検証とかしなくちゃならないでしょ?
一発で移動とか出来ると楽なんだけどね。
0354nobodyさん
2013/11/06(水) 19:28:12.00ID:???既存プロジェクトで使ってるフレームワークのメジャーバージョンを上げたら、
そりゃぁ大変だろうよ。
CakePHPに限らずな。
0355nobodyさん
2013/11/06(水) 21:06:22.08ID:???0356nobodyさん
2013/11/06(水) 22:24:56.97ID:???ログインしていない場合には閲覧させない様な
クローズドコンテンツを作成しよとしています。
そこで、ログインしていない場合には閲覧させない為に
コントローラのファンクションの中で以下のコードを書いているのですが、
コントローラのファンクションの中では毎度以下の if(ログイン判定) の
コードを記述する必要があるのでしょうか?
HogeController.php
public function top()
{
if(!$this->Auth->login())
{
//ログインしていないので特定ページ(TOP)へ飛ばす。
return $this->redirect($this->Auth->redirect());
}
}
0358nobodyさん
2013/11/06(水) 22:32:14.86ID:???'loginAction' => Array('controller' => 'tops', 'action' => 'index'),
色々と試したみたのですが、これでOKですか?
0359nobodyさん
2013/11/06(水) 22:39:31.12ID:???http://book.cakephp.org/2.0/ja/tutorials-and-examples/blog-auth-example/auth.html
0360nobodyさん
2013/11/07(木) 00:07:19.08ID:???コピーするプログラムを作っています。
$('#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を選ぶ理由がないからね
0364nobodyさん
2013/11/07(木) 14:44:14.56ID:cHcjC9vh0365nobodyさん
2013/11/07(木) 14:52:19.69ID:???codeigniter, fuelphp, laravel, yiiのどれかで
0366nobodyさん
2013/11/07(木) 14:52:21.96ID:???今もオフショア先では大人気
0367nobodyさん
2013/11/07(木) 14:55:55.60ID:???fuelphpはpsr-0に対応しなかったこととかいろいろあって人気つかないな
codeigniter、laravel、yiiは世界では人気だけど日本だと微妙
0368nobodyさん
2013/11/07(木) 15:04:27.70ID:???cakeぼろぼろだ
昔のライバルsymfonyには辛うじて勝利
0369nobodyさん
2013/11/07(木) 16:27:36.49ID:urHtWp+pレスポンスとかさぁ。
0370nobodyさん
2013/11/07(木) 18:19:09.69ID:???その4つの中ならlaravelがいいな
0371nobodyさん
2013/11/07(木) 18:25:45.15ID:???PHPとは相性が悪い
リクエストの度にパスの数だけClosureオブジェクトを作ってると考えたらぞっとする
0372nobodyさん
2013/11/07(木) 20:37:01.47ID:???0373nobodyさん
2013/11/07(木) 20:55:50.09ID:TVGLaC0NYiiを使える、進めるヤツはせめてToeic 800点位とってから使おうな。
英語も出来ないのに間隔で変な名前をあちこちに量産されたら迷惑
0375nobodyさん
2013/11/07(木) 23:33:39.73ID:???■ このスレッドは過去ログ倉庫に格納されています