WordPressやSymfonyのTipsを中心にアニメや日常の出来事について語ります。
メニュー

blogチュートリアル 基本(7) CRUDの自動生成

この記事は約2分42秒で読めます

Symfony2 blogチュートリアル 07 CRUDの自動生成
ゆっきー
ども、カフェブロガーの悠木です。 お気に入りのカフェはドトールコーヒーです。 14時からの限定スイーツ「シューシャポー」が大好きです。

Symfony2のブログチュートリアルの第7回目です。
今回はCRUDを作成します。

Symfony2 blogチュートリアル

日本Symfonyユーザー会さんのblogチュートリアルに沿って、進めていきたいと思います。

* リンクなしの記事はまだ書いてません。追々書きます。この記事をシェアしてくれたらモチベーションあがります!

* まだ書いてない記事は気分によって順番が前後する場合もあります。


動作環境

Mac環境

  • Mac: OS X EI Capitan 10.11.1
  • PHP: 5.6.10
  • MySQL: 5.6.13
  • Apache: 2.4.16
  • MAMP: 3.4
  • Symfony: 2.7.6

Windows環境

  • Windows: 7 Professional
  • PHP: 5.5.9
  • MySQL: 5.6.16
  • Apache: 2.4.7
  • Symfony: 2.7.6

さくらのVPS(CentOS)環境

CentOSはMacと同じコマンドで確認できました。

  • CentOS: 7.1.1503
  • PHP: 7.0.0RC7
  • MySQL: 5.6.27
  • Nginx: 1.6.3
  • Symfony: 2.7.6

CRUD(クラッド)とは?

データの作成(Create)、読み出し(Read)、更新(update)、削除(Delete)を略してCRUDと呼びます。

CRUDの生成

DoctrineコマンドでCRUDを生成します。
次のコマンドを実行してください。質問は全て空Enterでオッケーです。

--with-writeオプションを指定しない場合、または質問(Do you want to generate the “write” actions [yes]?)でnoを選択するとRead機能しか作成されません。

CRUD生成コマンドで出力されるファイル一覧

CRUD生成コマンドを実行すると次のファイルが生成されます。

  • src/App/BlogBundle/Controller/PostController.php
  • src/App/BlogBundle/Form/PostType.php
  • src/App/BlogBundle/Resources/views/Post/index.html.twig
  • src/App/BlogBundle/Resources/views/Post/new.html.twig
  • src/App/BlogBundle/Resources/views/Post/edit.html.twig
  • src/App/BlogBundle/Resources/views/Post/show.html.twig
  • src/App/BlogBundle/Tests/Controller/PostControllerTest.php

実際に表示してみましょう

ブラウザで次のアドレスを開きます。

http://localhost/blog/web/app_dev.php/post

Symfony2 ブログチュートリアル 記事一覧

記事の一覧画面が表示されます。
データは登録されてないのでまだ何も表示されていません。

記事の一覧の処理の流れ

アノテーションで指定してるルーティング設定により/post/にアクセスするとPostContorllerindexAction()が呼び出されます。

アノテーションのTemplateで何も指定しない場合はAppBlogBundle:Post:index.html.twigがデフォルト指定されます。

コントーラについて

コントローラは次のディレクトリに配置します。

src/App/BlogBundle/Controller

Symfony2のコントローラではリクエストで受け取ったデータを処理したり、データベース情報を取得したり色んなことができます。

クラス名はControllerクラスを継承し、XxxYyyControllerにしてください。クラス名はパスカルケースで書きます。
メソッド(関数)名はxxxYyyActionとキャメルケースで書きます。

テンプレート

テンプレートは次のディレクトリに配置します。

src/App/BlogBundle/Resources/views/{コントローラ名}/{テンプレート名}.html.twig

ディレクトリの命名規則について、
コントローラ名はパスカルケース、テンプレート名はスネークケースです。

例えば、PostControllerindexAction()で呼び出されるテンプレートは次になります。

src/App/BlogBundle/Resources/views/Post/index.html.twig

Twigテンプレートに関しては他の記事で紹介したいと思います。

記事を投稿してみましょう

Create a new entryをクリックして、記事投稿画面を表示します。

適当な値を入れて、Createボタンを押しましょう。

成功すると記事の詳細ページが表示されます。

データベースに登録されているか確認しましょう

MySQLに登録されているか確認してみましょう。

はい、正しく登録されてますね!
日本語を登録しても文字化けしないかも確認しておきましょう。

編集、削除も正しく動作するかチェックしておきましょう。

関連記事

  1. symfony2
  2. Symfony2のブログチュートリアル! 〜MAMP環境構築編〜
  3. symfony2
  4. Symfony2 Routing Annotation
  5. Symfony MonologでSQLクエリーを出力
  6. Symfony2 blogチュートリアル 02 Symfony ディレクトリ構造

コメントをお待ちしております

PR

カテゴリー