インフィニットループ仙台支社のプログラマー、いがらしです。
PHP 界隈の気になったことをまとめ、月一くらいで宮城県仙台市からお送りします。
※ なお、画像のPHP ロゴは作者の Colin Viebrock さんによってリリースされ、CC BY-SA 4.0 でライセンスされているものです。
GitHub で見かけたプロジェクト
- 名前通り休日/祝日計算用ライブラリ
- ある時点から別の時点までの期間データを比較するライブラリ
- 複数の期間がオーバーラップする部分や空白期間等を計算できる
- Carbon などを含む DateTime の実装からも期間データを生成可能
- コードのアーキテクチャを検証するためのツール
- 今のところ 1 つ以上の名前空間から成るコンポーネント間の依存関係を検証するための機能がある
- JSON のストリームパーサ
- 巨大な JSON データを一定のメモリ使用量で扱える
- opcache のバイトコード最適化により取り除かれるソースコード内の行を検出するツール
- PHP 製の機械学習ライブラリ
- AWS Lambda で PHP を使うためのランタイムレイヤー
- 現状では pcntl_fork() で子プロセスを生やしてビルトインサーバを exec() するという何か凄い実装になっている
- Cloudflare v4 API の PHP ライブラリ
- Laravel アプリケーションに評価ポイントや実績バッジといったゲーミフィケーションの要素を追加するパッケージ
- Laravel ベースの RAD プラットフォーム
- PHP による各種デザインパターンのサンプル実装
- コンソール出力を色付けするためのライブラリ
- 与えられた文字列にオブジェクトの状態に応じたエスケープシーケンスを付けるという比較的単純な実装
- PHP のセキュリティに関するツール / ライブラリやドキュメント等へのリンク集
- PHP による遅延キューの実装
- 数分後やユーザの会員期限切れ3日前といった条件で実際の処理を後回しにする仕組み
- Amp ベースの非同期メッセージングフレームワーク
- Saga パターン、CQRS、Publish/Subscribe、メッセージバスといったパターンの実装を持つ
- PostgreSQL のプロトコルを PHP で実装した非同期ライブラリ
- ReactPHP ベース
- まだトランザクションはサポートされていない
- Go による PHP 処理系の実装
- 現在は一部機能のみが実装されている
- PHP 製の Lisp 方言の処理系
- Web サーバとブラウザと PHP 処理系と PHP プログラムをパッケージ化してデスクトップアプリケーションのように見せかける、というプロジェクト
- UI 部分は HTML/CSS/JS で用意する形となる
最近のinternals
[RFC][Vote] Covariant Returns and Contravariant Parameters
- https://externals.io/message/103611
- 返り値の共変と引数の反変をサポートする RFC の投票が開始、投票期間は 1 月 2 日まで
- 2/3 以上の yes で可決、投票は今のところ 27:1 で順調
- 現状実装が opcache 有効時に正常動作しないという報告がある
- 動作するパッチがないと性能への影響が見えないため、一旦投票を取り下げては、という慎重な意見も出ている
[RFC] [VOTE] FFI – Foreign Function Interface
- https://externals.io/message/103613
- FFI の RFC の投票が開始、投票期間は 1 月 9 日まで
- 過半数の yes で可決されるが、今のところ 18:12 で微妙なライン
- 反対派からは以下のような意見
- FFI という名前が(知らない人には)分かり辛い
- 一度取り込まれると互換性維持のため API を柔軟に変更できないため、もう少し実績を積んでからの取り込みにしては
- 賛成派からは以下のような意見
その他の情報や面白かった記事など
WordPress 5.0 “Bebo”
- https://wordpress.org/news/2018/12/bebo/
- WordPress 5.0 がリリース
- Gutenberg がデフォルトのエディタとなり、当面はプラグインで旧エディタもサポート(2021 年までサポート予定)
- なお WordPress は来年 4 月には PHP 5.6、来年末には PHP 7 と、PHP の最低要求バージョンを引き上げることも予定している
14 Tips to Write PHP Code that is Hard to Maintain and Upgrade
- https://www.tomasvotruba.cz/blog/2018/11/26/14-tips-to-write-php-code-that-is-hard-to-maintain-and-upgrade/
- 保守更新の難しい PHP コードを書く 14 の方法
- 自分以外誰にも読み解けず保守できないコードを書くことで、会社を自分に対して依存させ、将来を安泰にするための具体的なコードの書き方を解説
- アンチパターン集として読むのが面白いかも
Online PHP editor | interactive php shell (beta)
- https://3v4l.org/live
- 3v4l にオンラインの REPL かー、と思ってよく見ると “Based on work by Fabrice Bellard” という力強い一言
- JSLinux でブラウザ上で x86 エミュレーションを行い、その中で i586 用の PHP 処理系を動作させているもののよう
PHPカンファレンス2018 スライドまとめ #phpcon2018
PHPの現場 | 25. PHP カンファレンス 2018(omoon / tanakahisateru)
- https://php-genba.shin1x1.com/25
- shin1x1 さんの podcast 「PHP の現場」にて、 PHP カンファレンス 2018 の振り返り等
Xdebug, DBGPで簡易リモートデバッガを作る
- https://blog.freedom-man.com/xdebug-dbgp/
- PHP Advent Calendar 2018の記事
- PHP で TCP ソケットを使い DBGP で Xdebug と喋っている
BEAR.Sunday + Swoole
- https://qiita.com/koriym/items/7d4fd7b1efe41b06aff3
- PHP フレームワーク BEAR.Sunday を Swoole と組み合わせて使うと性能 6 倍
- なぜ速くなるのか、の考察が書かれている
Hack and HHVM Advent Calendar 2018
- https://qiita.com/advent-calendar/2018/hack-and-hhvm
- PHP の派生言語 Hack と HHVM の Advent Calendar
- Hack/HHVM の情報がこれだけまとまるのは珍しい(しかも日本語で)
イベント情報
PHP カンファレンス仙台 2019(開催日: 2019 年 1 月 26 日)
Laravel JP Conference(開催日: 2019 年 2 月 16 日)
- 本編/懇親会の来場者受付を開始
- 当日スタッフの募集を開始(1/31まで予定)
- 正式なタイムテーブルの公開はまだだが、採択された提案は fortee.jp で見れる
PHPerKaigi 2019(開催日: 2019 年 3 月 29 日 ~ 31 日)
PHP カンファレンス福岡 2019(開催日: 2019 年 6 月 29 日)
先日、PHP 7.3.0 がリリースされました。
新機能や変更点、性能向上についてはすでに多くの記事が出ているため、ここでは特に触れませんが、7.3.0 について、現時点で幾つか分かりにくいバグが報告されています。
修正の含まれた 7.3.1 は、来月上旬のリリースとなる見込みです。
また PHP 7.3.0 とあわせてリリースされた PHP 5.6 ~ 7.2 系のマイナーバージョンアップには、脆弱性の修正が含まれています。
例えば、imap_open() 等のメールボックス指定を通じ、設定で disable した筈の外部コマンド実行が可能になってしまう、という問題(CVE-2018-19518)があります。
これは先月に GitHub で exploit が公開され、trending にも上がっていた脆弱性です。
先日 PHP 7.0 の公式セキュリティサポート期間が終了し、今月末には 5.6 についてもセキュリティサポートを終了するところですが、各 Linux ディストリビューションの標準パッケージについてはサポート期間中セキュリティ修正もされていくことが想定されますので(Ubuntu 16.04 や Debian 9 では PHP 7.0 が標準)、脆弱性情報を確認しつつ、なるべく処理系を最新に更新し続けることを推奨します。
例えば、imap_open() 等のメールボックス指定を通じ、設定で disable した筈の外部コマンド実行が可能になってしまう、という問題(CVE-2018-19518)があります。
これは先月に GitHub で exploit が公開され、trending にも上がっていた脆弱性です。
先日 PHP 7.0 の公式セキュリティサポート期間が終了し、今月末には 5.6 についてもセキュリティサポートを終了するところですが、各 Linux ディストリビューションの標準パッケージについてはサポート期間中セキュリティ修正もされていくことが想定されますので(Ubuntu 16.04 や Debian 9 では PHP 7.0 が標準)、脆弱性情報を確認しつつ、なるべく処理系を最新に更新し続けることを推奨します。
さて、2018 年もそろそろ終わりを迎える頃です。
この連載が始まってからはまだ半年くらいしか経っていませんが、その間だけでも PHP 界隈には多くの面白い出来事がありました。
この連載が始まってからはまだ半年くらいしか経っていませんが、その間だけでも PHP 界隈には多くの面白い出来事がありました。
皆さんは今年、どのような出来事が印象に残りましたでしょうか?
来年も引き続き、おおむね月一くらいで続けていきたいと思います。
良いお年を。
良いお年を。