kensuke-iizuka のアーカイブ

getElementsByTagNameとquerySelectorAllの違い

2017年6月29日

違いは * 静的に取得するか、動的に取得するか * 速度 の2つとなっています。 速度についてはGetElementsByTagnameに軍配が上がります。 これはNodeListオブジェクトに2つの種類があることが理由だそうです。 ### 動的なNodeList ページを表現するDOMにリアルタイムに接続したオブジェクト。このオブジェクトを経由して行われた変更はほかのすべての動的なNodeListにも反映されることになる。つまり、単一のDOMへ
続きを読む

シャローコピーとディープコピーの違い

2017年6月29日

調べ物をしていてタイトルの2つが出てきたので調べてみました。 オブジェクト指向においてよく使われる用語だそうです。 ## シャローコピー シャローコピーとはshallow(浅い)の文字が示すように浅いコピーです。 オブジェクトを複製する際に、コピー元のオブジェクトとコピー先のオブジェクトがメモリ上の同じデータ(インスタンス変数)を参照しています。 コピー元のオブジェクトに対してインスタンス変数に変更が加えられるとコピー先のオブジェクトが参照してい
続きを読む

CakePHPにおけるアソシエーション

2017年6月22日

アプリケーション内で異なるオブジェクト同士の関連を定義しているのがアソシエーションです。例えばブログでは記事は多くのコメントを持っていて、記事は一人のユーザーに属しています。 * 1対1 : **hasOne** * 1対多 : **hasMany** * 多対1 : **belongsTo** * 多対多 : **belongsToMany** アソシエーションはTableで定義します。 ``` namespace App\Model\Table;
続きを読む

CakePHPのビューで共通部分を使い回す

2017年6月20日

レイアウトで共通して使いたい部分はエレメントとして呼び出してあげると便利です。 以下ではdefault.ctpでbase_header.ctpをエレメントとして呼び出しています。 ``` コンテンツ ``` 以下が/src/Template/Element/base_header.ctpの中身です。 ``` ログイン中   ```
続きを読む

dockerに立てたCakePHPでDBとモデルの作成

2017年6月13日

忘備録に ``` $ docker exec -it app_db_1 mysql --protocol=tcp -u root -proot app mysql> use app mysql> ALTER TABLE users ADD `is_male` varchar(1) COLLATE utf8mb4_unicode_ci DEFAULT 'F' AFTER sex; mysql> UPDATE infographics SET is_male='
続きを読む

Facebook GraphAPIでいいね、シェアの数を別々に取得する。v2.9

2017年6月13日

FacebookのGraphAPI(v2.9)を利用してあるページのいいね、シェアの数を別々に取るには ``` https://graph.facebook.com/v2.9?fields=engagement&id='好きなページのURL'&access_token=your_app_id|your_app_secret ``` でjsonとして取得できます。 ``` https://graph.facebook.com/v2.9?fields=enga
続きを読む

CakePHPで複数の変数をコントローラからビューに渡す

2017年6月13日

setメソッドでコントローラからビューへ値を渡すときに一つずつ、 ``` $bar = 1; $foo = 2; $foobar = 3; $this->set('bar',$bar); $this->set('foo',$foo); $this->set('foobar',$foobar); ``` としてもよいのですが ``` $this->set(compact('bar', 'foo', 'foobar')); ```
続きを読む

CafkePHPにおけるHTTPメソッドの確認と受け入れ制限

2017年6月8日

CakePHPでそれぞれのアクションに飛んでくるHTTPメソッドの確認と受け入れ制限は以下のように行います。 ``` public function delete() { //HTTPメソッドの確認 echo $request->getMethod(); // POST と DELETE のリクエストのみ受け入れます $this->request->allowMethod(['post', 'delete']);
続きを読む

CakePHPのバージョン確認

2017年6月8日

アプリケーションの ## vendor/cakephp/cakephp/VERSION.txt に書いてありました。
続きを読む

CakePHPのディレクトリ構成

2017年6月6日

あんまり意識せずに開発していたのですが、今日CakePHPの公式ドキュメントに目を通す機会があったので 忘備録としてメモしておきます ### bin 実行可能なCakeコンソールが入っている ### config CakePHPが使用する設定ファイルが入っている ### logs エラーログ、デバッグログのファイルなどが入っている ### plugins アプリケーションで使うプラグインが入っている ### src 作成するプログ
続きを読む

リクエストパラメータの取得

2017年5月30日

CakePHP(3.0以降)でリクエストパラメータを取得するには次の2つがある ``` $controllerName = $this->request->getParam('controller'); // 3.4.0 より前 $controllerName = $this->request->param('controller'); ``` ただ3.4.x以降でもparamで取得できていて、何が違うのかよく分からない
続きを読む

【PHP】例外のメッセージを表示させる

2017年5月23日

``` ``` これで画面上に例外のメッセージを表示させることができます。
続きを読む

Could not find ‘php-cs-fixer’. The program may not be installed.の解消

2017年5月18日

Atomでatom-beautifyをインストールしてPHPファイルをセーブした時に出てきた上記のエラーを解決したいと思います。 ただ[このページ](https://github.com/FriendsOfPHP/PHP-CS-Fixer)のとおりに、PHP-CS-Fixerをインストールするだけでした ``` $ wget http://cs.sensiolabs.org/download/php-cs-fixer-v2.phar -O php-cs-fixe
続きを読む

CakePHPでデータを取得時にソートする

2017年5月18日

``` ``` find()メソッドの第二引数に上記のように指定すればデータを取得時にソートしてくれます。
続きを読む

JavaScriptで小数点第n位までの四捨五入

2017年5月9日

``` // 小数点n位までを残す関数 // number=対象の数値 // n=残したい小数点以下の桁数 function roundFloat( number, n ) { var _pow = Math.pow( 10 , n ); return Math.round( number * _pow ) / _pow; } roundFloat( 1.66666666, 4 ); // => 1.6667 ``` [参考](https:/
続きを読む

JavaScriptで数値をカンマ区切りにフォーマットする

2017年5月9日

物の値段やお金に関する数値が大きくなるとよく三桁ごとにカンマ区切りで表示することがあります。 JavaScriptで数値をカンマ区切りにフォーマットするにはtoLocaleStringメソッドを使います。 使い方は簡単で、 ``` Number(123456789).toLocaleString(); //=>123,456,789 ``` です。しかし以下のような場合もあります。 ``` Number(12345.6789).toLocaleStr
続きを読む

Hashクラスを利用して入り込んだ配列操作を楽に行う

2017年5月2日

PHPでは配列でデータを持たせて操作させるということが多々あります。配列は便利なデータ構造ですがデータ量が多くなると入れ子構造になりがちでネストが深いとその要素にアクセスするのに手間がかかります。 CakePHPが提供するHashというユーティリティクラスを利用することでそんな面倒な操作を楽にできるのです。 いくつかメソッドを紹介したいと思います。 ## extractメソッド > extractを使うことで、配列もしくはArrayAccessインター
続きを読む

PhpStormで.ctpファイルのシンタックスハイライトを有効にする

2017年4月25日

デフォルトでPhpStormを使っているとCakePHPのビューファイルである拡張子が.ctpであるファイルが プレーンテキストとして表示されて見づらいので、自分でシンタックスハイライトを追加します。 PhpPhpStorm > Preferences > Editor > File and Code Templatesと進み 左上の緑色の"+ボタン"をクリックします。 Nameはなんでも良いのですがExtensionをPHPにしてApplyとOKをク
続きを読む

PHPにおける”->”と”::”の違い

2017年4月20日

PHPでオブジェクト指向プログラミングを行うときに見かける2つの演算子についてどのような違いがあるのか. ## アロー(->)演算子を使う場合 インスタンスプロパティとインスタントメソッドにアクセスする ## スコープ定義(::)演算子を使う場合 静的プロパティと静的メソッドにアクセスするのかです。 例を挙げておきます。 ``` class Human (){ public static $humanNumber; private
続きを読む

Firebaseでユーザー情報を確認する

2017年4月6日

Firebaseでログインしているユーザー情報は以下のように取得することが出来ます。 ``` const user = firebase.auth().currentUser; const name, email, photoUrl; if (user != null) { name = user.displayName; email = user.email; photoUrl = user.photoURL; } ``` ログイ
続きを読む