書籍の目的

5.0 version
Maintained

書籍の目的

Symfony は最も成功した PHP プロジェクトの1つです。強力なフルスタックフレームワークであり、再利用可能なコンポーネントの一般的なセットでもあります。

Symfony のバージョン5系で、プロジェクトは成熟したと思っています。私は、過去5年間でやってきたことすべてがうまく一つにまとまったように感じています。新しい低レベルのコンポーネント、高レベルでの他のソフトウェアとのインテグレーションや、開発者を支援するツールにより、生産性が向上しました。開発者体験も柔軟性を犠牲にすることなく大幅に改善しました。今までよりももっとプロジェクトで Symfony を使うことがとても楽しくなります。

もしあなたが初めて Symfony を使うのならば、Symfony5 が出た今こそが、ステップバイステップでアプリケーションの開発方法を学ぶ良い時期です。この書籍で、開発者は Symfony のパワーを感じ、生産性を上げることができることを理解するでしょう。

もしあなたが既に Symfony の開発者であれば、新しい発見があるはずです。 Symfony はここ数年で劇的に進化していますし、開発者体験も大幅に改善されています。私は Symfony の開発者はまだ古い習慣から脱することができずに、新しい方法でのアプリケーション開発方法を取り組むことが難しいのではないかと感じています。それはいくつかの理由があると思います。進化のペースがとても早いのです。実際、フルタイムで実際のプロジェクトで働いているとコミュニティで何が起きているかをすべて把握する時間はないですからね。私自身でも、身を持ってすべて把握できていないことを知っています。本当に追いかけるのが大変です。

そして新しい開発方法だけではなく、 HTTP client, Mailer, Workflow, Messenger といった新しいコンポーネントも革新的な変更をもたらしています。これらの変更で、 Symfony でのアプリケーション開発の考えを変えることになります。

また、私は Web が進化してきたことに連れ、新しい書籍の必要性を感じていました。それは、 APIs, SPAs, コンテナ, 継続的デプロイ など現在もよく議論のネタになっているトピックです。

時間は貴重です。コアな概念の長い文章や説明はありません。この書籍は、もっと旅のようなものです。どこから始めたら良いか?どっちのコードを書いたら良いか?いつ?どうやって?重要なトピックの興味を持ってもらうために努力しました。そして、もっと深く Symfony を学ぶべきか判断してください。

私は、既存のドキュメントを複製はしようとしませんでした。もうそのドキュメントの質は十分高いですからね。 各ステップ/章の最後の"より深く学ぶために"のセクションでドキュメントへのリファレンスを多く追加しています。

この書籍では、フルスクラッチでのアプリケーションの作成方法を説明します。しかし、本番環境にあるようなすべてを開発するわけではありません。最終成果物は完璧なものではありません。いくつかのショートカットをします。エッジケースの対応やバリデーション、テストなどをスキップする場所もあります。しかし、モダンな Symfony のプロジェクトのほぼすべての面をカバーするようにする予定です。

この書籍を作成するに当たって、一番最初にしたことはこの書籍で扱うアプリケーションをコーディングすることでした。成果物やその開発速度を自画自賛しています。少しの努力で、機能追加をしながらコードを維持していくことができました。 既存のドキュメントや Symfony 5 があなたの邪魔をしないようにしてくれたからです。それでも、Symfony はまだ改善の余地がたくさんあると思っています(既にいくつかの改善点を自分のノートに書いています)が、開発者体験は数年前よりも大幅に改善しています。私は、このことを世界に伝えたかったのです。

この書籍はステップに分かれています。各ステップは、サブステップに分かれていますので、読む時間もあまりかからないと思います。それでも、一番大事なことは、読みながらコードを書くようにすることです。コードを書いて、動くか確かめて、デプロイして、改造してみてください。

最後ですが、大事なことがあります。もし、はまってしまったらヘルプを求めることに躊躇しないでください。エッジケースに当たってしまった可能性もありますし、自分では見つけて修正するのに困難なタイポをしこんでしまっているかもしれません。質問をぜひしてください。 SlackStack Overflow に素晴らしいコミュニティがありますので、ぜひ使ってください。

準備はいいですか?エンジョイ!


This work, including the code samples, is licensed under a Creative Commons BY-NC-SA 4.0 license.