ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

PHP

CakePHP3でPluginを自作しようとしてハマる

プラグイン チュートリアルを見ながらやったのね。 $ ./bin/cake bake plugin TestPlugin # bakeでpluginディレクトリを作成 $ ./bin/cake bake controller --plugin LoadAssets Test # bakeでcontroller作成 $ ./bin/cake bake component --plugin LoadAsse…

最近Wordpressで学んだこと

先週デスマだったので、その時にやったことをメモ。 template関連 特定のページで読み込むstyleとかjavascriptを変更したいとき よくheader.phpで条件を増やしたり、header.php自体を増やしたりしてしまいますが、修正する範囲が増えるのでナンセンス。 その…

【CakePHP3】ViewでRouterクラスを使うにはuseを使って呼び出さないといけない

CakePHP3を使って、CakePHP2みたいに普通にコーディングしていると。。。 Router::url in view generates fatal error: class not found え? まじ? クラスなくなったんかないな。」と驚いて検索したところ。 github.com You are missing a use statement. …

CakePHP3をインストール

(前もやった気がするけど。。。) 全然覚えていなかったのでメモ 環境 mac $ sw_vers ProductName: Mac OS X ProductVersion: 10.11.5 BuildVersion: 15F34 el capitanです。 php5.6をインストール phpbrewやphpenvとかでインストールしようとしたらapxsで…

【PHP】PHPのmethodは大文字・小文字を区別しない

PHP

Mainクラスのmainメソッドを作った時の話 main(); このクラスを実行すると、何故かMain->main()の処理が2回実行された。 ・・・・? どうやら、大文字・小文字を認識しないっぽい。さらに、クラスと同じ名前のfunctionはコンストラクタとなる。 そのため、…

いまさらCakePHP2.xを使ったここ2ヶ月のことをメモする

ここ2ヶ月、CakePHP2.xを久々に触り、立ち上げたプロジェクトで学んだことをメモする。 本当はCakePHP3.xを触りたかったけどね。 ここ最近のCakePHP2.xを使った俺のまとめ Object志向って何? おいしいの? という、プログラマwが書いた内容です。やさしい…

AngularJS1.4から、CakePHP2.xへリクエストを送ったら$this->requestでデータが取れない件

とあるプロジェクトで、AngularJSを使いました。 バックエンドはCakePHPを使いました。 例えば、AngularJSからデータをCakePHPにPostで送信した際に$this->request->dataに値が入っていませんでした。 なので調べた。 ちなみにAngularは触ってまだ2日目の超…

【PHP】round()を使って、N桁迄四捨五入する関数を作ってみた

PHP

色々調べてみたけど、あんまり使いドコロがなさそうですな。まぁ頼まれたので実装してみたよ。 そもそも、四捨五入してくれるround()は桁数を指定して四捨五入をする関数です。 つまり round(1450, -3)を実行すると1000(3桁目の4で四捨五入) なのだが、今…

PHPでPaginate

一回ドットインストールの動画を見て理解していたつもりだったけど、昨日やってみると全然覚えてなかったという話。フレームワークに慣れすぎってのも問題ですね。。。 dotinstall.com github.com とりあえずもう一度見なおして、即席でクラスを用意してみま…

【CakePHP】AuthComponentとprefix routingを使った複数のログイン認証・ユーザー

通常のページでは通常ユーザー、管理画面は管理者ユーザーって要件があって、CakePHPで対応するにはどうすれば良いのかを探して実装してみた。 github.com 下記記事が参考なりました。ありがとうございますm(_ _ )m prefix routing ルーティング - 2.x ドキ…

【CakePHP】Html Helper cssにて、指定されたディレクトリ以外のcssファイルを読み込む

Html->css([ 'bootstrap.min', 'other', '/fonts/css/font.min', // webroot/ <- をルートとして記述すればおk 'icheck/flat/green' // ちなみにディレクトリを指定するにはスラッシュを書けばよい ]);

【CakePHP】bakeでインストールしたcakephpで、cakeコマンドのパスが固定の絶対パスになっていたので修正

gitのコミットメッセージみたいだな ~/app/Console/cake.php

【CakePHP】FormHelperでselect boxの中のoptionタグにattributeを指定したいとき

久々に早めの帰宅ができたので、ちょっくら走ってきました。やっぱり体動かすって気持ちいいね! すっきり気分なので、久々にブログ書く。 FormHelperでselect boxの中のoptionタグにattributeを指定したいとき CakePHPのFormHelperでselect boxを出力したい…

【CakePHP2.x】指定したModelでPaginateしたいとき

ControllerでPaginate Componentを読んだら各ActionでPaginateのメンバー変数にぶっこめば良い

【CakePHP2.x】アソシエーションで3つ以上繋げるならjoinに変更したほうが良い

というのもですね。こういうアソシエーションを用意しました。 bindModel([ 'belongsTo' => [ 'Order' => [ 'className' => 'Order', 'foreignKey' => 'orders_id' ], 'Item' => [ 'className' => 'Item', 'foreign…

”Notice (8): Undefined index: conditions [CORE/Cake/Model/Model.php, line 2759]”

Notice (8): Undefined index: conditions [CORE/Cake/Model/Model.php, line 2759] よくわからんエラーだったけど、アソシエーションの設定が漏れてた。 hasMany = [ 'ItemsImagesRelation' => [ 'className' => 'ItemsImagesRelation', 'foreignKey' => 'i…

CakePHPのisUniqueの仕様をちょっとだけ覗く

cakephpのバリデーションでisUniqueってありますよね。 同じ値が他のレコードに存在していた場合、エラーを返してくれるやつです。 使っているとちょっと疑問に思ったことがあって、例えば、nameが"アイパー"で登録されているレコードを更新しようとした場合…

【CakePHP2.x】migartionプラグインを使ってテーブルのフィールドを変更したい

もうCakePHP3.xがでたのにまだ2かよって話ですかね。まだ移行できない気持ちはわかるけど。 2月から新しいプロジェクトに携わっていて、「しめた・・・!」と思い、「CakePHP3.xつかいましょうよ〜^^」なんて提案しようかなとメモしていたら、新しいサーバ…

【PHP】配列のindex番号を振り直す

PHP

array_values()でできる。ちなみに、sort()みたいな参照で渡さないので、返り値を受け取らなければ 1, 1 => 2, 2 => 3 unset($array[0]); // 1 => 2, 2 => 3 $newArray = array_values($array); // 0 => 2, 1 => 3

【CakePHP】QRコードを出力

GitHubで探したら見つかった。ありがとうOSS。 github.com controller側 QrCode->text('http://www.yahoo.co.jp');?> </div> コードを見た感じ、GoogleChartを使用しているっぽい。 ちなみに、最初はスターが多いOSSを利用しようとした。 github.com さっそく使っ…

PHPUnitでSeleniumを使ったテストしているんだけど、flashMessageなんかの要素が存在しない場合はどうすればいいの?ってメモ

JavaにはfindElementってのがあるらしいけど、PHPではそれらしいやつが見つからない。 PHPUnit_Extensions_Selenium2TestCaseってクラスを継承しているんだけど、こいつのドキュメント読みづらくていまいちわからない。じっと見ているけどやっぱりわからない…

GM◯ iClusta and Jenkinsという最悪のコンビネーションで自動デプロイのやり方メモ

カオスだったお(^ω^ でもそんなに難しいことじゃないので、一応読めばできると思う。だけど逃げ出したくなるめんどくささ。 普通のエンジニアにはAWSをポチってJenkinsにリモートでシェルを叩いてもらいましょう。それでもこのカオスな環境を作りたい人はメ…

【Selenium and PHPUnit】指定したい箇所が複数のClassが振られているなら、$this->byXPath()でも複数してしなければいけない

結論はタイトルで述べた。 <table class="a-class b-class"> <tr> <td><a href="#">テストリンク</a></td> </tr> </table> byXPath('//table[@class="a-class b-class"]/tr[1]/td[1]/a')->click(); なんかしらないけど、クラスa-classだけ指定したらうまくいかなかった。 これが正しい動作か書き方なのかまったくもってわからないけど、…

【CakePHP】Model->bindModel()の罠(?)

罠かどうかわかりませんが、前に一度こんなハマりがありました。 loadModel('Post'); // Category Modelをbindする $this->Post->bindModel( array( 'hasOne' => array( 'Category' => array( 'className' => 'Category', 'foreignKey' => 'posts_id' ) ) ) …

【CakePHP】DBを切り替えながらとあるModelで、別Modelを使用するときのメモ

photo by koyhoge かなり特殊な要件ですが、すごくハマりましたのでメモ。

【PHP】「header()」の使い方に注意

PHP

最近これでリダイレクトをかけましたよ。 でも最初動かなかった。 <html> <body> <body> </body></body></html>

PHPUnit + SeleniumでPopup Windowを処理する方法

ポップアップウィンドウでSeleniumが止まる!ってか処理が記載されていませんでした。 下記コードを追加したら動いたお acceptAlert(); これでよし。 また、キャンセルはこれでいける(かも。未検証) dismissAlert(); ソースのコメントを読んだだけなので。

CakePHPのcompactって便利やね

ライブラリのコードをふらっと読んだとき。こんなコードを見つけた。 ~/lib/Cake/View/Helper/FormHelper.php _getInput(compact('type', 'fieldName', 'options', 'radioOptions', 'selected', 'dateFormat', 'timeFormat')); $output = ''; foreach ($form…

【CakePHP】$this->find('all', array('fields' => 'count()'))で取得した値がキモいので直す

たとえばこんな$this->find()を記述したとする。 find('all', array( 'fields' => array( 'name', 'count(name) as idCount' ), 'group' => array( 'name' ) )); とあるModelでnameをグルーピングしてそれぞれ合計を数えるSQLを発行してくれる。 んで、結果…

【CakePHP】Behaviorの使い方をおさらい

いい加減にしてもらおうか!!! 当時、私は就業中に頭のなかでそう叫んだ。 なんか小説みたいな出だしですが、メモしていないことってだいたい記憶の中から消えてしまいます。 私はこのブログをよくメモ代わりに使っていますが、ここに載っていないことって…