Page 1
PHPの20年とこれから
20 years of PHP and beyond
pixiv Inc.
USAMI Kenta
2023-09-15 ZORKS沖縄(非公式)PHPカンファレンス沖縄2024 前夜祭LT会
公開日:
by USAMI Kenta@tadsan
に東京都港区台場のdocomo R&D OPEN LAB ODAIBAで開催された『Learn Languages 2023』で20分枠として発表しました。
に沖縄県那覇市安里のZORKS沖縄で開催された『(非公式)PHPカンファレンス沖縄2023前夜祭LT会』で15分枠として発表しました。
2023-09-15 ZORKS沖縄(非公式)PHPカンファレンス沖縄2024 前夜祭LT会
お前誰よ
PHPってどんな言語?
とにかく毀誉褒貶が激しい言語ランタイム
W3Techs 統計
パッケージ数
PHPはどこで使えるのか
PHPは汎用プログラミング言語
PHPは汎用プログラミング言語
PHPは汎用プログラミング言語
みなさんの想像するPHPとは
<!DOCTYPE html><html><head><title>Hello, PHP!</title></head><p><?php if (date('H') < 19): ?>こんにちは<?php else: ?>こんばんは<?php endif; ?></p><p>今は<?= htmlspecialchars(date('H')) ?>時です</p>
<?php require 'bootstrap.php';$db = mysqli_connect();$stmt = mysqli_prepare($db, 'SELECT * FROM books');mysqli_stmt_execute($stmt);print '<h1>本の一覧</h1>';print '<ul>';foreach ($stmt as $s) {print '<li>'; print $s->name; print '</li>';}print '</ul>';
<?php declare(strict_types=1);namespace Foo\Http\Controller;
class BooksController extends BaseController {public function index() {$books = Books::getAll();
$this->render(compact("books"));}}
“We have things like protected properties.We have abstract methods. We have all this stuff that your computer science teacher told you you should be using.I don't care about this crap at all.”
–Rasmus Lerdorf https://en.wikiquote.org/wiki/Rasmus_Lerdorf
“PHPにはprotectedプロパティも抽象メソッドもありますよ。計算機科学の教授が「使え」と言ってるものは全部。そんなことはクソ興味ないですけど”
–Rasmus Lerdorf (tadsanによる超訳)
変数に$があってPerlっぽくて
C言語っぽい関数と-> があって
雰囲気Javaっぽいオブジェクト指向で
PHPの歴史 (LLイベント以前)
‒ PHPの今とこれからhttp://ll.jus.or.jp/2003/document/p1-php.pdf
‒ PHPの今とこれから2009 https://www.slideshare.net/hirokawa/php2009
‒ PHPの今とこれから2009 https://www.slideshare.net/hirokawa/php2009
‒ 開発中の PHP 6、UTF-16 化に失敗。開発ブランチも 5.3 系に巻き戻し
https://srad.jp/story/10/03/19/0136250/
PHPと文字列
‒ Lightweight Language Saturday プログラム
http://ll.jus.or.jp/2003/program.html
‒ PHPにおけるオブジェクト指向「的」機能の特徴http://ll.jus.or.jp/2003/document/p2-php.pdf
‒ PHPにおけるオブジェクト指向「的」機能の特徴http://ll.jus.or.jp/2003/document/p2-php.pdf
PHPのオブジェクト指向機能
PHPのオブジェクト指向機能
<?php
<?php
class Book {public function __construct(public readonly string $name,) {}
...
class Book {/*** @var string* @readonly*/private $name;/** @param string $name */public function __construct($name) {$this->name = $name;
...
PHPの歴史 (LLイベント以後)
PHPの開発体制
おそらく溝は広まりつつある
(すべての状態が隔離され、リクエストごとに初期化される)
あるので、小規模からある程度大規模なアプリケーションにもフィットする
PHPはどこでも65点がとれる言語
の存在感は健在
PHP先生の雑草のような生命力にご期待ください!
