【PHP】フレームワーク CakePHP 19ホール目【v3.3】 [無断転載禁止]©2ch.net
1秒が耐えられないって普段どんだけ素早く動いて生活してるの >>375 mysql系統だと、1つのSQLにつき1つのIndexしか使えない 処理が遅い時は、indexが上手く機能してない場合がある 処理が遅い所でdebugkitからSQLを拾って、処理時間が長いものを探す で、そのSQLに対応したindexを作ってみると改善する 俺の環境では、このパターンが多い ま、サブクエリが発生してたらクエリビルダーを書き直すという泥縄だが 環境はこんな感じ CentOS7.1,Apache2.4,PHP7.2,mariadb10.0(innodb) 開発環境:Windows7 + VirtualBox5.1.5 本番環境:Amazon EC2 >>376 開発中でログインユーザー1人だけなら、レスポンス1秒は長すぎる その時点で、開発者が「1秒なら待てる」とか言い出したら問題有り アクセス数の集中加減次第で、内部エラー(DBタイムアウト)になりかねん >>377 書き忘れた CakePHP3.5.12 4はいつ出てくるんだろう? 個人的には永久に出てきてほしくないけど。 ところでなぜ日本だけCake人気あるのでしょう?日本製でもないのに 日本人は英語のドキュメント読めないから、いつまでも古い技術にこだわるため >>383 作り替えを極端に嫌うから、必然的にサポートが長いのを好むんじゃないかな? 俺のなかではcakeから乗り換えるならdjango一択。 Cake3のValidationで質問です。 int型の項目にtextフォームからデータを登録したいのですが、「a」と入力した際に 「This field cannot be left empty」というメッセージが表示されます。 入力が無視されているようなのですが、この無視する挙動を無効にする方法はありますか? 下記のような実装なんですが、「a」と入力したら「Invalid Data'」と表示されることを期待してます。 CREATE TABLE `hoge` ( `id` int(11) NOT NULL AUTO_INCREMENT, `sort` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ; public function validationDefault(Validator $validator) { $validator ->requirePresence('sort', false) ->notEmpty('sort') ->add('sort',[ 'naturalNumber'=>[ 'rule'=>['naturalNumber'], 'message'=>'Invalid Data', ] ]); return $validator; } >>385 第2引数「true」がぬけてるからでは? ->add('sort',[ 'naturalNumber'=>[ 'rule' => ['naturalNumber', true], 'message'=>'Invalid Data', ] ] ); >>384 日本社会は、前例主義だからなあ 実績のある〜〜というのが大好きだもんな >>386 引数trueつけても同様でした(省略の場合はfalseが初期値でした)。 コードを変えずに、DB定義でsortをint→varcharに変えると意図した動作になるんですよね。 validationの際にDB定義を見ているとしか思えない…。どうにかしてこの挙動を無効にしたい…。 >>388 今はlaravelじゃないかなあ ただ日本では実際にどれくらい使われてるのかは分からないけど >>387 でも急にフレームワークが無くなるってことも実際に起きてるから慎重にはなる Silexなんかは開発終了宣言しちゃってec-cubeどうなるんだって状態だし 昨日もSilex採用したら1年で終了というブログも見かけた 俺もそのブログ見てSilexなんて知ったんだが 知名度低いものは使っちゃだめなんだなやはり ec-cubeってsilexからsymfonyになったんだな まあそうなるか え?Silex終了か。 以前はよく使ってたな。今はFlaskばっかりでやってるけど。 PHPの環境を手っ取り早く試すのにはいいし、わざわざSlimに移行するのもめんどくさいな。 cakeもsymfony使ってるし、laravelもそうであるように、symfony+αっていうフレームワークを選ぶのがPHPの流れだと思う。 解決しました。 どうしてもvalidationを無効にはできなかったので、結局schemaの設定で型をstringにして逃げました。 cake2ですが、redirectをカスタマイズする方法ってないですかね? イメージとしては $this->redirect(array('controller' => 'Posts', 'action' => 'index')); function afterRedirect($param) { if ($param['action'] == 'index') { } else { } return true; } みたいに、リダイレクトのパラメーターによって更に処理を変更したいです。 リダイレクトの役割を理解できてない。その処理はアプリケーションでやるべき。 日本ではなかなかCakeの需要なくならんね… 未だに新規案件の話来る CakePHP 3.6.0 リリース https://bakery.cakephp.org/2018/04/14/cakephp_360_released.html deprecation warningsを潰しておけば4.0.0へスムーズにアプデできます webアプリの勉強したくて、この半年、PHPやJavaScriptの入門書をいくつか読んで、いくつか自作したんだけど、 2ちゃんで、「生のPHP書く仕事なんかねえよ。フレームワーク使えるようにならなきゃ話にならん」と 言われたので、調べたら日本ではこのCakeが1位か2位人気のフレームワークだと分かり、 このスレを覗いたんですが、さっそく>>410-411 を見て怖くなりました。 いま書店で積んである赤い入門書は、もう時代遅れなんでしょうか? 「いまどきのプログラマーはネットで最新情報を収集してるんだよ。本とか読んでる奴はクズ」という 書き込みも見た記憶があります。 みなさん、どんだけ頭いいんですか? >>412 もちろんFWもコードでできているということはわかっているよな? >>412 確かにほぼ全ての使い方は公式のマニュアルに書いてあるのでそれを見た方が良いです マニュアルにも載ってない実務的な内容の本だったら買おうと思いますが フレームワークはあくまでも基本を分かってる人が楽できるものなので、 自分でマニュアルを見て調べられるのはもちろん、いざとなったらフレームワーク自体のソースを読んで、 動作を把握できるくらいの実力がないと駄目です もちろん最初のとっかかりとして入門書に頼るのはアリだと思いますが、 フレームワークは頻繁にバージョンアップされるので、結局頼りは自分だけです >>412 いくつか自作したなら、ある程度基本は押さえてるでしょ とりあえず公式サイトのチュートリアルから試してみては? 今のバージョンはすぐに時代遅れになる、とか考えるより、 「FW習得の足掛かり」程度に思って、本も買わずに軽く使ってみると良いと思いますよ CakeをAWSで使ってるうちに、気がついたらPythonとNode.jsを比べてたり スマートスピーカーと連動でラズベリーパイを動かしてたりと、飽きることはありません 段階を踏みながら色々と手を出してみるのもまた一興ですよ すみません。 初心者ですが min(最初のid)をsetして出力したら こんなのが出てしまいました。 ※見てもらえればわかりますが、パスワードとサイトurlは空白です。 名前が平仮名なのに変になっています。 <p>最初のidのデータ:<?php echo $min; ?></p> ↓ 最初のidのデータ:{ "id": 1, "name": "\u304d\u3056\u3048\u3082\u3093", "password": "", "mail": "7776655@nifty.com", "siteurl": "" } こちら平仮名のままの出力はどのようにやるのでしょうか?<(_ _)> $min['name'] でいけました! 配列の中身表示だと変化してしまうのでしょうか? >>416 横から申しわけないけど、あなたの言う、「段階」ってやつを具体的に示してもらえませんか? 公式のチュートリアルからスタートして、最後は「Cake使えます。即戦力になれる自信あります」と 転職活動で言えるのがゴールとしてはどうでしょう。 あなたのレールに従って、ぜんぶやってみたいです。 言語覚えてFW使ってコンテンツ作ってが十分な段階にあたると思うが… お世話になります。 find(all) と find() ってどう違うのでしょうか? 私はcodeigniterはできるのですが result_array と row_array の違いと同じようなものでしょうか? <(_ _)> >>422 ここで聞いて回答待つより、自分で出力して比べた方が早いと思う DebugKit入れれば実行されたSQLも見れるし >>419 「Cakeは入り口程度」と書いたつもりなのですが... 「就職活動でCakeアピールがゴール」だと、どんな「段階」を踏んで、 何が出来ればそのゴールに行けるのか、見当もつきません チュートリアル以降の「段階の踏みかた」は毎週変わるでしょうし、 その時に持っている手練手管や知恵などでもかわるでしょう 私の場合は、 WinServer+SQLServer+VBScript→JavaServlet+PL-SQL+Oracle→Cakeチュートリアル→Cake1.2→Cake2.x→Cake3.x というのが「段階」だったかなぁ、と感じる程度です 「少しづつ段階を踏んで」という範囲では無さそうですが、 「学習」をしていたなら、手練手管ではなく、豊富なトリビアを抱えていただろうな、と感じます 私はこのスレで>>210 とか >>351 でテキトーな感じで書き散らしてる人なので、データ設計・DB設計・画面遷移設計が出来るとラクになる、という「聞かされんでも解るわ」程度の事を書きに来るのが関の山です >>426 あなたはプログラムよりもコミュニケーションを学習した方が良いと思います。 開 2 ち ゃ ん ね る= 便 所 の 落 書 き ・ 痰 壷 の 更 に 劣 化 コ ピ ー の 3 流 掲 示 板 運 営 の 性 格 の 悪 い 引 き こ も り I T 土 方 メ ガ ネ ザ ル 早 く 死 な な い か な >>427 >>426 は、「学問に王道無し」って書いてるだけだな 学習方法なんざ十人十色ってな まさかcakephpが一番まともだとは思いすらしなかったわ・・・ Phper怖い >>432 悲しいフレームワーク山ほど量産されてるんやで・・・ 別にいいけど、そういう情報を2chに頼るのってどうなんだろう >>438 理屈ではわかるけど、実際に情報が速いのはSNSだったり掲示板だからな >>440 なんか誤解してるかもしれんが、公式サイトも当然大事だが、それ以外のソースも重要っていう意味ね。 脆弱性情報なんかの場合、公式アナウンスの前にもなるはやで情報集める必要があるんたから、 かいはつしゃたるもの情報源は複数もっておくべき。 それしか言うことないのかよ、と言われても 他の人は言ってさえいない まあ他に話題もないし別にいいんでない とも思うけど、スレに新着カキコ→3.6.3リリース みたいなのばっかりだと辛いな じゃあCake2から乗り換えるFWについて ぶっちゃけ3ってどうなん?使ってる?使えてる? 2から3に移るのがコストになるからそれならLaravelやるかとかRoRに移行したのも多いはず うちもCake2だったが次からLaravelに移る オラもLaravelに移行中というか色々勉強中 急ぎの仕事は、イカンと思いつつも慣れているCake2で作ってる(蔵様すんませんw) 俺はお堅い仕事で、長い周期でシステムを動かさないといけないから結局Cake3に移行した。 いろんな言語見ても、フルスタックのFWでサポート期間が長いのを探すと、Cakeは優秀だよ。 公式のこれなんですけど 最初の 'rule' => 'validate_title', これなんですか? 何でもいい文字列ではなく、emailみたいな決められたルールでしょうか? // グローバル関数を利用する $validator->add('title', 'custom', [ 'rule' => 'validate_title', 'message' => 'タイトルが正しくありません' ]); // プロバイダーではないコールバック関数を利用する $validator->add('title', 'custom', [ 'rule' => [$this, 'method'], 'message' => 'タイトルが正しくありません' ]); // クロージャーを利用する $extra = 'Some additional value needed inside the closure'; $validator->add('title', 'custom', [ 'rule' => function ($value, $context) use ($extra) { // true/falseを返すカスタムロジックを記入 }, 'message' => 'タイトルが正しくありません' ]); // カスタムプロバイダーからのルールを利用する $validator->add('title', 'custom', [ 'rule' => 'customRule', 'provider' => 'custom', 'message' => 'タイトルが十分にユニークではありません' ]); >グローバル関数を利用する なんだから validate_title という名前の関数があるんじゃない カスタムバリデーションルールの項目に書いてある説明だから>>454 でファイナルアンサーでしょ 自分で書いた関数も使えますよって説明だから >>459 debugモードで影響がある脆弱性みたいだね。 ちんぺいさんのtweetは役に立つ。 来年のCakeFestの開催地を投票で決めるということで、既に始まっています https://cakefest.org/ ・Japan ・Atlanta GA, USA ・France ・Germany プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。 DJMYA CakePHP3で、特定のコントローラーだけcookie名を変えたい場合、 どうすればいい? initializeのなかで Configure::write( 'Session', [ 'cookie' => 'xxxxx' ] ); とやってもかわらないのだが、これじゃダメなのかな? cakephp3でアンカーリンクへ飛びたい場合どのようにすれば良いのでしょうか? http:// サイトURL#20180718 で画面表示と同時に指定したアンカー(id='20180718')へ飛んだ状態で画面表示を行いたいのです controller側のindexメソッド内に $this->redirect(array('controller' => 'コントローラ名', 'action' => 'index', '#' => '20180718')); と記述し、routes.phpで $routes->connect('#20180718', ['controller' => 'コントローラ名', 'action' => 'index'])->setPatterns(['#' => '20180718']); と指定したのですがタイムアウトとなってしまい悩んでいます 助言をいただきたいです >>466 とりあえず '#' => '20180718' を抜いた状態で正しくできます? 466です '#' => '20180718' を抜いた状態でもタイムアウトになってしまいます redirectがうまく行っていないようなので色々試してみます redirectの前にreturnが抜けてるとか? 既にAjaxを使って表示されているelementでテーブルを表示してるんですけど、 そのテーブルをさらにAjaxを使ってページングするにはどうしたらいいのでしょうか。。。 cakephp3を使ってるのですが、 2以前だったらググれば結構出てくるのに、3だとなかなか出てこなくて。。。 今の状態は、ページングの中身自体は表示できるんですが、Ajaxじゃないので別ページに飛んでしまい、cssとかとかも効いていないので、ただ中身だけ羅列されている状態です。 もし、お分かりの方いらっしゃれば教えて頂けたら助かります。 Cake3情報少ないよね 使ってる人少ないんだなあ >>471 ソースレベルから質問してくれないと答えるの難しいと思う >>472 めんどくさいよ。 PaginatorComponentをカスタマイズして、JSONで返すようにすればいいだけの話なんだけど、 JsonViewとかあるのに何でそこだけ別対応しないかんのん?って状態。 こんな古臭い設計と付き合いたくない。 >>471 既にajaxで表示できてるんだから出来そうなもんだけどなぁ リンクが普通のリンクになってるとか、ページに余計な情報が入ってるとかじゃないの? 分かりにくい説明なのに皆さんコメントありがとうございます。 ググったりした結果、 $(".pagination a").bind(“click”, function (event) { if(!$(this).attr(‘href’)) return false; $.ajax({ dataType:“html”, evalScripts:true, success:function (data, textStatus) {$("#決めてた名前").html(data);}, url:$(this).attr(‘href’)}); return false; }); みたいなことで、最初のページングのリンククリックまでは正しくページングできるんですが、 その次に別のリンクを押すと、また整ってないページになってしまうんですよ(´Д` ) read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる