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
Keisuke Yamauchi
November 08, 2025
Programming
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gopherになって気づくPHPの良さ
PHPカンファレンス福岡2025にて発表したスライドです
Keisuke Yamauchi
November 08, 2025
More Decks by Keisuke Yamauchi
See All by Keisuke Yamauchi
動的型付け言語に抗うPHPStanという戦士
kechiiin
0
28
Cake.jpのCRM 今と未来
kechiiin
0
63
半年かけてPHP5.6からPHP7.4までバージョンアップした苦労と工夫 PHPカンファレンス福岡2024
kechiiin
1
860
(弊社の)OpenSearchに潜んでいた罠
kechiiin
0
150
before/afterで見る Cake.jpのアジャイル開発
kechiiin
0
32
ランダム処理を修正し、DBの負荷を下げた話
kechiiin
0
42
レガシーからモダンへ? PHP5.6からの脱却
kechiiin
0
380
Other Decks in Programming
See All in Programming
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
150
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
190
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
160
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
2
800
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
120
技術記事、 専門家としてのプログラマ、 言語化
mizchi
2
540
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
170
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
210
AI時代のUIはどこへ行く?その2!
yusukebe
21
7k
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
680
Oxlintのカスタムルールの現況
syumai
6
1.1k
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
550
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
210
How GitHub (no longer) Works
holman
316
150k
Why Our Code Smells
bkeepers
PRO
340
58k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Git: the NoSQL Database
bkeepers
PRO
432
67k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
340
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
160
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にはいいところがたくさんある!
おしまい