[市場動向]
無料で利用/改変可能なPHP教材「PHP Open Textbook」、2023年1月1日にGitHubで公開
2022年12月6日(火)日川 佳三(IT Leaders編集部)
一般社団法人BOSS-CON JAPANの内部組織であるPHP技術者認定機構は2022年12月6日、PHP教材ドキュメント「PHP Open Textbook」を2023年1月1日にGitHubで公開すると発表した。商用・非商用を問わず、無料で改変権と利用権を付与する。PHP7の教材をPHP8の教材にアップデートする作業を支援する。同組織は主な用途として、全国約40校のPHPスクール用や社内勉強会用の教材や書籍での利用を挙げている。
PHP技術者認定機構は、PHP8の教材ドキュメント「PHP Open Textbook」を、2023年1月1日にGitHubで公開する。上級者向けや初学者向けのコンテンツを揃え、PHP8のインストール方法や言語リファレンス、基本的な関数の使い方の説明など、PHP8を学ぶための教材を提供する(画面1、表1)。
拡大画像表示
特徴は商用非・商用を問わず、無料で改変権と利用権を付与すること(図1)。クリエイティブ・コモンズ・ライセンスの「CC BY 4.0」(表示4.0国際)を適用した。同機構は主な用途として、全国約40校のPHPスクール用や社内勉強会用の教材や書籍での利用を挙げている。
PHP Open Textbookの提供により、PHP7以前の教材からPHP8の教材へのバージョンアップを促進する。現在、スクールなどの各社が個別に教材を開発しているが、その際にかかる負荷やコストを削減することを目的としている。PHP8の教材が浸透することにより、PHP8を学ぶ開発者が増え、PHP7からPHP8への移行が進むことを想定している。
同組織は、PHP8におけるPHP7からの変更点として大きく2つを挙げている。1つはJIT(ジャストインタイム)コンパイラを搭載して実行時の処理速度を高めたこと。もう1つは、言語仕様を改善し、変数などの型について、より厳密に取り扱えるようにしたことである。エラーのレベルや内容も見直している。
利用状況(2022年12月6日時点、W3Techs)を見ると、PHP7が70.2%を占めており、PHP8は6.8%にとどまる。しかし、PHP7(PHP7.4)のサポートは2022年11月28日に終了しており、2023年以降はPHP8への移行が進む。したがって、教材もPHP7からPHP8へのアップデートが必要になる。
運営にあたっては、利用者が常に最新の教材を利用できるようにする。公開するドキュメントに対しては、広くGitHub上でプルリクエストを受け付ける。コミッターには、PHP技術者認定機構のCTOである古庄道明氏と、エバンジェリストの三雲勇二氏(プライム・ストラテジー)が着任する。
古庄氏は、「学びのうえでは、よい開発環境でたくさんのソースコードに触れることが大切」として、GitHubを通じてソースコードを含んだドキュメントを提供していくPHP Open Textbookの意義を表明している。初学者向けのケアにも注力するという。三雲氏は、「Webサイトや書籍の通りにやっても動かないことは多い。開発環境を素早く構築して学習に専念できるようにドキュメントを整備する」とコメントしている。
項目 | 内容 |
---|---|
インストールと設定 | インストールにあたっての一般的な注意事項、FastCGI Process Manager(FPM)、実行時設定(php.ini関連) |
言語リファレンス | 型、Iterable、変数のスコープ、可変変数、演算子、制御構造に関する別の構文break、可変関数、無名関数、クラスの基礎 / プロパティ / オブジェクト定数 / アクセス権 / タイプヒンティング、スコープ定義演算子(::) / static キーワード / クラスの抽象化、オブジェクト インターフェイス / 遅延静的束縛(Late Static Bindings)、オブジェクトの継承 / トレイト / オーバーロード / finalキーワード、マジックメソッド、オブジェクトのクローン作成 / オブジェクトのシリアライズ、クラスのオートローディング / 無名クラス / オブジェクトの反復処理 / オブジェクトの比較、名前空間、ジェネレータ、エラー、例外(exceptions)、定義済みのインターフェイスとクラス、定義済みのインターフェイスとクラス、定義済のクラス + Standard PHP Library(SPL)、定義済の変数、サポートするプロトコル/ラッパー、および各バージョン差分 |
セキュリティ | XSS、SQL-Injection、CSRF、Cookie、セッション、ログイン(パスワード認証) 、ディレクトリトラバーサル、クリックジャック+コマンドインジェクション、ファイルアップロードまわり、安全ではないデシリアライゼーション |
機能 | PHPをコマンドラインから使用する、ガベージコレクション |
基本的な関数 | エラー処理およびログ記録、PHPオプションと情報、Phar、HASHメッセージダイジェストフレームワーク、OpenSSL、リフレクション、日付・時刻クラス、日付・時刻関数、ディレクトリ、ファイル情報、メール、出力バッファリング制御、数学関数、システムプログラムの実行、Tokenizer、ストリーム、URLs、ネットワーク、正規表現(Perl互換)、文字列、配列、クラス/オブジェクトの情報、変数操作、関数処理、Document Object Model、libxml 、SimpleXML 、データのフィルタリング |