第3章 p.56のプロジェクト準備のコマンド例に誤植がありました。 正誤情報 をご参照ください。
本書の内容についてのご質問や誤植のご報告は、issueにてお願いします。
Gihyo Digital Publishingからは、誤植訂正済最新版を入手可能です 書籍情報ページ
- サンプルコード (ダウンロード 18.4MB)
- サンプルコードの中に、書籍内のすべてのリストと、途中で利用するCSSやテンプレートなどのアセットファイルが含まれています
- リストはこちらからも閲覧できます
- サンプルアプリケーション完成コード (ダウンロード)
- GitリポジトリURL https://github.com/hidenorigoto/symfony2-book.git (本ページのあるリポジトリと同じです)
このGitリポジトリは、本書で開発するアプリケーションのソースコードのリポジトリにもなっており、解説するリストごとにコミットを登録してあります(リストごとのコミット参照)。リストに示されたコードの記述場所がわからない場合は、コミットの差分で確認することができます。また、何らかの理由で手元のアプリケーションのコードがおかしくなってしまった場合に、該当個所のコミットをチェックアウトすることで、すぐに復元することもできます。是非お役立てください。
紙版および電子書籍初版。GDP版で修正済のものは対応更新日を記載しています。
- p.46 demoアプリケーションのルートでは、パスの先頭に
/ja/
が入ります。また、ポート番号(8000)も追加してください。(GDP20160113)
2段落目1〜2行目
(誤) | アクションメソッドのルートはクラスで定義されたルートと結合されるので、最終的には、/blog/ というURLでリクエストされた場合 |
---|---|
(正) | アクションメソッドのルートはクラスで定義されたルート、およびルート定義のプレフィックス(リスト2-3 5行目)と結合されるので、最終的には、/ja/blog/ というURLでリクエストされた場合 |
2段落目4行目
(誤) | ブラウザからhttp://127.0.0.1/blog/ にアクセスし、 |
---|---|
(正) | ブラウザからhttp://127.0.0.1:8000/ja/blog/ にアクセスし、 |
- p.50 getTemplatingService()内で使われているクラスは
TimedTwigEngine
ではなくTwigEngine
になります。TimedTwigEngineはSymfony 2.6以前で利用可能で、古いバージョンのサービスコンテナではこのクラスが使われていました。Symfony 2.7で非推奨となり、Symfony 3.0で削除されます 参照。(GDP20160113)
1段落目5〜6行目
(誤) | このメソッドを見ると、TimedTwigEngine というクラスが |
---|---|
(正) | このメソッドを見ると、TwigEngine というクラスが |
1段落目6〜7行目
(誤) | TimedTwigEngineクラスのコンストラクタに渡している引数は3つあり |
---|---|
(正) | TwigEngineクラスのコンストラクタに渡している引数は3つあり |
- p.56 プロジェクトのひな型生成時のコマンドで、
classic-symfony
の後にスペースを入れてください。(GDP20160113)
(誤) | $ symfony new classic-symfony2.7 |
---|---|
(正) | $ symfony new classic-symfony 2.7 |
(誤) | C:¥projects>php symfony.phar new classic-symfony2.7 |
---|---|
(正) | C:¥projects>php symfony.phar new classic-symfony 2.7 |
- p.119 図4-14「プロファイラのメールパネルでメール本文を確認」内のお問い合わせ種別の表記が間違っていました。(差替画像)(GDP20160113)
(誤) | ●お問い合わせ種別: 0 |
---|---|
(正) | ●お問い合わせ種別: 公演について |
- p.155 リスト6-5のindexAction()内、findAll()はfindBy()の誤りです。(GDP20160113)
(誤) | $inquiryList = $inquiryRepository->findAll([], ['id' => 'DESC']); |
---|---|
(正) | $inquiryList = $inquiryRepository->findBy([], ['id' => 'DESC']); |
-
p.156 図6-4でお問い合わせ一覧がIDの降順で表示されていないのは誤りです。(差替画像)(GDP20160113)
-
p.157脚注
doctrine:generate:entities
コマンドで作成されるバックアップファイルでは、ファイル名の先頭ではなく末尾に~
がつきます。(GDP20160113)
(誤) | 先頭に ~ が付いたファイル名 |
---|---|
(正) | 末尾に ~ が付いたファイル名 |
- p.168 3段落3-4行目(GDP20160113)
(誤) | これまで使っていたfindAll()メソッド |
---|---|
(正) | これまで使っていたfindBy()メソッド |
- p.169 1段落3-4行目(GDP20160113)
(誤) | エンティティの一覧取得に利用していたfindAll()メソッド |
---|---|
(正) | エンティティの一覧取得に利用していたfindBy()メソッド |
- p.264 本書の解説ではhautelook/alice-bundleは、バージョン0.2を利用します。Composerでインストールする際、明示的にバージョン番号を付加してください。(GDP20160113)
3段落目の下コマンド例内
(誤) | $ php composer.phar require hautelook/alice-bundle --dev |
---|---|
(正) | $ php composer.phar require hautelook/alice-bundle:0.2 --dev |
- p.285 moneyタイプの説明に誤植がありました。
(誤) | 通過用のフォーマット機能あり |
---|---|
(正) | 通貨用のフォーマット機能あり |
- 【3-0】 Symfony Installerにてインストール
- parameters.ymlをignoreしないように
- 【3-1】 parameters.ymlの編集
- 【3-2】 config.ymlの編集
- 【3-2-after】 不要なファイルの削除
- 【3-3】 コントローラの作成
- 【3-4】 ToppageControllerにindexAction()メソッドを追加
- 【3-5】 indexAction()メソッドに@Routeアノテーションでルートを指定
- 【3-6】 トップページの最初のテンプレート
- 【3-7】 テンプレートをレンダリングするように修正
- 【3-8-before】 Concertコントローラの作成
- 【3-8】 公演情報ページのコントローラ
- 【3-9】 公演情報ページのテンプレート
- 【3-10】 アクションに新着情報データを追加
- 【3-11】 トップページのテンプレートを修正
- 【3-12】 公演情報ページのアクションに公演情報配列を定義
- 【3-13】 公演情報ページのテンプレートで配列変数を参照
- 【3-14】 公演情報ページのテンプレートでforを使う
- 【3-15】 公演情報配列を修正
- 【3-16】 公演情報ページのテンプレートを修正
- 【3-17】 トップページのテンプレート
- 【4-1】 お知らせ用のテンプレート部品
- 【4-2】 トップページのテンプレートを修正
- 【4-3-before】 Blogコントローラを作成
- 【4-3】 新着ブログ記事用コントローラとアクション
- 【4-4】 新着ブログ記事テンプレート
- 【4-5】 トップページのテンプレートを修正
- 【4-5-after-webassets】 CSS/JSファイル群を追加
- 【4-6, 4-7】 レイアウトテンプレート、公演情報テンプレート
- 【4-8】 お問い合わせページ表示のアクション
- 【4-9】 フォームの簡易表示を使ったお問い合わせページのテンプレート
- 【4-10】 フォームの簡易表示部分のソース
- 【4-11】 フォーム要素を個別に表示
- 【4-12】 お問い合わせフォーム定義メソッド
- 【4-13】 indexAction()を修正
- 【4-14】 completeAction()
- 【4-15】 お問い合わせ完了画面のテンプレート
- 【4-16】 indexPostAction()にフォームの処理フローを記述
- 【4-17】 リダイレクトインターセプションを有効化
- 【4-18】 Swift Mailerの設定
- 【4-19】 メール送信にGmailを使う設定
- 【4-20】 メール送信先を上書きする設定
- 【4-21】 お問い合わせ時のメールのテンプレート
- 【4-22】 indexPostActionでメール送信処理を実装
- 【5-1】 Inquiryエンティティクラスの生成、生成されたInquiryクラス
- 【5-1-after】 マッピング定義を修正
- 【5-2】 indexPostAction()に保存処理を記述
- 【5-3】 createInquiryForm()を修正
- 【5-4】 indexPostAction()の修正
- 【5-4-after1】 doctrine:generate:entityコマンド実行後
- 【5-5】 BlogArticleエンティティのマッピング定義を修正
- 【5-6】 ブログ記事サンプルデータ追加用SQL
- 【5-7】 ブログ記事一覧をデータベースから読み込む
- 【5-8】 新着ブログ記事用のテンプレート修正
- 【6-1】 クライアントサイドバリデーションの無効化
- 【6-2】 翻訳を有効にするようにコンフィギュレーションを変更
- 【6-3】 Inquiryエンティティクラスにバリデーション定義を追加
- 【6-4-before】 管理者用画面の基本部分の作成
- 【6-4】 セキュリティコンフィギュレーション
- 【6-5】 お問い合わせ一覧のコントローラ
- 【6-6】 お問い合わせ一覧のテンプレート
- 【6-7】 管理者用画面メニューのテンプレート修正
- 【6-8】 Inquiryエンティティにプロパティとコンストラクタを追加
- 【6-8-after】 getter/setterの自動生成
- 【6-9】 Inquiryエンティティでバリデーショングループの追加
- 【6-10】 お問い合わせ編集のコントローラ
- 【6-11】 createInquiryForm()メソッド
- 【6-12】 inputAction()メソッド
- 【6-13】 inputPostAction()メソッド
- 【6-14】 お問い合わせ編集のテンプレート
- 【6-15】 お問い合わせ一覧のテンプレート修正
- 【6-16】 お問い合わせ一覧のコントローラ
- 【6-17】 findAllByKeyword()メソッドを実装
- 【6-18】 お問い合わせ検索フォームをテンプレートに追加
- 【7-pre】 ComposerでDoctrineFixtureBundleをインストール
- 【7-1】 AppKernelにてバンドルを有効化
- 【7-2】 お問い合わせフィクスチャ
- 【7-3-pre】 Composerでleague/csvをインストール
- 【7-3】 AdminInquiryListControllerを修正
- 【7-4】 お問い合わせ一覧のテンプレート修正
- 【7-5】 debug:routerコマンドのソース
- 【7-6】 未処理お問い合わせ一覧通知コマンド
- 【7-7】 InquiryRepositoryに未処理お問い合わせ一覧取得メソッドを追加
- 【7-8】 未処理通知用のテンプレート
- 【7-9】 parameters.yml.distに追加
- 【7-10】 parameters.ymlに追加
- 【7-11】 config.ymlに追加
- 【7-12】 未処理お問い合わせ通知コマンドのインタラクティブ化
- 【7-13-pre-composer】 Composerでfriendsofsymfony/rest-bundle、jms/serializer-bundleをインストール
- 【7-13】 AppKernelにてバンドルを有効化
- 【7-14-pre】 Concertエンティティをコマンドで作成
- 【7-14-pre2】 Concertエンティティのマッピング定義を修正
- 【7-14-pre3】 LoadConcertDataを追加
- 【7-14】 ConcertエンティティクラスにAPI公開の設定を記述
- 【7-15】 公演情報のシリアライズ確認用テストコマンド
- 【7-16】 公演情報APIエンドポイント用のコントローラのひな型
- 【7-17】 APIエンドポイント用ConcertControllerにgetConcertsAction()メソッドを追加してルートを定義
- 【7-18】 ConcertControllerのgetConcertsAction()メソッドを実装
- 【7-19】 FOSRestBundleの動作の設定
- 【7-20】 getConcertsAction()を修正
- 【7-21】 getConcertsAction()メソッドの@Rest\Getアノテーションを削除
- 【7-22】 FOSRestBundleの機能を利用したルーティング設定
- 【7-23-pre】 Composerでnelmio/api-doc-bundleを追加
- 【7-23-pre2】 NelmioApiDocBundleを有効化
- 【7-23】 開発用ルート設定にAPIドキュメントのルートを追加
- 【7-24】 APIドキュメントのデフォルト設定を追加
- 【7-25】 公演情報APIエンドポイントのAPIドキュメント設定
- 【7-26-pre】 Composerでnelmio/cors-bundleをインストール
- 【7-26-pre2】 NelmioCorsBundleを有効化
- 【7-26】 NelmioCorsBundleの設定
- 【7-27】 CORS動作確認画面のHTML
- 【7-28】 NelmioCorsBundleの設定を変更
- 【8-1】 InquiryCsvBuilderクラスを作成
- 【8-2】 AppExtensionクラス
- 【8-3】 services.ymlのサービス定義の例
- 【8-4】 サービスを確認するテストコマンド
- 【8-5-before】 Composerでjms/di-extra-bundleを追加
- 【8-5】 バンドルを有効化
- 【8-6】 JMSDiExtraBundleの動作の設定
- 【8-7】 InquiryCsvBuilderにサービス定義アノテーションを追加
- 【8-8】 services.ymlでサービス定義を削除
- 【8-9】 Memberエンティティクラス
- 【8-10】 MemberCollectionクラス
- 【8-11】 団員一覧の定義
- 【8-12】 AppBundleのConfigurationクラス
- 【8-13】 AppBundleのAppExtensionクラス
- 【8-14】 サービスコンテナのMemberCollectionサービス生成コード
- 【8-15】 団員一覧ページのコントローラ
- 【8-16】 団員一覧ページのテンプレート
- 【9-pre】 ComposerでPHPUnitをインストール
- 【9-1】 PHPUnitの設定を修正
- 【9-1-after】 不要なファンクショナルテストの削除
- 【9-2】 MemberCollectionのテストクラス
- 【9-3】 MemberCollectionTestにテストケースを追加
- 【9-4】 MemberCollectionTestのテストケースの完成
- 【9-5】 MemberCollectionの失敗
- Revert "【9-5】 MemberCollectionの失敗"
- 【9-6】 InquiryCsvBuilderTestクラス
- 【9-7】 InquiryCsvBuilderTestクラス
- 【9-8】 InquiryCsvBuilderTestクラスのCSVのテストを実装
- 【9-9】 InquiryクラスにsetId()メソッドを追加
- 【9-10-pre】 Composerでhautelook/alice-bundleとliip/functional-test-bundleをインストール
- 【9-10-pre2】 HautelookAliceBundleとLiipFunctionalTestBundleを有効化
- 【9-10】 test環境でのSQLiteおよびLiipFunctionalTestBundleの設定
- 【9-11】 dev環境でのバンドル向け設定
- 【9-12】 ブログ記事のフィクスチャデータ
- 【9-13】 BlogArticleLoaderクラス
- 【9-14】 ブログ記事一覧ページのアクション
- 【9-14-after】 ブログ記事一覧ページのテンプレート
- 【9-15】 ブログ記事一覧のテスト
- 【9-16】 ブログ記事一覧のテストを修正
- http://symfony.com/what-is-symfony
- http://framework.zend.com/
- http://laravel.com/
- http://cakephp.org/
- https://phalconphp.com/ − http://www.yiiframework.com/
- http://sensiolabs.com/
- http://www.php.net/ChangeLog-5.php#5.3.0
- http://symfony.com/blog/why-will-symfony-2-0-finally-use-php-5-3
- http://www.php-fig.org/
- https://getcomposer.org/
- http://pear.php.net/reference/PEAR-latest/PEAR/PEAR_Autoloader.html
- http://symfony.com/doc/current/contributing/community/releases.html#long-term-support-releases
- http://semver.org/
- http://symfony.com/doc/current/contributing/code/bc.html
- http://symfony.com/
- http://docs.symfony.gr.jp/
- https://twitter.com/symfony_japan/
- https://www.facebook.com/SymfonyJapan
- https://groups.google.com/forum/#!forum/symfony-users-ja
- クイックツアー
- ガイドブック
- ベストプラクティス
- クックブック
- コンポーネント
- リファレンス
- 貢献
- ブログチュートリアル http://docs.symfony.gr.jp/symfony2/sf2-blog-tutorial/
- Symblogチュートリアル http://symblog.ganchiku.com/
- Jobeetチュートリアル http://jobeet.symfony.gr.jp/
- Twigリファレンス http://twig.sensiolabs.org/documentation
- Doctrine ORMリファレンス http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/
- http://ja.stackoverflow.com/
- http://ja.stackoverflow.com/questions/tagged/symfony2
- XAMPP https://www.apachefriends.org/jp/index.html
- MAMP https://www.mamp.info/en/
- http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html
- http://symfony.com/doc/current/components/yaml/yaml_format.html
- http://symfony.com/doc/current/reference/configuration/framework.html#profiler
- http://twig.sensiolabs.org/
- http://twig.sensiolabs.org/documentation
- http://symfony.com/doc/current/reference/twig_reference.html
- http://symfony.com/doc/current/reference/forms/twig_reference.html
- http://symfony.com/doc/current/reference/twig_reference.html#path
- http://twig.sensiolabs.org/doc/functions/include.html
- http://symfony.com/doc/current/reference/twig_reference.html#render
- http://getbootstrap.com/getting-started/#download
- http://jquery.com/download/
- http://fortawesome.github.io/Font-Awesome/
- http://symfony.com/doc/current/reference/twig_reference.html#asset
- http://symfony.com/doc/current/reference/twig_reference.html#form
- http://www.w3.org/TR/html5/forms.html#attr-fs-action
- http://swiftmailer.org/
- https://www.gmail.com/intl/ja/mail/help/about.html
- http://twig.sensiolabs.org/doc/templates.html#template-inheritance
- http://symfony.com/doc/current/reference/configuration/swiftmailer.html
- http://www.doctrine-project.org/
- http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/php-mapping.html
- http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/yaml-mapping.html
- http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/xml-mapping.html
- http://jp2.php.net/manual/ja/class.datetimeinterface.php
- http://symfony.com/doc/current/book/doctrine.html
- http://www.doctrine-project.org/projects/orm.html
- http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html
- https://github.com/ircmaxell/password_compat
- http://symfony.com/doc/current/reference/configuration/security.html
- http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html
- http://www.doctrine-project.org/api/common/2.5/class-Doctrine.Common.Collections.ArrayCollection.html
- http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html
- http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/converters.html
- http://symfony.com/doc/current/bundles/DoctrineFixturesBundle/index.html
- http://symfony.com/doc/current/components/http_foundation/introduction.html#serving-files
- http://symfony.com/doc/current/components/console/introduction.html
- http://symfony.com/doc/current/components/console/helpers/questionhelper.html
- http://symfony.com/doc/current/bundles/FOSRestBundle/index.html
- http://jmsyst.com/bundles/JMSSerializerBundle
- http://symfony.com/doc/current/bundles/FOSRestBundle/5-automatic-route-generation_single-restful-controller.html#define-resource-actions
- https://github.com/nelmio/NelmioApiDocBundle/blob/master/Resources/doc/index.md
- https://github.com/nelmio/NelmioCorsBundle/blob/master/README.md
- http://www.w3.org/TR/cors/
- http://csv.thephpleague.com/
- http://symfony.com/doc/current/components/config/definition.html
- https://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E6%8C%87%E5%90%91%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3
- http://jmsyst.com/bundles/JMSDiExtraBundle
- http://symfony.com/doc/current/components/dependency_injection/index.html
- http://symfony.com/doc/current/components/config/index.html
- https://phpunit.de/
- https://phpunit.de/manual/current/ja/installation.html
- https://phpunit.de/manual/current/ja/organizing-tests.html#organizing-tests.xml-configuration
- https://phpunit.de/manual/current/ja/appendixes.configuration.html#appendixes.configuration.testsuites
- https://github.com/piece/stagehand-testrunner/wiki
- https://github.com/nelmio/alice
- https://github.com/fzaninotto/Faker
- https://github.com/hautelook/AliceBundle
- https://github.com/liip/LiipFunctionalTestBundle
- https://msdn.microsoft.com/ja-jp/library/ms256115(v=vs.110).aspx
- http://symfony.com/doc/current/components/dom_crawler.html
- http://symfony.com/doc/current/components/css_selector.html
- https://phpunit.de/manual/current/ja/index.html
- http://symfony.com/doc/current/book/testing.html
- http://symfony.com/doc/current/reference/forms/types.html
- http://symfony.com/doc/current/reference/constraints.html
- http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html#mapping-matrix
- http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html
- http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html
本サンプルコードのライセンスは、MITライセンスです。