PHPの「遅延静的束縛 (Late Static Bindings)」機能、解読!

2016年10月31日
PHP, Web制作

PHPでは、静的メソッド(クラスメソッド)の中で3つの特別なキーワードが使えます self:: parent:: static:: self:: と static:: を混同している人が多いと思いますが、無論別物です。 今回の焦点は「static::」です。このstatic:: を使うと「遅延静的束縛 (Late Static Bindings)」なる機能を使うことになってます。 はて… 何やら小難しそうなワードです。公式ドキュメントによれば PHP 5.3.0 以降、PHP に遅延静的束縛と呼ばれる機能が搭載されます。 これを使用すると、静的継承のコンテキストで呼び出し元のクラスを参照できるようになります。

PHPのアクセス権キーワード `private` と疑似変数 `$this` の落とし穴

2016年10月31日
PHP, Web制作

PHPのアクセス権キーワード  private と疑似変数 $this、どちらも私が初心者の頃から慣れ親しんできたワードだし、日常的にもお世話になっているのです。 お恥ずかしい話ですが、つい最近までは実は分かるようで分からないでいたのです…! 何がよく分かってなかったかというとですね、クラスを継承した時に、継承したメソッド( public | protected )の中の$thisが指すオブジェクトは継承元のインスタンスなのか、それとも継承先のインスタンスなのかということです。 そして、継承できるはずもないprivateなプロパティを継承したメソッド経由でアクセスできる辺りもなんだか不思議でならないです。 そろそろスッキリさせたいなと思いました…! 公式ドキュメントを読み漁っても詳しい説明が載ってなかったので、自分で実験してみて分かったことをまとめておきたいと思います。私と同じくここらへんで違和感を覚えている人たちのご参考になれば嬉しいです。 $this が指すオブジェクトについて class A { protected function foo($b)

Cloudflareを使ってWordPressサイトをHTTPS化する時の流れとポイント

2016年10月25日
Web制作, WordPress

GoogleがHTTPSに対応したサイトをランキングで優遇する方針を発表してから、Webサイトの常時SSL/TLS化がすごいスピードで進んでいるように感じられます。 今までは有料だったSSL/TLSは、今や let’s encrypt を筆頭に、CloudFlare や Amazon Certificate Managerなど、無料のSSL/TLS証明書を発行してくれるサービスが続出中。もはや常時SSL/TLS化が常識の時代です。 もっとも簡単かつおまけサービスもてんこ盛り(HTTP/2 やら 静的コンテンツのキャッシュやら)の CloudFlare を使ってサイトをHTTPSに対応してみました。 CloudFlare側の設定は最高に簡単なので、さらっと目を通しつつ、WordPressで使う時のポイントだけ紹介します。 ネームサーバーの変更 CloudFlareを使うためにはまず、利用しているレジストラ(お名前.comとかVALUE-DOMAINとか)の管理画面で、ネームサーバーをCloudFlare指定のネームサーバーに切り替える設定をする必要があります。 そうすると名前解決した時に、CloudFlareのプロキシサーバーを指すようになって、間で勝手にいろんな最適化してくれるというわけです。 最初にDNSレコードのスキャンが行われますが、DNSレコードをいじってない人にとっては基本的それで大丈夫だと思いますが、自分であれこれDNSレコードを追加したり変えたりしている人なら完全にスキャン結果を信用してはいけないです。なぜならスキャンされないレコードがあったり、あるはずもないレコードが出たりするので、自分の目で確認しておいたほうが良さそうです。 SSLのオプション