1. Homesteadを用いたsymfony4環境構築手順(環境構築~Route,Controller作成まで)
環境構築
symfonyでアプリを開発する為に必要な環境を整えていく。記事を漁っていくとLaravelで使用していたHomesteadでお手軽にスタートすることが出来るとの記事を見つけた。Vagrant、Homesteadって??という方は下記の記事を参考にVirtualBox + Vagrant + Homesteadを用意する。(ComposerはHomesteadに既に入っている)
【Laravel超入門】開発環境の構築(VirtualBox + Vagrant + Homestead + Composer)
1. プロジェクト作成
Homesteadフォルダに移動しvagrant ssh
で仮想マシンへ入ったら、composerを使用してプロジェクトを作成する。
$ composer create-project symfony/website-skeleton my-project
2. Git 管理
プロジェクトを作成したらgit commitをする。
$ cd my-project $ git init $ git add . $ git commit -m "Initial commit"
3. セキュリティ脆弱性の確認
公式サイトによるとセキュリティなんちゃらを入れるらしい。説明は下記の引用を参考に。
Symfonyには、プロジェクトの依存関係に既知のセキュリティ上の脆弱性が存在するかどうかをチェックするための "Security Checker"というユーティリティが用意されています。以降、このユーティリティは、アプリケーションの依存関係をインストールまたは更新するたびに自動的に実行されます。 依存関係に脆弱性がある場合は、明確なメッセージが表示されます。
composer require sensiolabs/security-checker --dev
これでとりあえずの環境構築が完成。
動作確認
ここまで出来たらsymfonyがきちんとインストールされているか下記のコマンドで確認する。http://localhost:8000/ でWelcomeページが出ていればOK!
php bin/console server:run
hello world 作成
ここからhello worldまでの手順を纏める。DBを使用した簡易アプリはまた別途纏めることにした。 アプリ作成の入り口はRouteとControllerなので、この部分を触ってみた。 感想は、他のフレームワークと同じじゃん!?だった。
1.RouteとControllerの定義
見ての通りで"/"に対してDefaultControllerのindexメソッドが対応している。 routes.yamlに定義する以外の方法としてアノテーションを利用した方法もある。
# config/routes.yaml index: path: / controller: 'App\Controller\DefaultController::index'
2.コントローラーの作成
コントローラーはコマンドラインから作成することができ、twigというhtmlのテンプレートも同時に下記の場所に作成されるようだ。
template/default/index.html.twig
php bin/console make:controller DefaultController
routes.yamlに定義したindexメソッドを定義していく。 実際の開発ではtwigテンプレートを使用することになるだろうが、ひとまずControllerからレスポンスを返す。 ひとまずこれでhello worldが表示される。
// src/Controller/DefaultController.php namespace App\Controller; use Symfony\Component\HttpFoundation\Response; class DefaultController { public function index() { return new Response( '<html><body>hello world</body></html>' ); } }
その他コマンド集
ルーティングの確認
php bin/console debug:router