初めに
- Drupal 10 も EC-CUBE 4 も中身は Symfony。
- Symfony は部品(=コンポーネント)を自由に組み合わせられる “レゴ” みたいな PHP フレームワーク。
- いま PHP 製プロダクトの “黒子” として存在感が急上昇中。
- 「CMS も EC も作れるなら、次は自分のサービスで使ってみたくない?」というお誘い記事です。
1. この記事を書いたきっかけ
最近、業務で Drupal(CMS)と EC-CUBE(EC パッケージ)を並行して触ることになりました。
――で、設定ファイルを開いてみたらまったく同じディレクトリ階層・ほぼ同じ書き方のコードが並んでいる……。
「あれ? これって同じフレームワーク上に立ってない?」
調べてみると どちらも Symfony の上に成り立っている と判明。
しかも Laravel, phpMyAdmin, Composer CLI までもが Symfony コンポーネントを使っていると知り、軽く衝撃を受けました。
「Symfony きてるんじゃね?」——このワクワクを、Qiita レベルの言葉に落として共有します。
難しい専門用語は極力かみ砕くので、PHP 初心者の方でも大丈夫!
2. Symfony ってそもそも何?
一言で
PHP アプリを作るための フレームワーク 兼 部品置き場。
2.1 フレームワーク編
- MVC(モデル・ビュー・コントローラ)の箱をまるっと提供
- ルーティング、テンプレート、フォーム、メール送信など “アプリに必須な機能” が最初から揃う
- LTS(長期サポート)版があるので、エンタープライズ用途でも長く安心
2.2 コンポーネント編
- 60 以上の小さなライブラリに分解されており、1 個だけ インストールしても OK
- 例:
symfony/console——CLI ツールをサクッと作れる - 例:
symfony/validator——バリデーションだけ差し込みたい時に便利
- 例:
- だから Laravel や EC-CUBE みたいな「別フレームワーク」も、足りない所を Symfony の部品で補っている
3. Drupal・EC-CUBE が採用する理由
| 観点 | つらみ | Symfony 採用でどう変わる? |
|---|---|---|
| 開発体験 | OSS なのに独自実装の沼にハマる | 部品が共通 → ドキュメント・記事が多い |
| エコシステム | プラグイン同士が競合しやすい | コーディング規約が統一され衝突しにくい |
| バージョンアップ | CMS 側で脆弱性パッチを全部背負う | Symfony の LTS を取り込むだけで最新に近づく |
要するに
“車輪の再発明” をやめて、みんなで メンテしやすい共通部品 を使おうぜ、という流れ。
4. 「Symfony きてる」と感じる 3 つのポイント
-
採用実績がめちゃ増えた
- CMS:Drupal、TYPO3
- EC:EC-CUBE
- SaaS:Shopware、OroCRM
- フレームワーク:Laravel も内部で多数利用
-
Composer install ひとコマンドで触れちゃう
-
composer create-project symfony/skeleton myapp← 10 秒で “Hello World”
-
-
PHP 8.3 時代に合わせたモダン設計
- 属性(アノテーション)の標準対応
- HTTP/2, Messenger (キュー) など “いまどき要件” も素でカバー
5. 具体例:Drupal と EC-CUBE、ここが同じ!
5.1 ルーティング定義
# routes.yaml(一部)
home:
path: /
controller: App\Controller\HomeController::index
「YAML で URL とコントローラをつなぐ」スタイルは両者そっくり。
だから片方を覚えるともう片方もすぐ読める。
5.2 サービス定義(DI コンテナ)
services:
_defaults:
autowire: true
autoconfigure: true
依存性注入(DI)コンテナも Symfony 製なので書き方は統一。
「外部 API クライアントを差し替える」みたいなカスタマイズが CMS/EC 問わず同じ手順で済む!
6. もし Symfony を触ってみたくなったら
- まずは公式チュートリアル
https://symfony.com/doc/current/index.html(英語でも読みやすい) - コンポーネントだけ試す
CLI ツールなら symfony/console を composer require してみる - 小さな REST API を作ってみる
ルーティング → コントローラ → JSON レスポンス、ここまで 30 行で動く - 本格的にやるなら Docker
symfony-cli が自動でコンテナ立ち上げまで面倒を見てくれる
Tip:
既に Drupal / EC-CUBE をいじっている人は 「設定を読む」こと自体が最高の教材。
「へぇ、このフックは Symfony Event で飛ばしてるんだ」みたいな発見が山ほどあります。
7. まとめ
• Drupal と EC-CUBE の共通点 を辿ると Symfony にたどり着く
• Symfony は フレームワーク でもあり 部品セット でもある
• OSS 界隈で「裏方としての採用」が急増 → 安定性と学習コスト削減が魅力
• CMS/EC のカスタマイズ案件が多い日本こそ、Symfony を知っておくと得する場面が多い
8. おわりに
感想:
Drupal と EC-CUBE、別々のプロジェクトなのに「設定読めばだいたい理解できる」状態は本当に快感でした。
“フレームワーク選び” で迷うとき、「その先に Symfony があるか?」 をチェックリストに入れてみてはいかがでしょう。
ここまで読んで「Symfony いいかも」と思ったら、ぜひコメントで盛り上がりましょう!
「〇〇でも使われてるよ」などの情報もお待ちしています 🙌