2020年にPHPを勉強するには
問題
2020年からPHPを始めたい、またはやらなければならない人が学ぶための学習リソースがよくわからない
昔の言語仕様やエコシステムが前提の作法の記事が沢山あり、初学者が学びにくい
この情報は、参考にして良い情報なのか?がわからない。初学者だから
PHPという言語に対する所感
PHP5系の特に序盤ぐらいのときには言語仕様が貧弱で、かつcomposer(パッケージマネージャ)も存在しなかったのでPHPの評判は悪く、他の言語(RubyとかJava?)のほうがいい、PHPはよくないという情報が結構流れたらしい。詳しい経緯は知らないので事実誤認があるかもしれないが、悪評がある時期があったのは確実。PHP7以降はそういう噂はだんだん少なくなっていった印象がある。
2021年現在のPHPはLaravelの隆盛や、Nikita popovさんなどの尽力による言語機能の大幅強化もあり、積極的に避けるべき言語とは全く思えない。 ボトルネックがIOではなく、ハイパフォーマンスなAPIサーバーがほしいという場合にはGo使えば?とは思う。しかし大抵の場合はPHPでもなんとかなる。特にWAFは成熟している。
中途のエンジニア採用も考えれば、PHPは結構良い言語だと思う
歴史的にイマイチよくわからないゆるさもあったりするが、そこはコードレビューでカバーできる。
おそらく今もどこかで動いているレガシーなPHPは辛い。それはそう。
どうすればいい?
良さげな学習リソースがあったらメモっていく
学習リソース
文法を学ぶ
動画
書籍
最近の入門書を読んでいないのでわからないkadoyau.icon
辞書的に使う。度々引くのでDashを導入しておくと便利 充実してる上に日本語で読める
コメントの例で古いものは文法に関しては参考にならない
作法を学ぶ
余談:「PHP Wrong Wayというのもあるけど?」
これももう古いけど、さらに古いコードを見ることがあれば参考になる
ここに乗っているような作法で書かれたソースコードを参考にしないようにする
今はもっといいやり方があるはずという気持ちで探す
ソフトウェア設計手法を学ぶ
PHP固有の知識ではなく、アプリケーション開発全般に利用できる方法論
PHPを使って新規にWebアプリケーションを作る際には、現実的には何らかのWAFを使うことになります
WAFはWAFごとの作法があるので、公式documentやサンプルを見て学んでいきましょう
kadoyau.iconが使っているLaravelについての情報はLaravelにまとめています kadoyau.iconが他のWAFをよく知っているわけではないです
リッチなWAFはWebアプリケーションに必要な機能が詰め込まれているので、初学者には学習コストも大きいです
「PHPを使って{認証, caching, API, DB操作, ...}という機能を実現する」を一つ一つ学んでいくことになります
機能を限定して、必要なところから徐々に学んでいくのがいいと思います
フロントエンドを含めたWeb開発全般についての学習資料はWeb開発にまとめています 実用している開発者の話を聞く
blogをRSSに登録しておこう(Slackに流してもいいかも) 「たぶん月刊PHPニュース」
カンファレンス
いずれも学会発表みたいに硬い感じではないので気軽に参加できる
トレンド
Qiitaのタグをたまに流し見するのも便利
contributionの多い人は生きた知識を持っている可能性が高い
最新の言語仕様
PHP5系より型宣言が強くなったので使っていきたい
提案されている仕様
よさげなライブラリ一覧
未整理
発表資料が後で追加されるかも?