Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gopherになって気づくPHPの良さ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Keisuke Yamauchi
November 08, 2025
Programming
0
130
Gopherになって気づくPHPの良さ
PHPカンファレンス福岡2025にて発表したスライドです
Keisuke Yamauchi
November 08, 2025
Tweet
Share
More Decks by Keisuke Yamauchi
See All by Keisuke Yamauchi
動的型付け言語に抗うPHPStanという戦士
kechiiin
0
25
Cake.jpのCRM 今と未来
kechiiin
0
55
半年かけてPHP5.6からPHP7.4までバージョンアップした苦労と工夫 PHPカンファレンス福岡2024
kechiiin
1
810
(弊社の)OpenSearchに潜んでいた罠
kechiiin
0
130
before/afterで見る Cake.jpのアジャイル開発
kechiiin
0
25
ランダム処理を修正し、DBの負荷を下げた話
kechiiin
0
34
レガシーからモダンへ? PHP5.6からの脱却
kechiiin
0
360
Other Decks in Programming
See All in Programming
AI主導でFastAPIのWebサービスを作るときに 人間が構造化すべき境界線
okajun35
0
320
iOSアプリでフロントエンドと仲良くする
ryunakayama
0
120
2026/02/04 AIキャラクター人格の実装論 口 調の模倣から、コンテキスト制御による 『思想』と『行動』の創発へ
sr2mg4
0
620
ふん…おもしれぇ Parser。RubyKaigi 行ってやるぜ
aki_pin0
0
110
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜 / Understanding nil in Go Interface Representation and Why nil != nil
kuro_kurorrr
3
1.3k
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
310
Claude Code、ちょっとした工夫で開発体験が変わる
tigertora7571
0
180
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
220
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
250
JPUG勉強会 OSSデータベースの内部構造を理解しよう
oga5
2
220
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
190
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
240
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
210
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
360
Test your architecture with Archunit
thirion
1
2.2k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
81
Testing 201, or: Great Expectations
jmmastey
46
8.1k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
140
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7k
Transcript
Gopherになって気づく PHPの良さ 2025/11/08 PHPカンファレンス福岡2025 けちーん
自己紹介 • 山内啓輔/けちーん • 所属:株式会社メドレー • PHPとGoを行ったり来たり ◦ PHP(Laravel) 1年
◦ Go(フレームワークなし) 1年 ◦ PHP(CakePHP1.3) 2.5年 ◦ Go(フレームワークなし) 0.5年 ← 今ここ
はじめに 経験を元にした話をします そのため、純粋な言語のみの比較だけではなく、現場の環境による違いなども含 まれますのでご了承ください 基本的にはWebアプリケーションについての話です
今日話すこと • PHPのここが最高! • でもPHPって・・・
PHPのここが最高!
PHPのここが最高! • 最強フレームワーク • 配列操作が豊富 • モノリシックな構成 • なんだかんだclassが好き
最強フレームワーク
最強フレームワーク PHP Laravelを筆頭に優秀なフルスタックフレームワークが多く存在する Laravelの機能 • Routing、Artisan Console、DI Container • Eloquent、Migration、Seeding
• Blade Template、Authentication/Authorization
最強フレームワーク Go フルスタックフレームワークも存在するが、主な選択はフレームワークなし、も しくは、軽量フレームワークなイメージ Ginの機能 ・高性能なHTTPルーター、ミドルウェア ・↓↓↓ これらは含まれない ↓↓↓ ・データベース関連、DIコンテナ、認証
etc...
最強フレームワーク ここまで話したように、PHPのフレームワークには様々な機能が含まれる • 開発を最速で始められる • 開発における迷いを減らせる • 運用コストを下げられる というように非常にありがたい存在
配列操作が豊富
配列操作が豊富 PHP array_xxx()というような配列操作をする関数が非常に多くある • in_array, array_key_exists • array_push, array_pop, array_shift,
array_unshift • array_merge, array_slice, array_chunk, array_column • array_map, array_filter • sort, asort, ksort, array_multisort
配列操作が豊富 ・Go PHPでいうarray_map, array_reduce, array_diffなどはなく、自前で実装するのかラ イブラリを使うのかなど考える必要がある やはりPHPはGoと比較すると配列操作は豊富にあり、こういう操作したいなと 思ったもののほとんどは関数が用意されている
モノリシックな構成
モノリシックな構成 PHP APIとしてLaravelを使用することもあるが、Bladeを使用して画面の実装を行うこ とが多い印象 • これ1つで完結する安心感 • 全てが1箇所にある強さ • 開発体験も良い
モノリシックな構成 Go マイクロサービスなど、API実装で利用するケースが多い • APIを修正すると、それに付随して他のリポジトリも修正する必要がある • リリース対象が増える
なんだかんだclassが好き
なんだかんだclassが好き Go 構造体というものがあり、それがclassに近い レシーバを使った書き方をすることで、構造体 のメソッドを定義できる このgetAgeメソッドは別ファイルにも書ける
なんだかんだclassが好き PHP この一つにまとまってる感じが好き 秩序を感じる 適切に設計されたclassは美しい
でもPHPって・・・
でもPHPって・・・ • 動的型付け言語だし、ランタイムでしかエラーに気づけない? • パフォーマンスはGoより劣る? • 記述の面倒さ?
動的型付け言語だし、ランタイムでしか エラーに気づけない?
動的型付け言語だし、ランタイムでしかエラーに気 づけない? 我々にはPHPStanがある!
我々にはPHPStanがある! 一応簡単に説明 PHPStan は、PHPのコード品質を高めるための静的解析ツール 実行時にしか見つからなかったバグを、コードを走らせる前に発見可能。PHPの 柔軟性から生じる型の不整合リスクなどを排除し、コードの安全性を高める上で 不可欠な存在 PHP開発の守護神
我々にはPHPStanがある!
パフォーマンスはGoより劣る?
パフォーマンスはGoより劣る? 一般的にはGoの方が処理速度が速いと言われる なので、別観点から(無理やり)PHPを褒めてみる
パフォーマンスはGoより劣る? Webアプリケーションにおいて、Webサーバーの処理さえ早けりゃ良いというも のではない DBで時間がかかる、ログの書き込みに時間がかかる、ネットワークが遅い etc... ユーザーにレスポンスを返すまで、様々な要因で遅れが生じる PHPがGoより遅いってだけで、パフォーマンスが劣るなんて言っていいはずがな い! と、いうことは・・・
パフォーマンスはGoより劣る? 優秀なフレームワークを持つPHPは、開発し始めるのが早く、 成熟したエコシステムを活かせ、開発速度も速い 総合的なパフォーマンスにおいては、かなり優秀と言える なので・・・ パフォーマンスは劣らない!
記述の面倒さ?
記述の面倒さ? ・PHP 変数名には$をつける必要がある 確かに面倒である 文末に;をつける必要がある 確かに面倒である ・Go でもGoも初登場の変数に代入するときは:=としないといけないから(震え声) 例:message :=
"Hello World!"
さいごに
さいごに 今回はPHPにとって有利な側面を見てきた 実際は色々な環境やフェーズにあった選択が必要になってくる 思考停止で「Laravelバンザイ!」ではなく、何が適切なのかしっかり吟味して技 術選定しなければならない・・・ が、PHPにはいいところがたくさんある!
おしまい