「キャリア10年超のphperなら大体読んでいそう」と思えるくらい、非常に頼れるパーフェクトPHPという書籍があります。
出版当時、2010年。
タイミング的に、世界は「Composer前夜」であり、PHP-FIGも生まれかけレベル。HackやPHP7といった激震を迎える前の話です。
そんな時代の偉大な成果物を、令和5年にPHP8.2で「今風」に書き直したら──どんな感じになるのでしょう?
「10年前のMVCを支えるコード」と「最近っぽいFWの要件」の比較を交えながら、大げさに新機能を使ったりしてみて、実際にFWを作ってみましょう。
PHPを書く現場から離れて4年ばかりすぎたある日、唐突に天啓が舞い降りた
「私もオレオレフレームワークが作りたい……!」
(*良い子は真似しちゃいけないし同僚にそんな人がいたら殴ってでも止めよう!)
動機とコンセプト
composerをinitしたりrequireしたりアレコレ
他のフレームワークに学ぶ
ライブラリを選んで作るフレームワーク
テストを書いてCICDで守る
自分のコードに置き換えて作る私だけのオレオレフレームワーク
packagistへの公開
ハマりまくると思うのでその全て
七顛八倒するはずなので気楽に楽しんでもらえたら!
ライブラリ(フレームワーク)ができていく過程をみてみたい人
空のファイルから全部書いたことがない人
DDDとかイケてる設計の話とか
実運用に耐えられるかどうか
2023/02/03 に約3年ぶりのメジャーバージョンアップデートであるPHPUnit 10がリリースされます。
3年ぶりということもあって、PHPUnit 9からの変更はとても多いです。
例えばPHPのrequireが7.3->8.1へと大きく変わったり、大量のクラスやメソッド、オプションが削除されたりなど・・・
今回のトークではPHPUnit 10で何が変わったのか、changelogベースで解説していきます。
必要に応じて、実際に動かしたりしながらの解説もしていきます。
弊社で5月から11月に行われたプロジェクトはエンジニアから見てウォーターフォールのようにスケジュールが組まれていた。
終わってみると特に炎上らしい炎上はなく、プロジェクトは成功した。
ここで疑問が湧いた。ウォーターフォールに思えたプロジェクトは何が要因でうまく遂行できたのか?
弊社では昨年末よりスクラムによるアジャイル開発に力を入れていたが今回は明確な期日が決められ、スケジュールが組まれたウォーターフォール・・・
力を入れていたアジャイル開発とはなにか、なぜアジャイル開発が良いと思っていたのか。そこでRobert C. Martin著「クリーンアジャイル基本に立ち戻れ(邦題)」を輪読し、うまく行ったウォーターフォールにあったアジャイル要素を見つけた。
このセッションでは弊社のウォーターフォールの事例からクリーンアジャイルで説明されているプラクティスの何が効いたのか紹介します。
「ブラウザでURLを入力してwebページが表示されるまでの仕組みを説明してください」
こんな質問をされたら、あなただったらどのように答えますか?
webアプリケーションを開発する上で、多くの技術的要素を理解していることが求められますが、
正直なところ現時点では上記の質問に対してうまく説明できるかは不安です。
この状況を踏まえ、普段何気なく利用しているブラウザの向こう側の仕組みについて、
自分なりに色々と調べてみて、当日の登壇では時間の許す限りその調査結果をお伝えしようと思います。
「Testing Pyramid(テスティングピラミッド)」皆さんも聞いたことがあるのではないでしょうか?
テストレベルごとにテストの量(数・実行)を上層ほど小さく下層ほど大きく(ピラミッド型に)すると良いというコンセプトです。
一方、React Testing Libraryの作者であるKent C. Dodds氏は「Testing Trophy(テスティングトロフィー)」というインテグレーションテストに最も重点をおいたテストコンセプトを提唱しています。
発表者はあるAPIサーバの開発にあたり設計時点でテスティングトロフィーを目指す決定をしました。
本発表では「なぜそれを目指したのか(選択したアーキテクチャからテストコンセプト決定まで)」「いかにそれを実現していったか(インテグレーションテストを軽量に追加する仕組みでコストに対抗する)」について紹介したいと思います。
皆さん配列つかってますか?捨てよう!!(提案)
ご存じですか、PHPはラピッドにウェブアプリをつくれます。気軽に複雑なデータ構造を作れて幸せですね。PHPには万能薬である「PHPの配列」(配列ではない)があります!
でも…便利で愛くるしい連想配列は使っていくうちにつらい気分になっていきます。
なぜか?それはコードを駆け巡る「データ」が全く信用出来ないからです。
愛すべきPHPの配列…そんなものを捨てるなんてとんでもない?いや、捨てよう!(stdClassも)
Webサービスは生き物。
機能追加によって常に成長し、変化しています。
そんな日々の中で、機能追加する際のデータベースに対する変更はつきものです。
しかし何気ないデータベースの変更が障害の元になったり、機能追加の障壁になっていたりしませんか?
そんな不安、心配を持っている皆様に明日からできるテーブル設計についてお話します。
同じPHPでも、単一ファイルでWebページを表示するのとフレームワークを使うのとでは書き方が大きく変わります。
みなさんは不思議に思ったことはないでしょうか?
フレームワークが動く仕組みを理解すれば適切な実装方法を判断したり、デバッグの際に役に立つでしょう。
本トークでは以下に示すフレームワークを取り上げ、index.phpを起点にフレームワークが動く仕組みを説明します。
皆さんは普段コンテナをどのように利用されていますか?
最近AWS App RunnerがPHPマネージドランタイムをサポートするなど、コンテナを手軽に利用する仕組みがますます充実してきています。
本トークでは、PHP開発でコンテナのマネージドサービスを使うメリットやPHPならではの課題についてお話しします。
Laravelは、PHPの中で最も利用者数が多い一方で賛否両論のあるフレームワークでもあります。中核機能であるEloquentもまた疑問を投げかけられることの多い対象です。
・Eloquentは果たして使うべきなのか?
・Laravelの何が便利なのか解らない。
私も最初そう感じつつ、数多くの開発を経てLaravelにおける驚くような生産性を手に入れることができました。使うべき機能、そうでない機能、実装のベストプラクティス、本番運用を含むコンテナ構築、これら「Laravel Way」を幅広くご紹介します。
苦労しながらLaravelを使っている方に是非ともお伝えしたい内容です。