もうレガシーはやめて、
過去を乗り越えて未来へ進もう!
정상우の『Awesome Laravel』
PHP 7+ プログラミング
基礎文法から内蔵関数、ウェブセキュリティ、掲示板作成まで、入門と初級段階でPHP言語を始める方々のためのバイブルとなるような気持ちで、今回の講座を作成いたしました。
カリキュラム
この講座ではPHPプログラミングを基礎文法から始めて組み込み関数、Webセキュリティ、掲示板作成まで、Web開発において基礎となる部分についてお話しします。既存の「PHP 7+ プログラミング」講座では扱わなかった様々な組み込み関数や、掲示板での単純な実装だけでなく関数化を通じてコードの品質向上まで図れるよう構成してみました。
必ず知っておくべきPHP基礎文法
PHP 7+ バージョンに該当する基本的な文法を習得します。この講座は基本的にPHP 7.2バージョンを基準としていますが、PHP 7.4バージョンに登場したArrow Function、Spread Operator in Arrayもカバーできるよう構成しました。したがって、講義をゆっくりと追いかけていけば、講義が制作された時点での最新バージョンであるPHP 7.4バージョンまで習得することができます。
よく使用されるPHP組み込み関数
String、Password HashingなどPHPプログラミングをする際に必ず知っておくべき組み込み関数について学びます。内容が多く見えるかもしれませんが、掲示板作成でかなりの数を使用することになります。ただし、単純に羅列する方式で進行されるため、退屈に感じる可能性があります。そのため、掲示板作成を先に進めてから組み込み関数パートを見るのも一つの方法です。
*他のチャプターよりも組み込み関数で特に多くの途中放棄が発生します。リファレンス方式で進行されるため面白くないからです。全部やろうとせず、該当機能が必要だと思われる時に受講するのが望ましいです。
セキュリティを忘れないでください。
Session、XSSなどウェブセキュリティについて学習します。PHPは他の言語に比べて参入障壁がやや低いため、むしろセキュリティのような事項が守られないケースが多いです。これはウェブアプリケーション作成において問題となる可能性があり、私たちがたとえセキュリティ専門家ではないとしても、基本的なセキュリティ事項は守る必要があります。
結局、掲示板を作ることになっています。
レガシープロジェクトで掲示板を作成します。白紙からindex.phpを作成することから始まってプロジェクトが進行されます。このような掲示板プロジェクトが現在フレームワーク中心で開発されて動いているWebアプリケーションの世界において合わないかもしれません。しかしPHPのフレームワークであるLaravelを少しでも理解するためにはレガシーでプロジェクトを作成してみる必要があり、驚くことに現場にはレガシーで作成されたPHP 4、PHP 5アプリケーションも多いです。
いつまで、レガシーですか?
レガシーで作成した掲示板プロジェクトを「どのようなアーキテクチャ」を描写しながら似たように真似します。オブジェクト指向で実装した「本物」ではないため言及しません。しかし現在存在するコードを関数化することで、コードが劇的に変化する様子を見ることができます。オブジェクト指向で実装してみることは『PHP 7+ プログラミング:オブジェクト指向』で話す予定です。
講義を受講する前に必要なもの
開発サーバーはビルトイン内蔵サーバーを使用しますが、必要に応じてWAMPのようなツールを使用するか、PHPマニュアルを参考にしてください。
- PHP 7.4.21 TS(Thread Safe) (64bit)
- XDebug 3.0.4 TS (64bit)
- コードエディターはVSCode(Visual Studio Code)を使用します。
フロントエンドにCSS FrameworkとテキストエディターとしてCKEditor 5を使用します。
Q&A
2023年07月24日から個人的な事情により講義に関する質問をお受けしておりません。ただし、これまで数年間に作成された質疑応答はご覧いただけます。コミュニティで質問を探してみることをお勧めします。
公式ドキュメント & 書籍
Q. この講座の後はどのようなことを勉強すればよいでしょうか?
A. オブジェクト指向パートを必ず勉強する必要があります。資料はPHPドキュメントを見るのがまだましです。もちろん、PHPは関数型プログラミングもできるので、それを調べてみるのも良いでしょう。その他にPHP Coding Standard、PSR(PHP Standard Recommendation)なども調べる必要があります。一つ確実なことは、オブジェクト指向を勉強する前にLaravelフレームワークに移るのは避ける方が良いということです。
この講座の次の講座は『PHP 7+ プログラミング:オブジェクト指向』です。今回の講座で関数についての話を主にしたとすれば、オブジェクト指向ではクラスとオブジェクトについての話を主にし、それだけでなくパッケージマネージャーなどもう少し深い内容を見ていきます。
2020年06月09日『PHP 7+ プログラミング: オブジェクト指向』講義が公開されました。
今こそオブジェクト指向で一歩前に進むべき時
『PHP 7+ プログラミング: オブジェクト指向』