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

PHPerならPHPを使って人助け(OSSコントリビュート)始めませんか?

koyolympus wadakatu

OSSコントリビュートはした方が良いという話はよく聞きます。
しかし、実際にどう進めれば良いのかという話は中々ないように思います。

このトークでは、私が業務中に行ったOSSコントリビュートの手順を1から解説します。
OSSコントリビュートの手順に正解はありませんが、このトークを通して「ほ〜ん、大体こんな感じなんやな〜」と思っていただければ幸いです。

対象読者

  • OSSコントリビュートって何? 美味しいの? 状態の人
  • OSSコントリビュートをどう進めれば良いか知らない人
  • PHPを使って人助けしたいなと考えている人

自分のために書くPHPも良いものですが、人助けのために書くPHPもとても良いものです。
これを機に、PHP界隈のOSSコントリビュート文化がもっと成熟して、多くのPHPerが気軽にコントリビュートできる世界になれば嬉しいです。

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

PHPをサーバレスコンテナ環境で動かしていこう! ~3大クラウドの比較を添えて~

みなさん、サーバレスで動かすPHPはお好きですか? 私は大好きです。
このコンテナを稼働させる仕組みは様々ありますが、1つのコンテナを動かして気楽にWEBアプリ開発をしたくありませんか?

そんなあなたにぴったりなのが フルマネージドでコンテナ型アプリを作成できる
・App Runner
・Cloud Run
・Container Apps
です。
これらのサービスの比較と実際にPHPアプリケーションを動かす際のポイントなどをお話します!

対象

・Dockerなどコンテナについてなんとなく聞いたことがあり、ちょっと動かしてみたい人
・サーバレスという言葉に惹かれる人

お話すること

・各社のサーバレス コンテナサービスの比較(特徴や料金体系など)

お話しないこと

・商用環境での運用の話(個人開発ベースです)
・ライブデモはありません(あくまでスライドのお話ベース)

7
LT

リモート時代の必須スキル:テキストコミュニケーションの極意

kotomin_m ことみん

リモートワークが日常となった現代、テキストコミュニケーションの重要性に気づいている人はどれほどいるでしょうか?
リモートネイティブとして、新卒から3年間の社会人経験を通じて、私が学んだテキストコミュニケーションの重要性をLTでお伝えします!!

「先輩にどう質問する?」「ビジネス側のやり取りはどう進める?」などシーンに応じて、伝わりにくい文章の例をどう改善するか解説します!
そして、絵文字「👍」や感嘆符「!」の使い方など、細かな表現まで、日々のテキストコミュニケーションで意識しているポイントを余すことなくお話しします!!

このLTが参考になる人

  • 社会人経験が浅い新卒エンジニア
  • 長文を送って「何言いたいか分からない」「もう少し短くして」と言われたことがある人
  • 日々のコミュニケーションで周りの人にもっと意識して欲しいんだよな〜と思っている人
12
LT

スロークエリをGrafanaで可視化して効率的にパフォーマンス改善!

for__3 zoe

スロークエリちゃんと改善してますか?
日頃パフォーマンスを考えて開発はしていても、実際のデータや経年でのデータ増加によって気づけば増えてるスロークエリ。
増えすぎると慢性的になりどのスロークエリから改善すればいいのか、そもそもこのクエリはどの機能、画面から使われてるのか把握することも困難になってしまいます。
これに対してGrafanaを使いスロークエリを可視化し、定期的にチームで確認しスロークエリ改善をしていった活動とその際のテクニックについてお話します。

13
レギュラートーク(40分)

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

okashoi おかしょい/岡田 正平

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

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

想定聴講者

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

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

Doctrineなら、PostgreSQLのあれもこれも安全に扱えちゃうんです!

77web 菱田裕美

ORMを使っているから、DBMSの便利な機能は使えない…と諦めていませんか?
DoctrineはDBAL(データベース抽象化レイヤー)を擁し、各DBMSに共通の使い方を提供してくれますが、それだけでなくカスタマイズ機構も備えていて、DBMS側の便利な機能を使うこともできます。
本トークではPostgreSQLの便利な機能をDoctrineORMで扱う方法を題材に、DoctrineORMのカスタマイズ手法についてご紹介します。

紹介予定の機能

  • enum
  • range
  • Row Level Security
9
レギュラートーク(15分)

MySQL8の新機能WITH句とWindow関数を使って可読性の高いSQLを書こう!

for__3 zoe

MySQL5.7のEOL対応は順調ですか?
MySQL8になって色々新しい機能があるのは知ってるけどいまいちちゃんと把握してない方、何となく機能は知ってるけど使い所がピンと来てない方向けにMySQL8の新機能WITH句とWindow関数のおさらいと便利な使い方、可読性の高いSQLの書き方について実例を出しながらお話しします。

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

PHPコミュニティ、その魅力と熱狂をあなたにも!!!

kotomin_m ことみん

「PHPコミュニティ、その魅力と熱狂をあなたにも」と題した私のトークへようこそ!
2022年から数々のPHPカンファレンスや勉強会に飛び込んで、今や参加したイベント数は両手ではとうに数えきれないほど、私はPHPコミュニティへの熱い愛に満ちています!!!
PHPにとどまらず、技術コミュニティへの情熱は、一人のPHPerとして、また一人のエンジニアとして、成長の核となっています。

「技術コミュニティとは何か?」、「なぜ私はPHPコミュニティをここまで愛するのか?」という問いに対し、私の体験と感動を通じてその答えをお届けします。

ただ参加するだけではもったいない!このトークを通じて、「PHPコミュニティ人生をどうすれば200%楽しめるか」という秘訣を余すことなく解説します!
6年ぶりのPHPカンファレンス関西2024だからこそ聞いてほしいトークです!是非、この機会をお見逃しなく!!

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

LaravelアプリケーションをEC2からECSに載せ替えてサーバ管理から解放されよう

for__3 zoe

Laravelで出来たアプリケーションの本番環境まだEC2使ってませんか?
OSのEOL対応、PHPのバージョンアップ、サーバ障害対応などEC2で管理していると保守するだけでも色々やらないといけない事が多いです。
Laravelアプリケーションをコンテナ化してECSにデプロイすることで、辛いサーバ管理から解放されましょう。
このトークでは、EC2で管理していたLaravelアプリケーションをECSに移行するために考える必要があるポイントや移行のために必要な手順、デプロイの仕組み、ECSで運用する際に便利だったツール(ecspresso)などをお話します。

想定聴講者は、EC2でLaravelアプリケーションを運用、移行検討してる方はもちろん、インフラとかよく分からないけど分かるようになりたいという方にもおすすめです。

7
LT

MySQL のインデックスの種類をおさらいしよう!

okashoi おかしょい/岡田 正平

アプリケーションのパフォーマンス改善目的で、データベースのカラムにインデックスを作成することはよくあるでしょう。
でも、インデックスにはいくつかの種類があることをご存知でしたか?

本トークでは MySQL の公式リファレンスをベースに、インデックスの種類とその使い方をおさらいしていきます。

知っているインデックスの種類が増えると、データベースのパフォーマンスをより引き出せるようになる、かもしれません。

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

Laravelの罠:Eloquentとクエリビルダの共存に学ぶ実践的失敗談

kotomin_m ことみん

このトークでは、LaravelのORMシステムであるEloquentのアクセサ・ミューテタが何か、またクエリビルダとの違いは何かについて、PHP初心者に向けてわかりやすく解説します!!
その後、Eloquentとクエリビルダを組み合わせて使用する際の注意点について、実際に起こった失敗談を紹介します。
そして、この失敗から得た教訓をもとに、同様の問題を避けるためにはどうしたら良いのかについても掘り下げます。

このトークを聞くことで、Laravelを利用しているけれどもEloquentとクエリビルダの違いが分かっていない方も、明日からその2つの違いを理解し、安全なデータベース操作ができるようになるでしょう!乞うご期待!

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

パスワードのハッシュ、ソルトってなに?

okashoi おかしょい/岡田 正平

少し前にパスワードにまつわる「ハッシュ」と「ソルト」という言葉が話題になりました。
また「平文で保存していたパスワードが流出する」といった事件もたびたび耳にします。

パスワードの扱いについては、Web アプリケーションフレームワークを使っていればあまり意識することは無いかもしれません。
実際、意識しなくてもフレームワークがよしなにしてくれます。

でも、いったい「ハッシュ」や「ソルト」とは何なのか?
上述のような事件を起こさないよう、アプリケーション開発者としてしっかり押さえておくべきポイントをお話します。

6
レギュラートーク(40分)
関西在住者

Lighthosue を使って GraphQL を学んでみよう

今や Web API の設計として広く利用されている REST API ですが、下記のような弱点が存在します。

  • API の返却値に取得対象でないデータも含まれることがある
  • 目的のデータを取得するために複数の API を呼び出さないといけないことがある
  • API のエンドポイントの数だけ実装が増える

上記の弱点を克服する手法として、 GraphQL があります。
GraphQL は従来の REST API とは異なり、クライアントが クエリ を用いてデータの取得や操作をします。

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

GraphQL に興味があるけれど触ったことがない方々に、 GraphQL を始めるきっかけとなれば幸いです。

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

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

okashoi おかしょい/岡田 正平

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

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

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

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

本トークで扱うもの

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

本トークで扱わないもの

  • 各 ORM の「王道」の使い方
  • 実アプリケーションにおける応用
4
LT
初心者向け

"config" ってなんだ?

okashoi おかしょい/岡田 正平

Web アプリケーションフレームワークを使ったプロジェクトを新規作成し、自動生成されるファイル郡の中にある config というファイルまたはディレクトリ。

いったいこいつは何なのか?
どうやら項目を自分でも追加できるようだが、一体何を追加してよくて、何を追加すべきでないのか。

本トークはそんな疑問にお答えします。

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

静的解析ツール PHPStan を活用して実装上のうっかりミスを早期発見しよう!

okashoi おかしょい/岡田 正平

不具合が確認され、丸一日かけて調査したら原因はうっかりミスによる構文エラーだった.......そんな経験ありませんか?
「そんなうっかりミスを実行する前に気づけたらいいな」そう思ったあなたにお勧めするのが静的解析です!

本トークでは PHP 静的解析ツールの一例として PHPStan を取り上げて、それが使えるとどんなことがいいのかをお話します。

本トークで話すこと

  • 静的解析と PHPStan についての概要
  • こんなうっかりミスを検出できます

本トークで話さないこと

  • PHPStan の詳細な使い方、設定
  • 型にまつわるお話
2
レギュラートーク(15分)
初心者向け

PHP の namespace と autoloading の関係を正しく理解する 〜PSR-4 を添えて〜

okashoi おかしょい/岡田 正平

フレームワークのドキュメントに従って、あるいはプロジェクトの既存のコードに従ってファイル上部に書いた「namespace」「use」といったキーワード。

この意味、正しく理解していますか?
「ディレクトリ名と対応させて書くやつ」「他の言語でいう import みたいなやつでしょ?」みたいな認識をしていませんか?

実は PHP の機能としては namespace(名前空間)とディレクトリ名、ファイル名には一切の関係はありません!

「じゃあ、なんで require とかを書かずに他のファイルに定義したクラスを使えているの?」と思ったあなたに、その仕組みと、それらを支えている存在をお教えします。

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

PHPで知る「凝集度と結合度」

22kerokero22 kerokero

コードで扱われる関数の分け方の基準として凝集度結合度というものがあります。
これらは構造化プログラミングの文脈において提唱されている概念であり、オブジェクト指向プログラミングにおける様々なデザインパターンSOLID原則を理解する上でも重要なものです。

このトークではPHPで書かれた具体例をもとに、凝集度と結合度についてお話します。

具体的な内容

  • 品質の良いコードって何?
  • 凝集度と結合度について
  • SOLIDのSである単一責任の原則(SRP)について

対象者

  • 時と場合による良いコードの具体的な根拠について知りたい人
    • 少しでも多くの判断基準を持ちたいと思ってる人
  • 凝集度と結合度っていうワードを初めて聞いた人
  • SOLIDの原則という言葉はなんとなく聞いたことがある人
9
LT
初登壇

初PL失敗談

motimuraDev 橋村将希

入社して2年経った際に初めてのPLを任されました。
それまではプロジェクトの開発のみだったり、プロジェクトに満たない作業だったりのみしか経験していなかったのですが、
初めてプロジェクトのPLをやることになりました。
自分での振り返りも含めて、その際の失敗談や学びを共有したいと思います。

2
LT
初心者向け 初登壇 関西在住者

5分でLaravelを使ってWebアプリ作成できらぁ!

koyolympus wadakatu

PHPerの皆さんなら、不意にLaravel触りたいな〜と思うことありますよね。
そんな時、どのような方法で環境構築を行いますか?

  • homebrew使って、PHP/Composer/MySQLをローカル環境にぶち込む?
  • XAMPP/MAMPをインストールする?
  • Dockerfileを自分で1から書いて、Dockerコンテナ立ち上げる?

上記どの方法でも、環境構築をすることは可能ですが、結構時間かかるはずです。
このトークでは、以下の制約を基に"5分"でLaravelを使ったWebアプリケーションを作成してみます。

制約

  • 目標は、会員登録・ログイン機能実装まで
  • ローカル環境にPHP/Composer/MySQLなし
  • PHPのコードは1行も書かない
  • 必要なものはDockerのみ

「Laravel開発を始めるのって簡単だな!」と思ってもらえるように頑張ります。

2