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
30
Cake.jpのCRM 今と未来
kechiiin
0
64
半年かけてPHP5.6からPHP7.4までバージョンアップした苦労と工夫 PHPカンファレンス福岡2024
kechiiin
1
870
(弊社の)OpenSearchに潜んでいた罠
kechiiin
0
150
before/afterで見る Cake.jpのアジャイル開発
kechiiin
0
33
ランダム処理を修正し、DBの負荷を下げた話
kechiiin
0
43
レガシーからモダンへ? PHP5.6からの脱却
kechiiin
0
390
Other Decks in Programming
See All in Programming
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
190
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
330
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
2.6k
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
0
210
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
160
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
190
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
190
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
380
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
130
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
110
Creating Composable Callables in Contemporary C++
rollbear
0
210
Featured
See All Featured
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
360
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
300
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Optimizing for Happiness
mojombo
378
71k
Visualization
eitanlees
152
17k
BBQ
matthewcrist
89
10k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
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にはいいところがたくさんある!
おしまい