Symfony Component Advent Calendar 2023の22日目の記事です。
2022年、2023年と2年間、1人アドベントカレンダーをやってきました。延べ49個のSymfony Componentを紹介してきました。
アドベントカレンダーの最後に、独断と偏見で選んだおすすめSymfony Componentを紹介します!
1. Symfonyといえばこれ、 "Dependency Injection"
1つめはDependency Injectionです。DIやオートワイヤリングによる自動注入を提供します。Symfony以外でも使えますが、Symfonyではほぼ何も考えずともこの恩恵を受けられます。Symfonyを使う理由の1/3くらいはこのコンポーネントにあると言えます。
そんなDependency Injection、この1年でさらに使いやすくなっており、#[Autowire]
アトリビュートでのパラメータや環境変数のDI、#[Autoconfigure]
アトリビュートなどを使った遅延機能など、進化が止まりません。ぜひ、Symfonyとともに体験して欲しいコンポーネントです。
2. 使いこなせば状態管理が超楽ちん、 "Workflow"
続いてはWorkflowです。状態を管理し、次の状態への遷移やチェックなどを行います。
実はこのコンポーネントは使ったことがなく、このアドベントカレンダーをきっかけに使うようになったコンポーネントです。このコンポーネントを使えば、『Aの状態だったら。。BとCの状態だったら。。』みたいなif文やswitch分地獄や、知らないところでの飛び級状態遷移を防ぐことができるので、おすすめです。
3. 新しいSymfonyのフロントエンド、 "Symfony UX"
3つ目はSymfony UXです。正確には、これは1つのコンポーネントではなくコンポーネント群になります。
このコンポーネントでは、JavaScriptを書かずにフロントエンドのUXを向上させることができますが、JavaScriptにPHPで作ったデータを渡しやすくなったというところも、Symfonyの新しいフロントエンドの開発体験を向上させるなと思っています。TwigComponentは特におすすめです。
なお、SymfonyはこのSymfony UXを通して、Stimulusを使うようになりました。
4. Webpackから脱出か?、 "AssetMapper"
4つ目はAssetMapperです。AssetMapperは画像やJSをロードするものです。
3つ目で挙げたSymfony UXですが、去年まではWebpack Encoreという、Webpackを使うためのコンポーネントが必須でした。ところがこの1年でAssetMapperが登場し、現在はWebPack EncoreとAssetMapperのいずれかを使えばSymfony UXが使えるようになりました。
今後のSymfonyのフロントエンドの構造が変わる可能性を秘めたコンポーネントになっています。
5. 外部サービスとの連携に、 "Webhook" & "RemoteEvent"
最後はWebhookとRemote Eventです。このコンポーネントは外部サービスと自身のサービスとのイベント(webhook)を簡単に行えるようにするコンポーネントです。
現在のWeb開発において、外部サービスを使う機会はとても増えました。その外部サービスと連携するためのWebhook開発にとても有効なコンポーネントになっています。このコンポーネントはSymfony 5.3からなのでまだ事例が少ないのですが、今後たくさんの事例や、Webhookコンポーネントの他サービスへの対応が進んでいくと思われます。
完走した完走
というわけで、2年にわたりSymfony Componentの魅力について、紹介しました。さすがに2年、12月はほぼ毎日記事を書くというのはきつかったですが、記事を書くにあたって自分も使ったことがないコンポーネントを調べたり試したりできて楽しかったです。でも来年はやらない。
このような素敵なコンポーネントの多くはSymfony以外でも使えますが、Symfonyではさらに簡単に使うことができます。Symfony Componentももちろんですが、Symfony自体もぜひ体験してもらえたらと思います!