kensuke-iizuka のアーカイブ

WordPressのデバッグレベルの調整

2017年9月21日

WordPressで開発しているときのエラーを表示するにはwp-config.phpで以下のような処理の引数を指定すれば ブラウザ上でPHPのエラーを表示させることが出来ます。 ``` // デフォルト define('WP_DEBUG', false); // ブラウザでエラー表示をする define('WP_DEBUG', true); ``` これだと次のような警告まで出てしまいます。 > Notice: "○○○"は非推奨です。代わり
続きを読む

$_FILESの中身

2017年9月14日

$_FILESというグローバル変数を用いることでPOST通信におけるファイルのアップロードができるようになります。 その中身は ``` Array ( [your-file1] => Array ( [name] => toire.jpg [type] => image/jpeg [tmp_name] => /tmp/phpneHggE
続きを読む

PHPにおけるクラス内定数へのアクセス

2017年9月12日

PHPのクラス内での定数宣言とアクセスは以下のコードの通りです。 ``` class Hoge(){ const CONST_NUM = 100; ... for (i = 0; i < self::CONST_NUM; i++){ ... } } ``` selfがポイントでしょうか?基本的なことですが$thisはオブジェクトごとですがselfはクラスそのものを指しています。
続きを読む

WordPressの読み込み順

2017年8月31日

WordPressがどのように起動されるのかを[こちらのページ](http://www.nsthink.com/wordpress/)を参考にして実際のファイルを追いながら見ていきます。 # 1) index.php まずルートディレクトリのindex.phpが読み込まれます。 数行しかないファイルですが、テーマが使われているかという定数(WP_USE_THEMES)にtrueを定義して、 wp-blog-header.phpを読み込みます。 このW
続きを読む

PHPの関数の前につく謎の@マーク

2017年8月25日

WordPressのPHPファイルを見ていると関数の前になぜか@がついていて調べてみると、 「エラー制御演算子」だということがわかりました。 これにより関数で発生したエラーについて無視されます。 以下のような感じで使います。 ``` @file_get_contents($url); ``` しかし、PHPの公式マニュアルでは > 現在、エラー制御演算子プレフィックス"@"は、スクリプトの実行を 終了するような致命的なエラーの出力さえ抑圧し
続きを読む

GoogleMapのフルスクリーンアイコンを非表示にする

2017年8月18日

知らない間にGoogleMapの右上にフルスクリーンアイコンが表示されるようになりました。 早速、消したいと思います!! MapOptions内のプロパティ ``` fullscreenControl: false ``` 以上です。
続きを読む

PHPの二種類の論理和積

2017年8月18日

PHPでは論理和、論理積の演算子がそれぞれ下に示すように2種類ずつあります。 ## and, &&, or, || それぞれは単独で使うと等価ですが、複数の演算子の間に発生する優先順位が異なります。 例えば、 ``` $a = false || true; ``` これは ``` $a = (false || true)) ``` と等価ですが ``` $b = false or true; ``` は ``` (
続きを読む

Vagrantfileでのhostmanagerの設定

2017年8月10日

VCCW3.xでVagrantfileを利用してvagrant-hostmanagerによる自動でIPアドレスとURLのひもづけを行うには 以下のような変更が必要です。 ``` config.vm.network :public_network, type: 'dhcp', bridge: 'en1: Wi-Fi (AirPort)' config.hostmanager.enabled = true config.hostmanager.manage_ho
続きを読む

Seleniumの落とし穴

2017年8月8日

自動テストをSeleniumで書いていて要素をXpathで取得しようとした時に落とし穴にハマりました。 ``` driver.findElement( By.xpath("//*[@id='book_list ']/div/div/table/tbody/tr[4]/td[1]/a" ) ); ``` NoSuchElementErrorが出てしまいました。 何が問題なのかと考えていると... なんとidの'book_list '
続きを読む

PHPバージョン確認のあれこれ

2017年7月20日

PHPバージョン確認をしようとするときに人によって幾つか選択肢がありそうなので忘備録がてらまとめます。 ### 1.環境からアクセスできるファイルを作る。 普段開発している環境にphpinfo.phpのようなファイルを作成して ## 開発環境のURL/phpinfo.php などのパスに置いてあげることでこのページにアクセスするだけでPHPの設定が確認できます。 ファイルはシンプルに以下のように作成すればよいかと思います。 ```
続きを読む

React Nativeのバージョンを指定して初期化する

2017年7月11日

React Nativeを使ってモバイルアプリケーションを作る際にReact Nativeのバージョンを指定して作成するには、 以下のinitコマンドでバージョンを指定してあげれば大丈夫です。 これで少し古いnodeモジュールを使っていて最新版では動作しないといったことも減るのではないでしょうか。 ただ更新頻度も多くどんどん新しくなるので公式としては最新版での利用を推奨しています。 ``` $react-native init --versio
続きを読む

CakePHPで独自例外の実装

2017年7月6日

CakePHPで独自例外を実装します。 ### 独自例外クラス ```
続きを読む

JavaScriptとPHPで全角数字を半角数字に変換する

2017年7月4日

入力フォームで数字を入力した時に全角で入力されてしまうと、数字のバリデートチェックをするときに 弾かれてしまうことがあります。もっとユーザーフレンドリーになるべく全角数字も半角に変換してバリデートチェックをパスできるように したいです。 Javascriptだと以下のコードで実装できます。 ``` var before_value = "10000"; var after_value = before_value.re
続きを読む

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')); ```
続きを読む