レギュラートーク(15分)
初心者向け

XOAUTH2を使ってGmailからメールを取り込む

tomzoh 長谷川智希

Gmailからメールを取り込みたいと思ったことはありますか?
GmailはPOP3/IMAP4をサポートしているのでPOP3やIMAP4を使えば良さそうですがIDやパスワードは何を使えば良いでしょうか。
実はGmailはXOAUTH2という規格に対応しており、XOAUTH2を使ってWebベースの画面遷移でパスワードを取得することができます。
このトークではGmail + XOAUTH2を想定して以下の様なトピックをお話します。

  • PHPで使えるIMAP4のライブラリ
  • IMAP4で新着メールのみを取り込む方法
  • GmailのアプリパスワードとXOAUTH2対応

なかなか情報が少ないIMAPやGmailのXOAUTH2対応ですので、このトークが同じ課題に立ち向かうみなさんの力になることを祈っています。

3
採択
2024/02/11 15:50〜
$room['C']
レギュラートーク(15分)

OpenTelemetry PHPで始める!オブザーバビリティ入門

atKoga_ 古賀 敦士

みなさんはシステム障害が起きた時、どのように調査を行いますか?
根拠となるデータを元に仮説を立てて検証するというのがセオリーですが、時に必要なデータが無くて行き詰まったり、経験則や自身の勘に頼ってしまいがち、という事もあると思います。

OpenTelemetry はシステムの状態を可視化するためのデータ(テレメトリーデータ)を収集するためのツールとして登場し、オブザーバビリティを高めることがやりやすくなっています。そして、OpenTelemetry PHPが最近GAされたことでPHPアプリケーションにもこの波がやってきました。

本セッションではオブザーバビリティ入門したい方向けに、以下のことをお話しします。

  • OpenTelemetryの概要
  • OpenTelemetry PHPを使ってテレメトリーデータを収集・分析する方法
レギュラートーク(15分)
初心者向け

Enumとmatch式を使おう〜取り得る値を表現してより変化に強いシステムを〜

NakMeKtt 仲見川勝人

みなさんEnum(列挙型)使ってますかー?

PHP8.1にてついにPHPにもEnumが導入されました。
今まで外部ライブラリに頼っていた機能が言語レベルでサポートされ、IDEもこれに対応し始めています。

本セッションでは、Enumがもたらす変更への強さと、PHP 8.0で追加されたmatch式のシナジーを、具体的なコード例を用いて解説します。switch文の一般的な落とし穴、例えばフォールスルーの誤りや条件追加の漏れなどが、これらの新機能によりどのように解決されるのかを見ていきます。

Enumとmatch式を利用して変化に強いシステムを作っていきましょう!

想定視聴者

  • Enumに聞き覚えがない方や、その使い方に不安がある方
  • 条件分岐で頻繁にif文やswitch文を使っている方
  • switch文のフォールスルーでつまずいた経験がある方
  • 条件の追加忘れで困ったことがある方
8
採択
2024/02/11 15:10〜
$room['B']
レギュラートーク(15分)

nullsafe演算子を使おう〜if文地獄からの開放〜

NakMeKtt 仲見川勝人

PHP8.0にて導入されたnullsafe演算子(null安全演算子)。
メソッドチェーンしたいけどnullableだからnullチェックしないといけない、そんなときに大活躍するのがこのnullsafe演算子です。

ご存じの方も多いかも知れませんが、改めてその有用性や使い方を「今まではこう書いていた」という事例であるif文での書き方やnullObjectパターンを添えてご紹介したいと思います。

nullsafe演算子を使いこなして、より効率的なコードを書く第一歩を踏み出しましょう。

想定視聴者

  • nullsafe演算子聞き覚えがないな、という方
  • 聞いたことはあるけどいまいち使い道がわからないな、という方
  • nullチェックで苦労した方
  • 最近PHP8.xに触れて新しい書き方をキャッチアップ中な方
レギュラートーク(15分)

Gatekeeperの概要とmacOS用ソフトウェアの署名および公証手順

matsuo_atsushi 松尾篤

macOSのGatekeeperは、悪意のあるソフトウェアのダウンロードやインストールからユーザーを守るためのセキュリティテクノロジーです。macOSで開発しているとGatekeeperを意識する機会はあるものの、実際にソフトウェアを提出して公証(ノータリゼーション)を受ける手順まで経験したことのあるPHPerは少ないのではないでしょうか。このトークでは、Gatekeeperの概要や歴史、そしてPHP以外の言語を用いて作成したコマンドラインツールを実際に署名して公証を受ける手順について解説します。

1
採択
2024/02/11 15:30〜
$room['A']
レギュラートーク(15分)

PHPで生成AIのAPIをやってみた

ixcy 有本雅哉

ChatGPTの人気で、話題沸騰の生成AI。
Pythonではなく、PHPでOpenAIのAPIをつかう方法をやってみました。

Pythonが一般的に使用される中、PHPを活用してAI技術を取り入れる方法を実際のコード例を説明します。

  • OpenAIのAPIにアクセスするための基本的な手順の説明
  • APIキーの管理とセキュリティについてのベストプラクティス
  • PHPを使用して、生成AIを活用してテキスト生成を行う実際のコード例
  • 生成AIを使用することで解決できる問題やビジネスへの適用可能性について
    上記をご紹介したいと思います。
レギュラートーク(15分)

Symfony Profilerはいいゾ!

kin29ma_n 志賀彩乃

Symfonyにはデバックに便利なSymfony Profilerというものがあります!
(にわかですがLaravelにもLaravel Telescopeというのがあるようですね、symfony/var-dumperが使われているんですね)

Symfony Profilerが超便利なので、個人的推しポイントを共有します!

4
レギュラートーク(15分)
初心者向け

PHPで始めるOSS活動 ~ 初めてのComposerパッケージ公開~

seike460 清家史郎

OSS活動は自分のためにも他の人のためにも非常に尊い行為です。
このトークでは、PHPを使用して初めてのComposerパッケージを公開する手順を解説します。

PHPerとしてOSSに貢献することはスキルアップとコミュニティへの貢献の両方を果たします。
パッケージの作成からテスト、文書化、そしてPackagistに登録するまでのステップを詳しく説明します。
またOSSプロジェクトでのコラボレーションの重要性と、オープンソースコミュニティへの貢献がいかにして個人の成長に繋がるかについてもお話します。

このトークを通じて、参加者は自身のPHPプロジェクトを公開し、OSSコミュニティに貢献を後押し出来れば幸いです。

  • お話すること
    • Packagistに公開するまでの手順
    • 考慮すべきこと
    • OSS活動の意義
    • OSSへのコントリビュートについて
10
レギュラートーク(15分)

Laravelの認証機能をカスタマイズしてワンタイムトークン認証を実装したときの試行錯誤

KizuMiyagi BABY JOB ミヤギ

私が開発を担当しているサービスでは Laravel をフレームワークとして採用しています。
Laravel が提供している認証機構は、通常ほとんどのニーズを満たせるほど充実しています。
しかし、現場では「独自の認証方法を追加したい!」というニーズが発生することも多々あると思います。

私はつい最近、そのようなニーズに合わせて Laravel の認証機能を探求し、独自の UserProvider を作成しました。
認証機能を探求して分かったことやカスタマイズのプロセス、全体を通しての気づきについて共有したいと思います。

7
採択
2024/02/11 10:30〜
$room['A']
レギュラートーク(15分)

オープニング

PHPカンファレンス関西2024実行委員会

オープニング

レギュラートーク(15分)

PHPでNotionのデータベースにCSVをインポートするフォームを作ってみる

ttskch たつきち

NotionにはデータベースにCSVでレコードを一括投入するための 「CSV取り込み」 という機能が標準で搭載されています。
が、少なくとも2023年11月現在においては正直だいぶ貧弱な機能で、本当に最低限のことしかできません。
(例えば、インポートできるプロパティの種類が限られている、ページ本文はインポートできない、「名前」カラムの値が重複している行があると正常にインポートできない、など)

そこで最近、必要に迫られてPHPでNotionのデータベースにCSVをおインポートするフォームを自作しました。
このトークでは、このフォームの具体的な実装手順を、デモを交えつつサクッと解説します。

2
レギュラートーク(15分)

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

ttskch たつきち

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

このトークでは、API Platformの導入方法から、State Provider・カスタムコントローラ・State Processorといった重要な基本機能の概要までを、
実際に動作するデモをお見せしながら丁寧にご紹介します。

皆さんにAPI Platformの概要を知っていただき、少しでも興味を持っていただければ幸いです!

4
採択
2024/02/11 14:15〜
$room['B']
レギュラートーク(15分)

PHP8.2にバージョンアップしたら文字化けが発生して道頓堀に飛び込みたくなった話

藤掛治

皆さんはリリース後に文字化けが発生して、道頓堀に飛び込みたくなったことはありますか?
私はあります(※)。

PHP8.2の下位互換性のない修正の1つにmb_detect_encodingの文字コード検出の仕様変更があります。

私が担当しているメール共有サービスのメールディーラーでバージョンアップ後に、一部の受信メールが文字化けをしました。

受信したメールのエンコード時にmb_detect_encodingを使っていたからです。

下位互換性がないため文字化けを回避することができず、結果的にメールヘッダに文字コードの指定がないRFCに準拠していないメールまで対応しました。

メールディーラーの保守運用・顧客対応チームのリーダである私が顧客対応で泣きをみたことを中心にお話いたします。

私と同様に顧客対応されているエンジニアの方々の参考になれば幸いです。

※実際には飛び込んでいません

レギュラートーク(15分)

「学ぶ」「知る」「気付く」の違いを理解して、力強い成長を手に入れる

o0h_ きんじょうひでき

このトークを通じて、業務等における成長の加速のヒントを提供します。

私はお仕事として「マネジメント」を任された場面がありました。
その一環として、メンバーの成長支援や目標設定、日々の伴走も扱ったりします。
評価の場面では、「何を学んだか」「どんな変化があったか」に興味をもって聞こうとします。
・・が、うまく「学び」を得られている人と、ただ単に「経験した」との区別が進んでいない人も多いと感じました。

「学ぶ」「知る」「気付く」の間には、何があるでしょう?
どれも重要ですが、能力を引き出すのに強く関与するのは「学ぶ」だと考えています。
この違いの認識は、学習や上達の違いをもたらします。
経験を分析し、次に活かせるか?を支えるのが、学びです。

EMの立場から見た際の、「どうして(他の近接概念と比べて)特に重要なのか」「どんな人が、普段の行動を学びに結び付けられているか」をお話します。

5
レギュラートーク(15分)
初心者向け 初登壇 関西在住者

PHP5上級認定技術者がPHP8で躓いたこと

井上良太

しばらくPHP界隈から離れていたPHP5上級認定技術者資格者が、久しぶりにPHPの世界に戻ってくると、浦島太郎になっていました。
浦島太郎になって改めて学びなおしたポイントは、これからPHPを学ぼうとしている人や、他の言語からPHPを触ることになった人にもきっと活かせるはず。
PHP5の時代の苦労話も織り交ぜながらお話したいと思います。

・変わっていて驚いた言語仕様の変化
・PSRって何?
・外部ライブラリの使い方
・他の言語とごっちゃになってしまったポイント

22
採択
2024/02/11 13:00〜
$room['C']
レギュラートーク(15分)

レガシーとモダンなシステムが混在する開発環境を改善しよう

井上良太

古くからあるサービスには、機能強化とともにサブシステムが増えていきました。

最初は良いけれど、
・検証サーバーは共用だったり、個人毎だったりバラバラに存在
・共用サーバーには、交代して使用する為に待ち時間が発生
・複数の人が使うので、テストデータがぐちゃぐちゃに
・サブシステムが増える度にサーバーも増えてくる
・当然、ソース修正や管理、デプロイもややこしくなる
というような問題が、だんだん見えてきました。

では、この問題の改善にチャレンジしよう!とは言いつつ、
「今まで使い慣れたエディタやリポジトリ構成、開発の流れは変えたくないよ」という声もあります。
さて、どの様に改善していったでしょうか。

・Dockerで共用サーバーを廃止して、メンバー毎の環境を整理しましょう
・コンテナ環境でも今まで通りPhpStormで開発作業ができるようにしましょう
・ユニットテストもうまく連携しましょう

採択
2024/02/11 10:50〜
$room['C']
レギュラートーク(15分)
初心者向け 関西在住者

Laravelでミニマム開発からスタートして個人サービスを利益化するまでの経験談!

mukae9 mukae

世の中には数多くのシステムサービスがありますが、少額であっても利益化まで持っていけるサービスは本当に限られるかと思います。
そこで今回は自分がリリースしているサービスで、少しですが利益化できたサービスの技術構成やLaravelだからこそできるサーバー代節約術、どうやってユーザーを獲得したのか、どのような告知を打ったのか、その費用対効果はどうだったのかなど、「技術的な側面」と「ビジネス的な側面」両方から経験に基づいたお話をしたいと思います!

12
レギュラートーク(15分)

PHPerのための生成系AI比較 OpenAIとAmazon Bedrock

seike460 清家史郎

生成系AIの勢いは止まりません
OpenAI のGPT-4 TurboやAssistants API の衝撃により、更に生成系AIは利用が広がることだと思います
またAWS re:Invent 2023にてAmazon Bedrockのアップデートも期待されています

利用するのと利用しないのでは、差を感じずにはいられず
私達PHPerも生成系AIの知識を追う必要があることは語る必要もないと思います

今回PHPerは生成系AIとどう付き合うべきなのかを、
2つの生成系AIサービスを比較しながら考えます

生成系AIの比較を行いながら理解することで、
現状PHPerがどのように向き合っていくべきなのかを振り返るセッションになれば幸いです

  • 想定する聴講者
    • 生成系AIを利用していないPHPer
    • 生成系AIを使っているが、使いこなせていないと感じるPHPer
6
採択
2024/02/11 13:00〜
$room['B']
レギュラートーク(15分)

アプリケーションエンジニアこそ「監視」だよね!と私が考える訳

o0h_ きんじょうひでき

開発と運用が分かれていた時代、「コードを書く人」から見て「本番システムの監視」は遠い存在だったと聞きます
──「アプリ側」の自分から見て、「それって本当に勿体ないぜ」と強く感じるのです!

頑張って作ったWebアプリケーション、ユーザーに気持ちよく使ってもらいたいですよね
そのために、少しだけ視野を広げてみませんか?

ねらい

開発者としてサービスに関わる人に、少しでも「良いものを届ける」ために「監視もやるぞ!!」という想いを持ち帰ってもらう

こんな人に伝えたい

  • コードを書くの楽しい、もっと楽しみたい!人
  • (とりわけ)自社サービスに関わっている人

こんな事を話します

  • そもそも監視ってどんなこと?なんで?
  • アプリケーション開発者でも出来ることあるの?
  • 実は「アプリ側」こそ大事な存在!

関連キーワード

  • サービス運用
  • オブザーバビリティ
レギュラートーク(15分)

PHPのエラーハンドラーを深ぼる

o0h_ きんじょうひでき

set_error_handler()していますか!
フレームワークを利用して開発をしている場合、あまり馴染みが無いかも知れません。
直接的に意識したり内容を把握していないケースも多そうです。

PHPを正しく安全に使う場合、重要な機構の1つだと考えます。
エラー発生時の挙動の理解がおろそかになると、開発効率が落ちるだけでなく、セキュリティ面でも問題に繋がることすらあります。

このトークを通じて、「普段見ているエラーの画面」がどの様に作られているかを理解しましょう!

こんなことを話します

  • 入門!set_error_handler()してみよう〜使い方、書き方〜
  • 実践!色々なFWやライブラリにおけるerror handlerの例
  • 発展!PHPでエラーが起きた時、何が起きているのか? 〜php-srcを読んで理解する〜
4