2017年11月30日Symfony 4.0がリリースされます
![画像](https://habrastorage.org/getpro/habr/post_images/7eb/eff/b70/7ebeffb70a0481291206b46fe74a8478.jpg)
4番目のバージョンにはいくつかのグローバルな変更があり、その主なものはSymfony Flexへの移行です。
symfony flexとは何ですか?
これは、 「レシピ」に基づいてシンフォニーアプリケーションを編成するための新しいアプローチです。
開発者によると、これは依存関係\バンドル\パッケージでの作業を簡素化し、より多くの自動化をもたらすはずです。
レシピを含む2つのリポジトリがあります。
レシピは、一連のコンフィギュレーターとオプションを含むmanifest.jsonを介して構成されます。
オプション
エイリアス
代替レシピ名を示すために使用されます。 たとえば、このオプションを使用しない場合、レシピは次のようにインストールされます。
composer req acme-inc/acme-log-monolog-handler
manifest.jsonに追加することにより
{ "aliases": ["acme-log", "acmelog"] }
使用できます
composer req acme-log
コンフィギュレーター
レシピのインストール中に実行される一連のタスク。
バンドル
環境を指定する機能を備えた1つ以上のバンドルを接続します。
{ "bundles": { "Symfony\\Bundle\\DebugBundle\\DebugBundle": ["dev", "test"], "Symfony\\Bundle\\MonologBundle\\MonologBundle": ["all"] } }
コンテナ
services.yamlにコンテナーパラメーター(ロケールなど)を追加します。
{ "container": { "locale": "en" } }
パッケージからコピー
パッケージからプロジェクトにフォルダーまたはファイルをコピーします。
{ "copy-from-package": { "bin/check.php": "%BIN_DIR%/check.php" } }
利用可能な定数:
%BIN_DIR%、%CONF_DIR%、%CONFIG_DIR%、%SRC_DIR %% VAR_DIR%、%PUBLIC_DIR%
レシピからコピー
レシピ自体からファイルとディレクトリをコピーする:
"copy-from-recipe": { "config/": "%CONFIG_DIR%/", "src/": "%SRC_DIR%/" }
env
.envおよび.env.distへのパラメーターの追加:
{ "env": { "APP_ENV": "dev", "APP_DEBUG": "1" } }
%generate(secret)%を使用してランダムな16ビット文字列を生成できます
gitignore
パターンを.gitignoreに追加します。
{ "gitignore": [ ".env", "/public/bundles/", "/var/", "/vendor/" ] }
インストール後の出力
レシピのインストール後に表示されるコンテンツを定義します 。post -install.txtファイルで定義する必要があり、各行はPHP_EOLによって閉じられます。
コンソールの色/スタイルがサポートされています。
symfony / framework-bundleの完全なサンプルmanifest.json:
{ "bundles": { "Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle": ["all"] }, "copy-from-recipe": { "config/": "%CONFIG_DIR%/", "public/": "%PUBLIC_DIR%/", "src/": "%SRC_DIR%/" }, "composer-scripts": { "make cache-warmup": "script", "assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd" }, "env": { "APP_ENV": "dev", "APP_DEBUG": "1", "APP_SECRET": "%generate(secret)%" }, "gitignore": [ ".env", "/public/bundles/" "/var/", "/vendor/" ] }
最初のSymfony Flexプロジェクトを構築する
執筆時点で利用可能な最新バージョン「v4.0.0-RC1」を使用します
最初にcomposerが必要です。
プロジェクトを作成しましょう:
composer create-project symfony/skeleton flex-test-project "v4.0.0-RC1"
最初は、公式のレシピのみが利用可能です。 サードパーティ製のレシピを使用するには、以下を完了する必要があります。
composer config extra.symfony.allow-contrib true
または自分で追加する
"extra": { "symfony": { "allow-contrib": "true" }
composer.jsonで
開始するには、PHPの組み込みWebサーバーを使用するか、web-server-bundleをそのレシピに追加します。
composer req web-server bin/console server:start
また、現在はmaker-bundleと呼ばれるプロファイラーとジェネレーターが必要です。
プロファイラーにはTwigが必要です。
composer req twig composer req web-profiler-bundle
また、アノテーションジェネレーターの場合、* composer.json *で最小安定性の要件を下げる必要があります。
"minimum-stability": "dev"
composer req maker composer req annotations bin/console make:controller
できた
![](https://habrastorage.org/webt/o1/9w/s3/o19ws3-setrsyzaccd5eqbfqjys.png)
https://symfony.sh/を使用して、レシピを検索できます。
次期バージョンでの主要な変更 。
Githubリポジトリ
3. *から4 *にアップグレードします。