2020年にPHPを勉強するには
問題
2020年からPHPを始めたい、またはやらなければならない人が学ぶための学習リソースがよくわからない
昔の言語仕様やエコシステムが前提の作法の記事が沢山あり、初学者が学びにくい
この情報は、参考にして良い情報なのか?がわからない。初学者だから
時代はPHP8
PHPという言語に対する所感
PHP5系の特に序盤ぐらいのときには言語仕様が貧弱で、かつcomposer(パッケージマネージャ)も存在しなかったのでPHPの評判は悪く、他の言語(RubyとかJava?)のほうがいい、PHPはよくないという情報が結構流れたらしい。詳しい経緯は知らないので事実誤認があるかもしれないが、悪評がある時期があったのは確実。PHP7以降はそういう噂はだんだん少なくなっていった印象がある。
2021年現在のPHPはLaravelの隆盛や、Nikita popovさんなどの尽力による言語機能の大幅強化もあり、積極的に避けるべき言語とは全く思えない。
ボトルネックがIOではなく、ハイパフォーマンスなAPIサーバーがほしいという場合にはGo使えば?とは思う。しかし大抵の場合はPHPでもなんとかなる。特にWAFは成熟している。
中途のエンジニア採用も考えれば、PHPは結構良い言語だと思う
歴史的にイマイチよくわからないゆるさもあったりするが、そこはコードレビューでカバーできる。
おそらく今もどこかで動いているレガシーなPHPは辛い。それはそう。
どうすればいい?
良さげな学習リソースがあったらメモっていく
学習リソース
文法を学ぶ
動画
Learn PHP Online | Code School
Get Better at PHP with Laracastsもよいらしい(via namaozi)
書籍
最近の入門書を読んでいないのでわからないkadoyau.icon
PHP5.3対応のパーフェクトPHPがPHP7に対応してくれると嬉しいが…
公式のマニュアルPHP: PHP マニュアル - Manual
辞書的に使う。度々引くのでDashを導入しておくと便利
充実してる上に日本語で読める
コメントの例で古いものは文法に関しては参考にならない
深堀りしたいなら php/php-src: The PHP Interpreter でCの実装も読める
PHPの内部構造
作法を学ぶ
/php/PHPについての歴史文献
PHP: The Right Way
余談:「PHP Wrong Wayというのもあるけど?」
PHP - The Wrong Way とは何だったのか - なんたらノート第三期ベータ
補足を含むpodcast https://overcast.fm/+Jx9aD-efk #PHPの現場
モダンPHPアンチパターン - Qiita
これももう古いけど、さらに古いコードを見ることがあれば参考になる
ここに乗っているような作法で書かれたソースコードを参考にしないようにする
今はもっといいやり方があるはずという気持ちで探す
ぺちぱーのよくばりセット - Qiita
初心者を戒めるPHP - Qiita
ソフトウェア設計手法を学ぶ
#ソフトウェア設計 にぶら下がっている記事が参考になるかも(DDDとか)
PHP固有の知識ではなく、アプリケーション開発全般に利用できる方法論
Web Application Frameworkを学ぶ
PHPを使って新規にWebアプリケーションを作る際には、現実的には何らかのWAFを使うことになります
例:Laravel, Symfony, CakePHP etc...
WAFはWAFごとの作法があるので、公式documentやサンプルを見て学んでいきましょう
kadoyau.iconが使っているLaravelについての情報はLaravelにまとめています
kadoyau.iconが他のWAFをよく知っているわけではないです
リッチなWAFはWebアプリケーションに必要な機能が詰め込まれているので、初学者には学習コストも大きいです
「PHPを使って{認証, caching, API, DB操作, ...}という機能を実現する」を一つ一つ学んでいくことになります
機能を限定して、必要なところから徐々に学んでいくのがいいと思います
フロントエンドを含めたWeb開発全般についての学習資料はWeb開発にまとめています
実用している開発者の話を聞く
Podcast
PHPの現場
PHP Roundtable
HostのSammyKはDatadog所属
blogをRSSに登録しておこう(Slackに流してもいいかも)
Shin x Blog
なんたらノート第三期ベータ
PHP | 株式会社インフィニットループ技術ブログ
「たぶん月刊PHPニュース」
PHP Annotated Monthly | PhpStorm Blog
カンファレンス
PHP Conference Japan
PHPerKaigi
いずれも学会発表みたいに硬い感じではないので気軽に参加できる
トレンド
Qiitaのタグをたまに流し見するのも便利
PHPに関する投稿 - Qiita
contributionの多い人は生きた知識を持っている可能性が高い
mpyw、tadsan、https://qiita.com/rana_kualu さんなどたくさん詳しい記事を上げている人がいる
tadsanは/phpを書いている
GitHubのトレンド https://github.com/trending/php?since=monthly
PHPのマニアックな情報源
PHPのコア開発者が決定! - Qiita
最新の言語仕様
PHPの内部構造#5c58030e3f44250000880cfb
PHP: 新機能 - Manual
PHP5系より型宣言が強くなったので使っていきたい
PHP: rfc
提案されている仕様
https://twitter.com/official_php
よさげなライブラリ一覧
ziadoz/awesome-php: A curated list of amazingly awesome PHP libraries, resources and shiny things.
PHPのコードをさくっと試す
未整理
PHPを学ぶということ by 岸田健一郎 | トーク | PHP Conference Japan 2019 #phpcon - fortee.jp
発表資料が後で追加されるかも?
#PHP