Symfony-complete-working-example
symfony-動作例
この章では、完全なMVCベースの* BookStoreアプリケーション*をSymfony Frameworkで作成する方法を学びます。 手順は次のとおりです。
ステップ1:プロジェクトを作成する
次のコマンドを使用して、Symfonyで「BookStore」という名前の新しいプロジェクトを作成しましょう。
ステップ2:コントローラーとルートを作成する
「src/AppBundle/Controller」ディレクトリにBooksControllerを作成します。 次のように定義されています。
BooksController.php
これでBooksControllerが作成されました。次に、アクションをレンダリングするビューを作成します。
ステップ3:ビューを作成する
「apps/Resources/views/」ディレクトリに「Books」という名前の新しいフォルダーを作成しましょう。 フォルダ内に「authorl.twig」ファイルを作成し、以下の変更を追加します。
authorl.twig
次に、BooksControllerクラスでビューをレンダリングします。 次のように定義されています。
BooksController.php
これで、基本的なBooksControllerが作成され、結果がレンダリングされます。 URL「http://localhost:8000/books/author」を使用して、ブラウザで結果を確認できます。
ステップ4:データベースの構成
「app/config/parameters.yml」ファイルでデータベースを構成します。
ファイルを開き、次の変更を追加します。
parameter.yml
これで、Doctrineはデータベース「booksdb」に接続できます。
ステップ5:データベースを作成する
次のコマンドを発行して、「booksdb」データベースを生成します。 このステップはDoctrineでデータベースをバインドするために使用されます。
コマンドを実行すると、空の「booksdb」データベースが自動的に生成されます。 画面に次の応答が表示されます。
それは次の結果を生成します-
ステップ6:情報のマッピング
「src/AppBundle/Entity」にあるEntityディレクトリ内にBookエンティティクラスを作成します。
アノテーションを使用してBookクラスを直接渡すことができます。 次のように定義されています。
Book.php
ファイルに次のコードを追加します。
ここでは、テーブル名はオプションです。
テーブル名が指定されていない場合、エンティティクラスの名前に基づいて自動的に決定されます。
ステップ7:エンティティをバインドする
Doctrineはあなたのためにシンプルなエンティティクラスを作成します。 エンティティの構築に役立ちます。
次のコマンドを発行して、エンティティを生成します。
その後、次の結果が表示され、エンティティが更新されます。
Book.php
ステップ8:検証のマッピング
エンティティを作成したら、次のコマンドを使用してマッピングを検証する必要があります。
それは次の結果を生成します-
Booksテーブルを作成していないため、エンティティは同期していません。 次のステップでSymfonyコマンドを使用してBooksテーブルを作成しましょう。
ステップ9:スキーマの作成
DoctrineはBookエンティティに必要なすべてのデータベーステーブルを自動的に作成できます。 これは、次のコマンドを使用して実行できます。
コマンドを実行すると、次の応答が表示されます。
ここで、次のコマンドを使用してスキーマを再度検証します。
それは次の結果を生成します-
ステップ10:ゲッターとセッター
「エンティティのバインド」セクションで見たように、次のコマンドはBookクラスのすべてのゲッターとセッターを生成します。
ステップ11:データベースからオブジェクトを取得する
BooksControllerで、書籍の詳細を表示するメソッドを作成します。
BooksController.php
ステップ12:ビューを作成する
表示アクションを指すビューを作成しましょう。 ビューディレクトリに移動し、ファイル「displayl.twig」を作成します。 ファイルに次の変更を追加します。
displayl.twig
ブラウザでURL「http://localhost:8000/books/display」をリクエストすることで結果を取得できます。
結果
ステップ13:ブックフォームを追加する
システムに本を追加する機能を作成しましょう。 次のように、BooksControllerに新しいページ、newActionメソッドを作成します。
ステップ14:ブックフォームのビューを作成する
新しいアクションを指すビューを作成しましょう。 ビューディレクトリに移動し、ファイル「newl.twig」を作成します。 ファイルに次の変更を追加します。
それは出力として次の画面を生成します-
ステップ15:書籍情報を収集して保存する
newActionメソッドを変更し、フォームの送信を処理するコードを含めましょう。 また、書籍情報をデータベースに保存します。
ブックがデータベースに保存されたら、ブック表示ページにリダイレクトします。
ステップ16:ブックを更新する
ブックを更新するには、アクションupdateActionを作成し、次の変更を追加します。
ここでは、2つの機能を処理しています。 リクエストにidのみが含まれる場合、データベースからそれをフェッチして、ブックフォームに表示します。 また、リクエストに完全な書籍情報が含まれている場合は、データベースの詳細を更新し、書籍表示ページにリダイレクトします。
ステップ17:オブジェクトの削除
オブジェクトを削除するには、エンティティ(doctrine)マネージャーのremove()メソッドを呼び出す必要があります。
これは、次のコードを使用して実行できます。
ここで、ブックを削除し、ブック表示ページにリダイレクトしました。
ステップ18:表示ページに追加/編集/削除機能を含める
次に、表示ビューで本体ブロックを更新し、次のようにリンクの追加/編集/削除を含めます。
それは出力として次の画面を生成します-
symfonyは、一連のPHPコンポーネント、アプリケーションフレームワーク、コミュニティ、および哲学で構成されています。 symfonyは非常に柔軟で、上級ユーザー、専門家のすべての要件を満たすことができ、PHPを使用するすべての初心者にとって理想的な選択です。