「PHP の配列は、実際には順番付けられたマップです。」
この愛おしい文章から始まるPHPの配列は、PHPerにとって切っても切れない関係です。そんな大事な配列のことを、私達はどれほど知っていますか?
配列の内部実装の話はPHP7がリリースされた頃に多く語られてきたかと思います。しかし、2015年に私はPHPを触ってもいません!
PHPでお仕事をして3年目、これを機に配列を学び、内部実装を読み解いていこうと思います。
Laravelは、PHPの中で最も利用者数が多い一方で賛否両論のあるフレームワークでもあります。中核機能であるEloquentもまた疑問を投げかけられることの多い対象です。
・Eloquentは果たして使うべきなのか?
・Laravelの何が便利なのか解らない。
私も最初そう感じつつ、数多くの開発を経てLaravelにおける驚くような生産性を手に入れることができました。使うべき機能、そうでない機能、実装のベストプラクティス、本番運用を含むコンテナ構築、これら「Laravel Way」を幅広くご紹介します。
苦労しながらLaravelを使っている方に是非ともお伝えしたい内容です。
みんさんはLinterを導入されていますか?
・実装時のコーディング規約・ネーミング規約のチェック漏れが発生し、指摘対応・再レビューに工数がかかる
・コードレビュー時にコーディング規約・ネーミング規約の確認が面倒くさい
このような悩みを持たれている方は少なくないと思います。
「PHP_CodeSniffer」を導入することでそのような悩みを解決できるかもしれません!
そこで本セッションでは、「PHP_CodeSniffer」を導入したときの「実際にやって困ったこと」「やってみて初めて分かったこと」など
体験談を交えながら話していきます。
具体的には以下のような内容について話をする予定です。
・「PHP_CodeSniffer」とはなにか?
・「PHP_CodeSniffer」を導入するに至った経緯
・「PHP_CodeSniffer」を導入してみて
列挙型がPHP8.1でリリースされて約1年が経ちました。
みなさんの現場で列挙型はうまく活用されていますか?
本トークではJava, pythonなど、他言語の列挙型の仕様と比較しながら、
PHPにおける列挙型の役割や使い方を解説します。
このトークを聴いて貴方も列挙型マスター!
列挙型を使いこなしてより楽しく、そして安全なシステム作りをしていきましょう!
皆さんは普段どのようにデバッグをしてますでしょうか?
var_dumpは勿論、echoなどを普段使うと思います。
ただ、毎回デバッグする度にブラウザで実行したり、スクリプトを実行して結果を待つのは手間です。
ブレイクポイントを貼って検証をしたり、実行前の変数の中身を素早く確認したいときがあると思います。
そこで「PsySH」の登場です!
このLTでは「PsySH」の導入から使い方を通じて、効率的なデバッグ方法について紹介します
7.xのコミュニティーによるサポートが終わり8.xが今後のPHPの中心となる中、このLTではPHP8.xで追加された機能を紹介しながらその特徴についても紹介する。このLTで紹介する新機能は「match式」、「名前付き引数」、「コンストラクタ」の3つでそれぞれの基本的な書き方を紹介する他に、7系との処理の比較を行うことで新機能を使用することのメリットと注意点などについて紹介する。このLTの目的は8.xの新機能に関する参加者の理解を深めることで8.xの使用に対する参加者のモチベーションを上げること。このLTを通し、PHPのバージョンアップに対しての参加者の意識をよりポジティブにすることでPHPの関心を高めていきたい。
みなさんはPHPからディレクトリを作ったことはありますか?
PHPには mkdir というファイルシステム関数があるため、ディレクトリを作成するのに困ることは少ないかもしれません。
しかしながら、パスの指定方法や実行タイミング、パーミッションの指定方法を正しく理解していないと、
mkdirでエラーが発生したり、思った通りのディレクトリが作成されなかったりします。
このトークでは、ラッパー関数を作成しながらmkdirだけでもどのような問題が発生する可能性があるのかをお話しします。
PHPerの皆さんが仲良しのIDE、PhpStormくん。
そんなPhpStormくんにはたくさんの機能があり、多くのショートカットキーが割り当てられています。
このLTでは、PhpStormくんの様々な機能のショートカットキーを、時間が許す限りたくさん紹介します!!
デフォルトで設定されているショートカットキーはもちろん、私自身がカスタマイズして使っているショートカットキーも紹介します。
PhpStormくんとまだお話したことがない(まだ使ったことがない)方にもいろんな機能を知っていただき、魅力をお伝えできればと思います。
PHPerKaigiで得た知見を社内に共有するために、勉強会を開催しようと意気込んでる方!
実際の会場で勉強会をしたいが、何かトラブルがおこらないか不安な方!
そんな方に、リアル会場でのイベント運用方法から機材の事、5選です!
内容は、PHP勉強会@東京や自社の社内勉強会で実践・運用している事です。
●運用
集客、タイムテーブル、参加者の満足度を上げる方法など、運用して成功、失敗した事。
●機材
プロの配信エンジニアに教えてもらった、よくおこるトラブルの対処法で、私がおこなっている事。
20分発表とLTは違う種類のマイクを使った方がいい?
実は、ハンドマイクは扱いが凄く難しい。では、扱いの簡単なマイクの種類とは何か?
発表者の持ち込みPCがスクリーンに映らないトラブルを減らす方法は?
トラブルが起こりにくいメーカーのケーブル、コネクタ、コンバーターの紹介。
PHPに存在する "魔法のような" メソッド「マジックメソッド」。
普段はあまり気にしなくても、フレームワークやライブラリのコードを読むときに、見慣れないメソッドが出てきて処理を追う手が止まってしまったことはありませんか?
一つ上のPHPerになるために、これを機にマジックメソッドについての理解を深めましょう!!
本セッションではいくつかのマジックメソッドについて、クイズ形式でその効果や利用方法を説明します。
Laravelの登場は2011年、Cake PHP、Symfony、ZendFrameworkは2005年と、PHPのフレームワークには歴史があります。
しかし、私の開発しているプロダクトは2001年にリリースされており、そんな贅沢なものは使われていませんでした。
当然設計もレガシーで
・ビューロジックとビジネスロジックが分離されていない
・処理が上から下に流れるだけ
・共通関数を大量に抱えたファイルがある
など、とうてい現代の設計についていけそうにない状態でした。
そんなレガシープロダクトを、Laravelで動くようにした実装戦略を、”載せる”をキーワードにお話したいと思います。
PHPのコードを書いたり読んだりするだけでなく、PHPに関するクイズを作ったり解いたりすることも、PHPに親しみ、詳しくなるための手段の一つです。
新卒2年目の新米PHPerである発表者が、周りの助けを借りながら、イベント向けに作問した経験をもとに、PHPに親しめた例を紹介します。
この発表では、次に示す内容を話します。
実際に作問した問題: https://tech.pepabo.com/2022/10/05/php-conference-japan-2022-quiz/
我々が普段使うCPUは長いことIntel製またはAMD製でしたが、最近ではAppleのM1/M2チップなどARM環境も身近になってきました。現時点でAWS/GCP/AzureそれぞれがARMインスタンスを提供していますし、今後もARMの採用事例は増えていくと考えられます。
ARMが注目される理由は電力あたりの計算性能が高いこと、言い換えるとコストパフォーマンスが高い点でしょう。しかし、CPU単体の性能が良いとしてもCPU上で動作するアプリケーションの最適化が不十分だとその実力は発揮できません。アプリケーションまで含めて考えないとARM環境を採用すべきか判断できないと言えるでしょう。
ところで、PHPについてはARM向けの最適化が実装されています。これは2019年頃にAWSの技術者が実装したものです。本トークでは、このARM向け最適化の中身とその背景知識を紹介します。
https://blog.cybozu.io/entry/phperkaigi2023-sponser
の記事に記載している、PHPerチャレンジ問題の解説LTとなります。
ソフトウェア開発において、負債による生産性の低下は身近に起こり得ることです。
負債はソフトウェアに直接的な影響はないため軽視されがちですが、継続開発する上で多くの場合に課題となってきます。
そんな負債に対し皆さんはどのような取り組みをしていますか?
本セッションでは、DDD導入やテスト設計の見直し、SRE活動やOASの活用など、我々が負債に対しどのように取り組んできたのか、実例と共に解説いたします。
本セッションを通じて
「負債を残さないために何をすればいいかわからない」
「他に良い方法があれば知りたい」
という方が参考にできるような時間を提供いたします。
デジタルサーカス株式会社作成のPHPerチャレンジ問題の解説をします
GMOインターネットグループ作成のPHPerチャレンジ問題の解説をします