PHPのclassキーワードによるクラス名の解決は、実際のクラスを参照していない
PHPの落とし穴の一つ。もしかしたら勘違いしている方がいるかもしれないので、マニアックな内容ですが紹介しておきます。PHPのclassキーワードPHPでは、特定のクラスのクラス名(名前空間を含む完全修飾名)を取得するとき、classキーワードを参照することで…
PHPの落とし穴の一つ。もしかしたら勘違いしている方がいるかもしれないので、マニアックな内容ですが紹介しておきます。PHPのclassキーワードPHPでは、特定のクラスのクラス名(名前空間を含む完全修飾名)を取得するとき、classキーワードを参照することで…
Laravelには、ヘルパー関数(Helper Functions)という、便利なグローバル関数が複数定義されています。このヘルパー関数の多くはフレームワーク自体で使用されていますが、ユーザーがアプリケーションに含むこともでき、自由に使用できます。しかし実際には…
Webアプリケーションのセキュリティを考える上で、やはり最も重要視すべきなのが、認証の部分でしょう。いくら脆弱性の含まない、完全なWebアプリだったとしても、IDとパスワードが流出してしまったら、全く意味がありません。近年、推測可能なパスワードを…
PHPからTwitter APIを叩く方法について、以前こちらの記事に記載しました。今回は、フォローしている人及びフォロワーの人たちのIDを全て取得する方法を書き残しておきます。Twitter APIにおけるユーザー取得上限通常、Twitter APIでフォローしている人及び…
オープンソースの文化が活発化してくれたおかげで、今や、様々なプログラミング言語で色々なライブラリが無料で利用できます。Laravelを利用する上でも、Laravel用のライブラリがComposer経由でたくさんあります。しかし当然ながら、Composerで手に入るほと…
2017年1月、私は当ブログ立ち上げ以来2年間利用し続けてきたWordPressを使うのを辞めました。現在は、PHPフレームワーク(Laravel)を用いて作成した、独自開発のCMSで運用しています。私がなぜ、これまで利用してきたWordPressを切り捨てるに至ったか、その…
LaravelなんかのPHPフレームワークでは、デフォルトで.envファイルを用いて環境設定(Dotenv)するようになっています。CakePHP 3は、デフォルトでDotenvが利用できる形にはなっていないので、ライブラリを導入してDotenvで環境設定ができるよう実装する手順…
PHP 5.6以前では、遅かった配列処理系の関数も、PHP 7以降ではかなり高速化されています。PHP 5.6以前で、array_diff関数が遅く、独自の高速化array_diff関数を使っていた方も多いのではないでしょうか。以下のような関数です。高速化array_diff関数<?phpfun…
CakePHP 3系にて、アソシエーションを利用する場合に便利なmatchingメソッド。便利に活用させていただいていたのですが、利用していく上で、複数の条件を指定する場合において少し悩んだので、備忘録として。使い方まずは通常の使い方から。matchingは、多対…
PHPにおける基本的なセキュリティ対策の方法について、備忘録としてまとめます。PHPでこれからWebアプリケーションやWebサイトを作成しようと考えている方は、各項目について対策は万全か、是非一度ご確認ください。本記事(後編)では、以下に関する脆弱性…