Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Gopherになって気づくPHPの良さ
Search
Keisuke Yamauchi
November 08, 2025
Programming
200
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
33
Cake.jpのCRM 今と未来
kechiiin
0
70
半年かけてPHP5.6からPHP7.4までバージョンアップした苦労と工夫 PHPカンファレンス福岡2024
kechiiin
1
900
(弊社の)OpenSearchに潜んでいた罠
kechiiin
0
160
before/afterで見る Cake.jpのアジャイル開発
kechiiin
0
36
ランダム処理を修正し、DBの負荷を下げた話
kechiiin
0
52
レガシーからモダンへ? PHP5.6からの脱却
kechiiin
0
400
Other Decks in Programming
See All in Programming
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
310
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
170
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
110
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
33
14k
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
300
App Intentsのビルドプロセスを支える技術
kntkymt
0
500
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.8k
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
520
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
150
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
160
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
430
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
120
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
4
520
Making Projects Easy
brettharned
120
6.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
550
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
Ruling the World: When Life Gets Gamed
codingconduct
0
380
BBQ
matthewcrist
89
10k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.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にはいいところがたくさんある!
おしまい