セッション(30分)

マネージドサービスとのテスタブルなPHPアプリケーションコード

seike460 清家史郎

テストコード書いてますか?
書いてる皆様、 クラウドマネージドサービスが関連するアプリケーションでもテストコードを書けてますか?

継続開発が続く程重要性が高まるテストコードですが、今回はマネージドサービスが関連する場合について考察します

マネージドサービスが関わるアプリケーションの場合、
テスタブルになるようにどの様に分割して実装すればよいのか、
CI/CDでテストする為にどのようにエミュレートするのか考慮すべき課題があります

今回はAWS Lambda上で動作するPHPサーバーレスアプリケーションを題材に
Amazon S3、Amazon DynamoDB等の代表的なマネージドサービスのテスタブルなアプリケーションコードを具体的に示しながら考察します

  • 想定する聴講者
    • テストコードに対する第一歩を学びたい方
    • マネージドサービスのテストをしていない方
2
セッション(30分)

よくわかるPHP環境構築 なぜPHPが動くのか

seike460 清家史郎

PHPは様々な技術要素を組み合わせて動いています

カスタマイズ性という観点では非常にポジティブな要素ではあるのですが、
初めてPHPを動かす為には「環境構築」という障壁が存在します

今回はサーバー上でPHPを動かす為に必要な要素を解説しながら、
yumやdnfなどのパッケージ管理ツール、configureやmakeにも触れ、
phpenvやasdfが行っている事も覗きながら、PHPの環境構築についてお話します

soファイルとは何なのか、Apache + mod_phpとphp-fpm + Nginxの仕組みの違いについても触れ、
php.iniでどのように制御しているか解説します

PHP動作の仕組みを知り、理解してPHPを動作させましょう

  • 想定する聴講者
    • なんとなくPHPの環境構築をしている方
    • configure、make、soファイルを知らない方
4
セッション(30分)

Laravelで学ぶ、ウェブアプリケーションチューニングの基本2024

hanhan1978 富所 亮

本トークでは、Laravelで作られた基本的なウェブアプリケーションを例に上げて、ウェブアプリケーションのチューニングとはどのようなことをすればよいのか?どのような原因でウェブアプリケーションが遅くなるのかを説明し、その対処法について紹介します。

本トークで話す内容

  • ウェブアプリケーションが遅いとはどういうことか?
  • パフォーマンスの計測方法と評価
  • 実際のチューニング方法
2
セッション(30分)

歴史に学ぶPHP

seike460 清家史郎

「愚者は経験に学び、賢者は歴史に学ぶ」
オットー・フォン・ビスマルクの格言です

私はPHP4から少しづつ進んできたPHPの変化を感覚として捉えていますが、
言語化出来るレベルでの理解が出来ていないと気付きました

今回はオンラインリソースを駆使することでPHPの歴史を振り返ることで、
PHP、ひいてはPHPコミュニティの選択を振り返ってみようと思います

私と一緒にPHPの歴史を振り返りながら、この日本でPHPのカンファレンスが生まれるまで成長してきたのかを学べればと思います

  • お話すること
    • PHPとその周辺技術の歴史
    • PHPの機能追加とその選択の考察
  • お話しないこと
    • 何かを解決するようなトーク
3
セッション(30分)

PHPで学ぶGitの仕組み

22kerokero22 kerokero

現場で働くうえでよく分からん&ほぼ必須な要素としてGitが存在します。
とはいえ、gitについて調べても「 commit や push みたいな基本操作は分かるけど、深いところが何も分からん……」となりがちではないでしょうか?

このトークでは、ベテランエンジニアはなぜか知っている git 知識についてお話ししようと思います。

具体的な内容

  • git init した際に構成される.gitディレクトリの中身について
  • 実際にgit addgit commitをPHPで実装してみる

対象者

  • 簡単なgitコマンドは扱える初心者(add, commitなど)
  • 複雑な操作になると不安になってしまう初心者
  • あの日破壊したブランチのことをまだ忘れられない人
4
セッション(30分)

OSSコントリビュートで開発経験を積んでいこう

samurai_se Kanon

OSSのコントリビュートは誰でも可能です。
開発経験を積みたい人や、所属組織外の人からコードレビューを受けたい!という人にとって
OSSコントリビュートは副業に比べて低いリスクで開発経験を積むことができます。

本トークでは貢献の仕方・手法をご説明したうえで、Laravelを使ったOSS/ECパッケージ「Laracom」を動かしながら、コードを一緒に読んでみようと思います。

初心者でもやっていけることをやることでオープンソースに貢献をすることで知見が得られ、
エキスパートへの道を一歩踏み出すきっかけになれば幸いです。

6
セッション(30分)

チーム開発でデプロイ頻度を上げるためのスマートな設計とタスク分割

kotomin_m ことみん

開発生産性の指標の1つに「デプロイ頻度」があります。
開発に2,3ヶ月程度かかる大きめの機能開発で、機能をまるっと作ってからリリースしようとしたら、このデプロイ頻度が落ちてしまいました。
また、プルリクエストが肥大化して、レビューが複雑になることもあり、不具合や障害が発生しやすくなっていました。

このトークではそんな大きめの機能開発でも、設計とタスク分割を工夫することで、テストコードも実装しながらデプロイ頻度を上げたチーム開発の事例を紹介します!!

話すこと

  • 細かくデプロイするための設計・タスク分割の工夫
  • タスク分割するには、インタフェースだけ先に実装してデプロイしよう
  • テストコードが先に書いてあると安心して実装できる
  • チームでデプロイ頻度を上げるために取り組んだ施策

どさんこ: どさんこワイドの奥さんお絵かきですよを現地に見に行ったことはありません

4
セッション(30分)

Gitを「ただ使う」から「理解して使う」へ~チーム開発でGitを使いこなす方法~

kotomin_m ことみん

多くのPHPerは日常的にGitを使用していると思いますが、理解して使いこなせているでしょうか?
このトークは、新卒入社したばかりのPHPerやGit初級者に向けて、チーム開発におけるGitの“使いこなし方“に焦点を当て、実践的なノウハウをお届けします!

commit&pushしているだけの「ただ使う」レベルから、わかりやすいPRを作るために適切なコマンド/オプションを選択できる「理解して使う」レベルへとステップアップし、今よりもっとチーム開発を楽しみましょう!

具体的なトーク内容

  • 具体的な実装を用いて、この修正に対してどうコミットすると良いかを解説!
  • レビューしてもらいやすいプルリクエストの書き方のポイント!
  • チーム開発でブランチはどう切ると良いか?
  • 便利なGitコマンド/オプションとその使い所!

どさんこ: 生まれも育ちも自然豊かなでっかいどうで育ちました

2
セッション(30分)

設計の考え方 - インターフェースと腐敗防止層について

okashoi おかしょい/岡田 正平

PHP を含む、クラスベースのオブジェクト指向プログラミング機能を持つ言語(あるいはそれ以外の言語でも)インターフェースを利用できます。
アプリケーションの実装上の設計を考えたことがある人は、インターフェースが使えると何が嬉しいのか?どんな場面で使えばよいのか?と思ったことがあるのではないでしょうか。

本トークでは、また設計の文脈で聞いたことがあるかもしれない「腐敗防止層」というワードとともにインターフェースの使い方、ひいては設計全般に通用する考え方をお話します。

想定聴講者

以下を満たす方が聴講することを想定します。

  • PHP のコードは一通り書ける(フレームワーク上でも可)
  • 機能追加等によって、実装上の設計を考える必要がある(考えたことがある)
  • クラスベースのオブジェクト指向プログラミングにおける「継承」等の意味はわかる
3
セッション(30分)

PDO / Eloquent / Doctrine ORM それぞれでの生 SQL の扱い方

okashoi おかしょい/岡田 正平

フレームワークに備わっているようなクエリビルダや ORM、便利ですね。

一方で「この SQL 文はクエリビルダの機能では表現できないな」「長年使われてきた秘伝の SQL 文があってな......」といったケースで生の SQL 文を使わざるを得ない、というケースがあるかもしれません。

そこで今回は以下の 3 つの手段で生 SQL を扱う方法を説明します。

  • PHP に組み込まれている PDO
  • Laravel で使われている Eloquent
  • Symfony で使われている Doctrine ORM

本トークで扱うもの

  • 各手段で生の SQL を実行し結果をオブジェクトにマッピングする方法
  • 具体的なコードやセットアップ
  • それぞれのメリット・デメリット

本トークで扱わないもの

  • 各 ORM の「王道」の使い方
  • 実アプリケーションにおける応用
1
セッション(30分)

Laravel で GraphQL サーバーを実装してみよう

GraphQL はクエリ言語を用いて、クライアントが必要とするデータを API に 過不足なく伝達できる という、 従来の REST API では実現が難しい機能 が利用できます。

GraphQL はさまざまなプログラミング言語でサポートするためのライブラリが用意されており、 PHP 用のライブラリも用意されています。

本トークでは、 GraphQL の基礎を説明したあと、 Laravel で GraphQL サーバーを実装する方法を紹介します。
Laravel の GraphQL サーバーライブラリとして、 Lighthouse を利用します。

GraphQL の基礎を学び、 API サーバーを実装してメリットを体感してみませんか?

1
セッション(30分)

Azureもなかなか良いですよ! - PHPerの為のAzure入門

kaz_29 渡辺一宏

みなさん様々な環境にPHPのアプリをデプロイしていることと思います。

PHPコミュニティでは、Azureを使った事例はあまり公開されていないように思います。
AzureにもPHPをデプロイするのに適した良いサービスがたくさんあるのですが、「Azureはどこから手をつけていいかわからない...」といった話を聞くことも多いです。

そこで、このセッションでは、AzuereでPHPを含む今時なWebアプリケーションを動かすことのできる様々な環境を比較しつつご紹介しようと思います。

想定する聴講者
PHPをAzureで利用する環境に興味がある方
Azureには興味があるが、どこから手をつけて良いかわからない方
Azure初心者〜中級者の方

1
セッション(30分)

PHPからはじめるコンピュータアーキテクチャ

tomzoh 長谷川智希

現代のコンピュータはハードウェアから私たちプログラマが書くプログラムの動作までの間が多くのレイヤーに分けられて動作しています。
レイヤーは自分より下を抽象化し、下のレイヤーを詳しく理解しなくても多くの場合プログラマはプログラムを書けます。
一方、プログラムが期待した様に動作しない時には下のレイヤーの動作の理解が問題の解決の助けになることもあります。

このトークでは私たちが愛するPHPをスタート地点にして、「CPUによる"プログラム実行"」「 PHPやJavaとC言語の根本的な違い」など、コンピュータプログラムがどの様に動作するのかを解説します。

コンピュータのレイヤー構造を理解すると、いままでは見えていなかった角度からプログラミングを楽しめるようになります。
このトークを通じて、低レイヤーが好きになったり、いろいろなレイヤーで面白いことをしたりする方が増えることを期待しています!

2
セッション(30分)

PHPでメールを取り込む 2024

tomzoh 長谷川智希

PHPでメールサーバからメールを取り込みたいと思ったことはありますか?
メールと言えばPOP3/IMAP4ですのでPOP3やIMAP4を使えば良さそうですが自分でPOP3/IMAP4を喋るのはややシンドイですね。

このトークではPHPでメールをメールを取り込むにはどうしたら良いか、そして最も広く使われているであろうメールサービスのGmailからメールを取り込む方法をお話します。

  • PHPで使えるPOP3/IMAP4のライブラリ
  • メール受信に関わる多数の落とし穴
  • IMAP4で新着メールのみを取り込む方法
  • GmailのアプリパスワードとXOAUTH2対応

インターネット黎明期から存在するインターネットメールに放たれる自由奔放なメールは素手で立ち向かうにはやや手強い。
このトークがメールと戦うみなさんの力となることを祈っています。

2
セッション(30分)

PHPとAPI Platformで作る本格的なWeb APIアプリケーション

ttskch たつきち

API Platformは、SymfonyをベースとするPHP製のオープンソースAPIフレームワークです。
Symfonyアプリケーションにアトリビュートを1行追加するだけで一瞬でREST APIを作れてしまう優れもので、
Symfonyのエコシステムにおいては既に決定版となっています。

しかし、ある程度複雑なことをしようとすると途端にフレームワークについての深い理解が求められたり、
痒いところに手が届かず強引なワークアラウンドが必要になったりするという面もあり、入門と実戦の間には大きな隔たりがあります。

このトークでは、API Platformの導入方法から基本機能の概要、さらには実践投入に向けた各種ワークアラウンドや実装テクニックを、
実際に動作するデモをお見せしながら丁寧にご紹介します。

API Platformの実戦投入、あるいはその検討の一助になれば幸いです!

1
セッション(30分)

PHP でメモリ管理から逃げないために

m3m0r7 めもり〜☆

何度も遭遇する PHP の「Allowed memory size of ...」。しかし、結局解決方法がわからず、最後には「ini_set('memory_limit', -1)」でその場を凌ぐという苦い経験をした方も多いのではないでしょうか。
PHP ではガベージコレクションもそれなりに発達しており、メモリを気にしないで書けるから良いと思っている人も少なからずいらっしゃると思います。
しかし、裏を返すと、メモリについてあまり考える機会がないとも言えます。PHP7.4 から弱参照といった機能も入り、メモリ管理に少しずつ関心が寄せられてきているのではないかなと思います。
そこで本トークでは、PHP でメモリ管理から逃げないようにするためには,PHP のメモリ管理の仕組みから,どのようにすれば省エネにメモリを使えるか、書き方のヒントまで含めてお話できればと思います。

2
セッション(30分)

いつも使っているツールこそ、「読む」「作る」でもっと仲良くなる

o0h_ きんじょうひでき

PHPのアプリケーションの開発、楽しい、色々なツールやライブラリに支えられてる、 マジ感謝・・・そんな日々です。

皆さんは普段お世話になっているライブラリ、一体どこまで「理解して」使っていますか?
アプリケーションフレームワークに、PHPUnitなどのテスティングフレームワーク、Composer、PHPStanにRectorに・・・

「普段から使っているよ!」「使い方はわかる!」という気持ちでいると、ふとした時に「何このエラー!」と悩まされたりした事はありませんか?
どうすればもっと仲良く・・・そうです、ソースを読めば良いのです!自分で作れば良いのです!

PHPを使った開発に欠かせないツールについて、「普段使っているコマンド」を起点として、実際にコードリーディングをしていく際のポイントをお伝えします。
その上で、「概要を掴んだ後に"自分で劣化版を作ってみる"」学習法を紹介します。

3
セッション(30分)

ステップバイステップで鍛える正規表現力

tadsan うさみけんた

プログラミング界の十徳ナイフ、正規表現を使いこなせていますでしょうか!
正規表現は文字列処理において多くのタスクをこなせ、テキストエディタなどPHP以外の場でも利用できる汎用性の高い道具です。

しかしながら正規表現を自信をもって使えるようになることにハードルを高く感じる初心者も多く、曖昧なまま使い続ける中級者も多い技術でもあります。

このトークでは初心者向けの正規表現入門から、中級者にも役立つテクニック、Unicodeとの関連と正規表現の罠まで含めて、基礎を固めて使いこなせるようになるヒントをお伝えします。

3
セッション(30分)

howに気をつけなさい、あなたの設計を作るから

77web 菱田裕美

PHPerの世界でもwhatやwhyが大事だ、howはなんでもいい、と言われるようになりました。
たしかにwhyやwhatはとても大事で、howは所詮howです。
しかし、howを軽視しすぎるのはおすすめできません。
「思考に気をつけなさい。それはいつか言葉になるから。言葉に気をつけなさい。それはいつか行動になるから。(後略)」というマザーテレサの名言にもある通り、howは知らず知らずのうちにあなたの設計方針に影響を与えてしまうのです。
howがどのように設計方針に影響を与えるかの実例をいくつか紹介した後、その対策についてお話しします。

6
セッション(30分)

キャッシュと向き合う、キャッシュと共に生きる

soudai1025 曽根 壮大

キャッシュはパフォーマンスを劇的に改善する効果がある反面、使うと簡単にはやめられない複雑性と中毒性があります。
その特性から キャッシュは麻薬 と言われ、安易な利用は忌避されています。

しかし、キャッシュがもたらすパフォーマンスの改善効果は無視することはできず、コンピュータの世界において有効活用されているのも事実です。
そこで今回は、キャッシュの手法と有効な場面での活用方法、逆に失敗してしまいやすい注意事項を説明しながら、実務の中でのキャッシュとの付き合い方を説明します。

話すこと

  • キャッシュが有効な例と失敗例
  • キャッシュを実装パターンと始めるときの勘所

対象者

  • アプリケーション開発などでパフォーマンスに苦労したことがある人
  • キャッシュを利用したサービスの運用で苦労をしたことがある人
  • とにかく今すぐパフォーマンス改善したい人
4