Symfony Flexを使用した将来のSymfony 4.0リリースおよびプロジェクト

2017年11月30日Symfony 4.0がリリースされます





画像



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://symfony.sh/を使用して、レシピを検索できます。

次期バージョンでの主要な変更

Githubリポジトリ

3. *から4 *にアップグレードします。



All Articles