Laravelで出来たアプリケーションの本番環境まだEC2使ってませんか?
OSのEOL対応、PHPのバージョンアップ、サーバ障害対応などEC2で管理していると保守するだけでも色々やらないといけない事が多いです。
Laravelアプリケーションをコンテナ化してECSにデプロイすることで、辛いサーバ管理から解放されましょう。
このトークでは、EC2で管理していたLaravelアプリケーションをECSに移行するために考える必要があるポイントや移行のために必要な手順、デプロイの仕組み、ECSで運用する際に便利だったツール(ecspresso)などをお話します。
想定聴講者は、EC2でLaravelアプリケーションを運用、移行検討してる方はもちろん、インフラとかよく分からないけど分かるようになりたいという方にもおすすめです。
アプリケーションのパフォーマンス改善目的で、データベースのカラムにインデックスを作成することはよくあるでしょう。
でも、インデックスにはいくつかの種類があることをご存知でしたか?
本トークでは MySQL の公式リファレンスをベースに、インデックスの種類とその使い方をおさらいしていきます。
知っているインデックスの種類が増えると、データベースのパフォーマンスをより引き出せるようになる、かもしれません。
このトークでは、LaravelのORMシステムであるEloquentのアクセサ・ミューテタが何か、またクエリビルダとの違いは何かについて、PHP初心者に向けてわかりやすく解説します!!
その後、Eloquentとクエリビルダを組み合わせて使用する際の注意点について、実際に起こった失敗談を紹介します。
そして、この失敗から得た教訓をもとに、同様の問題を避けるためにはどうしたら良いのかについても掘り下げます。
このトークを聞くことで、Laravelを利用しているけれどもEloquentとクエリビルダの違いが分かっていない方も、明日からその2つの違いを理解し、安全なデータベース操作ができるようになるでしょう!乞うご期待!
少し前にパスワードにまつわる「ハッシュ」と「ソルト」という言葉が話題になりました。
また「平文で保存していたパスワードが流出する」といった事件もたびたび耳にします。
パスワードの扱いについては、Web アプリケーションフレームワークを使っていればあまり意識することは無いかもしれません。
実際、意識しなくてもフレームワークがよしなにしてくれます。
でも、いったい「ハッシュ」や「ソルト」とは何なのか?
上述のような事件を起こさないよう、アプリケーション開発者としてしっかり押さえておくべきポイントをお話します。
今や Web API の設計として広く利用されている REST API ですが、下記のような弱点が存在します。
上記の弱点を克服する手法として、 GraphQL があります。
GraphQL は従来の REST API とは異なり、クライアントが クエリ を用いてデータの取得や操作をします。
本トークでは、 GraphQL の基礎を説明し、 Lighthouse を利用して GraphQL サーバーを Laravel 上で実装する方法を紹介します。
GraphQL に興味があるけれど触ったことがない方々に、 GraphQL を始めるきっかけとなれば幸いです。
フレームワークに備わっているようなクエリビルダや ORM、便利ですね。
一方で「この SQL 文はクエリビルダの機能では表現できないな」「長年使われてきた秘伝の SQL 文があってな......」といったケースで生の SQL 文を使わざるを得ない、というケースがあるかもしれません。
そこで今回は以下の 3 つの手段で生 SQL を扱う方法を説明します。
Web アプリケーションフレームワークを使ったプロジェクトを新規作成し、自動生成されるファイル郡の中にある config というファイルまたはディレクトリ。
いったいこいつは何なのか?
どうやら項目を自分でも追加できるようだが、一体何を追加してよくて、何を追加すべきでないのか。
本トークはそんな疑問にお答えします。
不具合が確認され、丸一日かけて調査したら原因はうっかりミスによる構文エラーだった.......そんな経験ありませんか?
「そんなうっかりミスを実行する前に気づけたらいいな」そう思ったあなたにお勧めするのが静的解析です!
本トークでは PHP 静的解析ツールの一例として PHPStan を取り上げて、それが使えるとどんなことがいいのかをお話します。
フレームワークのドキュメントに従って、あるいはプロジェクトの既存のコードに従ってファイル上部に書いた「namespace」「use」といったキーワード。
この意味、正しく理解していますか?
「ディレクトリ名と対応させて書くやつ」「他の言語でいう import みたいなやつでしょ?」みたいな認識をしていませんか?
実は PHP の機能としては namespace(名前空間)とディレクトリ名、ファイル名には一切の関係はありません!
「じゃあ、なんで require とかを書かずに他のファイルに定義したクラスを使えているの?」と思ったあなたに、その仕組みと、それらを支えている存在をお教えします。
コードで扱われる関数の分け方の基準として凝集度と結合度というものがあります。
これらは構造化プログラミングの文脈において提唱されている概念であり、オブジェクト指向プログラミングにおける様々なデザインパターンやSOLID原則を理解する上でも重要なものです。
このトークではPHPで書かれた具体例をもとに、凝集度と結合度についてお話します。
入社して2年経った際に初めてのPLを任されました。
それまではプロジェクトの開発のみだったり、プロジェクトに満たない作業だったりのみしか経験していなかったのですが、
初めてプロジェクトのPLをやることになりました。
自分での振り返りも含めて、その際の失敗談や学びを共有したいと思います。
PHPerの皆さんなら、不意にLaravel触りたいな〜と思うことありますよね。
そんな時、どのような方法で環境構築を行いますか?
上記どの方法でも、環境構築をすることは可能ですが、結構時間かかるはずです。
このトークでは、以下の制約を基に"5分"でLaravelを使ったWebアプリケーションを作成してみます。
制約
「Laravel開発を始めるのって簡単だな!」と思ってもらえるように頑張ります。
ISUCON(イスコン)?Iikanjini Speed Up Contest(いい感じにスピードアップ コンテスト)?なんだか難しそう……!!私はよく分からないし、分かるようになったら出ようかな?
そんなことを考えていましたが、ISUCON夏祭りというイベントに参加した勢いで、2023年11月開催のISUCON13に初参加することを決めました。
ISUCONの練習って何やるの?どうやるの?当日はどうだった?てか、PHPでもできるの?という、ISUCONについてよく知らなかった1年前のワタシに向けた、ISUCON初心者への解説LTです!
もしかして、ISUCON次回は参加してみたいかも……!!という勇気の後押しが出来たら嬉しいです!
多くのPHPerは日常的にGitを使用していると思いますが、その機能や最適な使い方を十分に理解して使いこなせているでしょうか?
このトークは、新卒入社したばかりのPHPerやGit初級者に向けて、チーム開発におけるGitの"使いこなし方"に焦点を当て、実践的なノウハウを具体例を交えながらお届けします!
初歩から応用まで、チームでの開発をスムーズに進めるためのTipsをたくさん盛り込みます!
このトークを通じて、Gitを「ただ使う」レベルから「理解して使う」レベルへとステップアップし、今よりもっとチーム開発を楽しみましょう!
Composerを使うには、 require
・ install
・ update
の3つのコマンドを理解していれば大丈夫です!
Composerをもっと便利に使うには、役立つであろうコマンドがまだまだあります!
https://getcomposer.org/doc/03-cli.md が、標準コマンドの一覧です。
remove
・self-update
・dump-autoload
search
辺りは、初見でも名前から予測がつくでしょうか。
私は、 show
(info
)・why
(depends
) why-not
(prohibits
)などは日常的に利用しています。
browse
も便利ですし、 outdated
なんかも有り難いです。
このLTで、色々なコマンドを知ってもらいます。
そして豊かなPHPライフを手に入れましょう!
PHPでメールサーバからメールを取り込みたいと思ったことはありますか?
メールと言えばPOP3/IMAP4ですのでPOP3やIMAP4を使えば良さそうですが自分でPOP3/IMAP4を喋るのはややシンドイですね。
このトークではPHPでメールをメールを取り込むにはどうしたら良いか、そして最も広く使われているであろうメールサービスのGmailからメールを取り込む方法をお話します。
インターネット黎明期から存在するインターネットメールに放たれる自由奔放なメールは素手で立ち向かうにはやや手強い。
このトークがメールと戦うみなさんの力となることを祈っています。
Gmailからメールを取り込みたいと思ったことはありますか?
GmailはPOP3/IMAP4をサポートしているのでPOP3やIMAP4を使えば良さそうですがIDやパスワードは何を使えば良いでしょうか。
実はGmailはXOAUTH2という規格に対応しており、XOAUTH2を使ってWebベースの画面遷移でパスワードを取得することができます。
このトークではGmail + XOAUTH2を想定して以下の様なトピックをお話します。
なかなか情報が少ないIMAPやGmailのXOAUTH2対応ですので、このトークが同じ課題に立ち向かうみなさんの力になることを祈っています。
みなさんはシステム障害が起きた時、どのように調査を行いますか?
根拠となるデータを元に仮説を立てて検証するというのがセオリーですが、時に必要なデータが無くて行き詰まったり、経験則や自身の勘に頼ってしまいがち、という事もあると思います。
OpenTelemetry はシステムの状態を可視化するためのデータ(テレメトリーデータ)を収集するためのツールとして登場し、オブザーバビリティを高めることがやりやすくなっています。そして、OpenTelemetry PHPが最近GAされたことでPHPアプリケーションにもこの波がやってきました。
本セッションではオブザーバビリティ入門したい方向けに、以下のことをお話しします。
みなさんEnum(列挙型)使ってますかー?
PHP8.1にてついにPHPにもEnumが導入されました。
今まで外部ライブラリに頼っていた機能が言語レベルでサポートされ、IDEもこれに対応し始めています。
本セッションでは、Enumがもたらす変更への強さと、PHP 8.0で追加されたmatch式のシナジーを、具体的なコード例を用いて解説します。switch文の一般的な落とし穴、例えばフォールスルーの誤りや条件追加の漏れなどが、これらの新機能によりどのように解決されるのかを見ていきます。
Enumとmatch式を利用して変化に強いシステムを作っていきましょう!
想定視聴者
PHPは様々な技術要素を組み合わせて動いています
カスタマイズ性という観点では非常にポジティブな要素ではあるのですが、
初めてPHPを動かす為には「環境構築」という障壁が存在します
今回はサーバー上でPHPを動かす為に必要な要素を解説しながら、
yumやdnfなどのパッケージ管理ツール、configureやmakeにも触れ、
phpenvやasdfが行っている事も覗きながら、PHPの環境構築についてお話します
soファイルとは何なのか、Apache + mod_phpとphp-fpm + Nginxの仕組みの違いについても触れ、
php.iniでどのように制御しているか解説します
PHP動作の仕組みを知り、理解してPHPを動作させましょう