与えられたテキストを文法に則って解析し、別の構造へと変換するのが、構文解析器(パーサー)です
独自のPHP製パーサーを生成する、PHP-Yaccをご存知ですか?
文法を定義するための記法(BNF)を使い、本格的なパーサーを生み出すものです
有名どころでは、nikic/php-parserにも利用されています
本トークは、「JSONをPHPのデータに変換する」をお題に
自作パーサー開発の入門レベルの解説を行います
どんな風に作るの?どんなコードができるの?を味わいましょう
これを聞いたら、次はあなたが自作パーサーに入門する番です!
.y
ファイルを書く)プロジェクトやプロダクトのマネジメントにおいて特に難しいのはステークホルダーやチーム外でのコミュニケーションだと思います。
マネジメントにおいてこういう課題に出会ったことはないですか?
これらの課題に対して1つ1つ向き合って解決していくための考え方と進め方について話します。
話すこと
話さないこと
LaravelにはOctaneというLaravelアプリケーションを高速化するための拡張ライブラリが存在しており、
従来のPHP-FPMより大幅な性能向上を実現します。
本セッションではFrankenPHPのZTS(Zend Thread Safety)環境でのワーカープロセス管理、
octane:startコマンドの内部動作、Octane Tables/Cacheの実装制約などを紹介していきます。
またOctane導入前後でどれくらいのパフォーマンスの差が出てくるのかを検証します。
ZTS環境でのワーカー管理とOctaneの連携実装
octane:frankenphpコマンドの内部動作
Octane Tables/CacheのFrankenPHP環境での実装と制約
Octaneの有無でのパフォーマンス差異
フレームワークを作るためのフレームワークと言われ、実際にLaravelでもコアとして利用されているSymfony。
そのため、初心者向けの導入説明や上級者向けの抽象概念獲得のための解説などの知見を聞く機会が多くあります。
一方で、実用としてのSymfonyの知見を聞く機会があまりありません。
同様にPHP5.4で導入されたtrait(特性)の実用としての知見を聞く機会もあまりありません。
そこで、この登壇ではSymfony6.3および7.2において本番実証済みのtrait(特性)活用例をお話します。
このトークで得られる知見
このトークで扱わない内容
注意事項
AI 全盛の時代、開発を楽しみながらも、より広い視野を持ちたいと考えている方も多いのではないでしょうか。ディープな技術に没頭するのが好きな方がいる一方で、最近ではプロダクト開発や経営的な課題に関心を持つエンジニアも増えてきたように感じます。
とはいえ、経営層ではない一介のプログラマーが、経営課題やプロダクト戦略の本質に触れる機会はそう多くありません。実際、エンジニアリングマネージャーやテックリードといった役職に昇進して初めて、その重要性に気づくという人も少なくないでしょう。私自身も、まさにそうでした。
そこで本セッションでは、スタートアップから上場企業まで CTO を務めた経験をもとに、なぜプロダクト開発を行うのか、プログラマーは経営とどう向き合うべきかといったテーマについて、エンジニアの視点に立ってわかりやすくお話しします。
OpenAI の API は、関数呼び出し機能である「Function Calling」をサポートしており、LLM に外部関数を呼び出させることで、より柔軟で実用的なインターフェースを構築できます。近年では、単なる Q&A を超えて、ユーザーと対話しながら外部サービスの操作やデータ取得を行う AI エージェント(いわゆる Copilot 型)の実装が活発になっています。
本セッションでは、PHP を使って OpenAI の Function Calling を活用し、AI から関数を安全かつ動的に呼び出すことで、どのようにインタラクティブなアプリケーションを構築できるのかを掘り下げていきます。
車輪の再発明は楽しいもので、それが普段よく使っているツールなら尚のこと輝きます
ライブコーディング━━それもまた、楽しいですよね
という訳で、 30分一本勝負、Composerをその場で作るぞ とチャレンジします
「内側はどんな仕組みになっているの?」「あの機能はどう動いているの?」を一緒に体験しましょう
Composerの仕組みについての簡単な解説(実況)を交えつつ、ゼロから書いてきます
ただし、時間枠に収めるために、対応する機能やシチュエーションは限定するものとし、複雑なアルゴリズムの実装は割愛(他の簡素な実装で代替)します
require
コマンドによる、新規パッケージの複数追加とその依存解決。ソースの展開・配置