セッション(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
採択
2024/04/13 14:00〜
ぼこ
セッション(30分)

出来らあっ!!(という気持ち)から始めたコンテナ化と開発者体験の向上施策

st_1t Shota Ito

みなさんはローカル環境で開発を行って本番環境へデプロイするまでどのように実施していますか?
実はここでお話する取り組みは今も絶賛進行中だったりするものもあります。

出来らあっ!!という気持ちからコンテナ化を進めることになり、ローカル環境整備やデプロイフローの改善といったものへ繋がっていきました。

このトークでは、

  • レガシーな開発環境やデプロイフローを改善していった軌跡
  • ローカル環境の整備
  • コンテナ化
  • デプロイフローの改善
  • 全体を巻き込んで行動する時に心がけているマインドと振る舞い

といったことを話していこうと思います。

セッション(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
採択
2024/04/13 10:25〜
ぼこ
セッション(30分)

FigmaとPHPで作る、1ミリたりとも表示崩れしない最強の帳票印刷ソリューション

ttskch たつきち

令和になっても相変わらず紙の書類の需要は大きく、Webアプリ開発においても帳票印刷機能は多くの案件で要求されます。
しかし、これがとにかく面倒くさい。

  • 複雑なレイアウトの帳票をHTML/CSSでデザインするのが地獄
  • かといって超微細Excel方眼紙でデザインするのはもっと地獄
  • しかもPDFに変換するときに微妙に見た目が崩れてどうにもできない

帳票印刷機能を実装したことのある方には強く共感していただけると思います。

そんな面倒で難しい帳票印刷ですが、実は私は既に数年前に最強無敵のソリューションを編み出し済みです。

  • ピクセル単位で細かく帳票をデザインできる(しかも簡単に)
  • 帳票デザインの保守性が高い(修正が容易)
  • 印刷時に見た目が一切崩れない

という条件を満たせる唯一(当社調べ)の方法です。

このトークでは、この至高のソリューションを具体的に解説します!

セッション(30分)

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

ttskch たつきち

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

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

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

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

1
採択
2024/04/13 14:00〜
かま
セッション(30分)

PHPの次期バージョンはこの時期どうなっているのか、Internalsの開発体制について

youkidearitai てきめん

PHPは現在のところ、毎年何らかの新バージョンをリリースしています。
大体毎年11月末〜12月にリリースされることが多いです。

さて、PHPカンファレンス小田原の時点では4月です。
このときにはPHP Internalsはどうなっているのか、新機能はどうやって決まっているのか、
alphaとかbetaとかって何?などをお話します。

ぜひ最新のPHPのキャッチアップに繋げていきましょう。

採択
2024/04/13 10:25〜
かま
セッション(30分)

二郎系ラーメンのコールで学ぶ AST 解析

m3m0r7 めもり〜☆

アブストラクトマシマシ・シンタックス少し・ツリーマシマシ。このような呪文を見かけたことはありませんか。そう,二郎系ラーメンです。この呪文を「コール」と呼び,ラーメンの着丼前のトッピングとしてヒアリングされます。一見,二郎系ラーメンのコールは複雑そうに見えますが,ある一定の法則性があります。そしてスタッフは法則性に基づいて解釈し,ラーメンにトッピングをします。似たようなのを見たことがありますね。そう,お察しの通りプログラミング言語の構文解析器です。例えばramen(1, 2)という構文はramenという関数をコールし,1と2という引数を与えます。つまりトッピングです。このようにramenという関数の引数は 2つで…といった意味を与えるのが構文解析器です。
本トークでは,PHPで構文解析器で専らよく使われるAST解析を実装するにはどうしたらよいか,二郎系ラーメンのコールを題材として解説します。

セッション(30分)

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

m3m0r7 めもり〜☆

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

2