X

PHP

PHP7のタイプヒントベストプラクティス

PHP7から基本的なデータ型(整数型、浮動小数点型、配列型)タイプヒントが追加されます。直感的に書くコードと正しいコードには乖離があります。PHP7でタイプヒントを使う場合のベストプラクティスを紹介します。 タイプヒントとタイプヒントの問題点については前回のブログを参照してください。

PHP7とjson_decodeとjson_encodeの困った仕様 – 数値型データの問題

PHP7からint/float/arrayの基本的データ型のタイプヒントが導入されます。これには困る問題があるのですが、その問題を更に複雑にするjson_decode関数のデータ型変換問題があります。 JSONデータのデータ型が特定の型に変換される問題はPHPのjson_decode関数に限った問題ではなく、JSONを利用する処理系を作る開発者すべてが注意す…

PHP7で追加される整数型、浮動小数点型タイプヒントの問題点

PHP7では整数型、浮動小数点型、配列型のタイプヒントが追加されます。データ型をより厳格に取り扱うようになるのは良い事ですが、データ型を変換してしまうため問題となる場合もあります。 データ型は指定した型に変換すればよい、という単純な物ではありません。私はデータ型を変換しない方のRFCを支持していました。残念ながらこちらのRFCでなく、問題がある方のRFCが採…

PHPポケットリファレンス改訂第三版

PHP5.6にも対応したPHPポケットリファレンス改訂第三版が今月初め頃から購入可能になっています。こちらの案内もブログを書く時間がなく、ここに記載できていませんでした。 [改訂第3版]PHPポケットリファレンス

Webアプリケーションセキュリティ対策入門の付録を更新

既に執筆してから10年ほど経っている「Webアプリケーションセキュリティ対策入門」ですが、サンプルコードがおかしいという指摘がありました。しばらく前からWikiに載せているのですが、時間がなくブログは書いていませんでした。 http://wiki.ohgaki.net/sample コードが随分おかしいという指摘は今まで私にまで届いておらず、何かバグがあった…

ホスト名バリデーションのやり方

徳丸さんのブログで私のブログ「GHOSTを使って攻撃できるケース」にコメントがあったようなので、ホスト名バリデーションの方法を書いておきます。

PHP7の新しいセッションモジュールの性能

PHP7用の新しいセッションモジュールの準備ができたので紹介します。かなりの性能向上が期待できます。

PHP7の現状

PHP7が今年の秋リリースされる予定です。まだまだ多くの変更が行われる予定ですが、現状を簡単にまとめてみたいと思います。代表的な物のみ取り上げています。

速いアプリケーションの作り方

Phalcon Adventカレンダー18日目として書いています。 一台のアプリケーションサーバーで10リクエスト/秒で十分というサービスであれば、どんなプラットフォームを選んでも問題ありません。一台のサーバーが10リクエスト/秒しか処理できなくても、ページがキャッシュできるならリバースプロキシで簡単に数千リクエスト/秒以上でサービスできます。このようなサー…

Phalcon PHPとSails Node.jsのベンチマーク

以前にフレームワーク対決:Node.js+SailsとPHP+PhalconのベンチマークとしてPhalconとSailsのベンチマークを行ったのですが、Apacheを利用した場合のPhalconの性能が全く違うので取り敢えずブログに書きます。

Phalcon 1.3 と 2.0のベンチマーク

Phalcon Adventカレンダー15日目のエントリです。Phalcon 1.3と2.0でどの程度性能差があるか簡単なベンチマークを取ってみました。

Phalcon2.xのRPMパッケージを作る

このエントリはPhalcon PHP Advent Calendar 2014 4日目のエントリです。2日目としてPhalcon 1.xのRPMパッケージを作っています。今回はPhalcon2.xのRPMパッケージを作ります。多分動くと思いますが、ほとんどテストしていないので問題があったらコメントをお願いします。

PHP/Apache httpdのファイルアップロード/ダウンロード処理

最近、ファイルアップロード対策に関する検索が増えているようなので書きました。PHPの場合、スクリプトがアップロードされ実行されてしまうと致命的です。アップロードされたファイルを公開ディレクトリに保存することは好ましくありあせん。しかし、既にそうなっているアプリケーションの場合、改修が困難な場合もあります。

Phalcon PHPのRPMパッケージを作る

PHP最速フレームワークのPhalconですが、RPMパッケージを使ったシステムへのインストールは最速ではありません。Ubuntuの場合、パッケージがあってapt-getで一発インストールできるのですが、デフォルトではRHEL系のRPMパッケージはありません。PhalconのRPMパッケージを作る手順を紹介します。 このエントリはPhalcon PHP Ad…

「PHPセキュリティ保守サービス」がPHP 5.3に対応しました

PHPセキュリティ保守サービスがPHP 5.3に対応したことをプレスリリースとして発表しました。