ステップ11:コードをブランチ运使用する

5.2版本
保持 不明意
5.0

コードコードブランチ使用する

。

�ステークホルダーがことで大厦アドバンテージ,自信を持っデプロイすることがととなりますことが者となり。

次のステップでは,単纯化と冗长な记述避けるにgitの大师ブランチ上で全てののをが,どうやって良くするかてましょうするかてましょう。

gitのワークフローを取り入れる

〖nuplange〗あります。

ブランチを作物成

このワークフローフロー,gitブランチの作用成から始まりますます:

1
$ git branch -d会话-in-db||真的
1
$ git checkout -b会话 -  in-db

このコマンドで掌握ブランチから会话 - in-dBブランチを作用成しし。そうそうことで,コードコードとインフラストラクチャの设定をををしし

データベースにセッションを格式する

ブランチ名から推测できるかもしれません,セッションストレージをファイルシステムからデータデータ(postgreesql)に変更したいと考えいいますますいますます。

それそれを実现するするために必要な手顺は的的ものものものですですものですもの:

  1. gitブランチを作用成します。
  2. 必要に応じてs欧宝娱乐app下载地址ymfonyの设定を変更し。
  3. 必要に応じてコードの追やや编集を行。
  4. 必要があればphpの设定を変更します(PostgreSQL PHP延伸を加加したりなど)。
  5. 必要であればDockerとsy欧宝娱乐app欧宝体育应用最新版app下载下载地址mfonycloud上ののを変更します(PostgreSQLサービスサービス追加しますますますますますますますますますますますますますますますますますますますますますますますますます。
  6. ローカルでテストします。
  7. リモートでテストします。
  8. 大师ブランチブランチにマージし。
  9. 本番环境にデプロイします。
  10. ブランチを削除します。

セッションをデータベースにに保存するは,session.handler_id.をデータベースdsnを指すようよう変更します。

patch_file.
1 2 3 4 5 6 7 8 9 10
--- a / config / packages / framework.yaml+++ b / config / packages / framework.yaml@@ -7,7 +7,7 @@框架:#启用会话支持。请注意,只有在从中读取或写入时,才会启动会话。#删除或注释此部分以显式禁用会话支持。会议:-  handler_id:null+ handler_id:'%env(database_url)%'cookie_secure:auto cookie_samesite:lax

セッションをデータベースにに保存するは,会话作者:王莹,王莹,郧阳

1
$ 欧宝娱乐app下载地址symfony控制台:迁移

向上()メソッドにテーブル追加の记述をおこないます:

patch_file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
--- A /迁移/ versive00000000000000.php+++ B /迁移/ versive00000000000000.php@@ -21,6 +21,14 @@ Final Class version00000000000000扩展了抽象段落{// up()迁移是自动生成的,请修改您的需求+ $以下 - > ADDSQL('+创建表课程(+ sess_id varchar(128)不是null主键,+ sess_data bytea不是null,+ sess_lifetime整数不是null,+ sess_time整数不是null+)+');}公共功能下降(架构$架构):void

データベースのマイグレーションを行い:

1
$ 欧宝娱乐app下载地址symfony控制台教义:迁移:迁移

Webサイトサイトを阅覧してローカルでテストしてセッションでを利用してず见た目ののでのでので,全てこれまで同じようにするはずですようよう能するです。

注釈

今回はセッションストレージにデータベース再利用ししのでい​​る,ステップ3から5は必要ありませ。しかし,后述のredisを使使用する章はdockerやsy欧宝娱乐app下欧宝体育应用最新版app下载载地址mfony cloud上でサービスの加,テストやデプロイ追容易かか示します。

新闻テーブルは学说〖suppons〗しデータので,次のデータベースででを削除しないようににませを削除しようににませませ削除设定しなけれなけれなけれませませ

patch_file.
1 2 3 4 5 6 7 8 9 10 11
--- a / config / packages / doctrine.yaml+++ b / config / packages / doctrine.yaml@@ -5,6 + 5,8 @@ Doctrine:#重要提示:您必须在此处或在database_url env var中配置您的服务器版本(请参阅.env文件)#server_version:'13'++ schema_filter:〜^(?!会话)〜ORM:auto_generate_proxy_classes:true naming_strategy:doctrine.orm.naming_strialy.underscore_number_aware

新闻ブランチに変更をコミットしし

1 2
$ git添加。$ git commit -m'配置数据库会话'

ブランチをデプロイする

本番环境にデプロイするに,本番环境と同一のまたでこのブランチをテストすでしょでしょでしょでしょでしょでしょでし欧宝娱乐app下载地址ょでしょでしょでしょでしょでしょでしょでしょでしょでしょでしょでしょでしょでしょでしょでしょでしょでしょでしょprod环境で全てが正常动作することを検证すです(ローカルの网页サイトではsymfony欧宝娱乐app下载地址の开发环境环境利用ししましました。

では,gitブランチ.に基础た欧宝娱乐app欧宝体育应用最新版app下载下载地址symfonycloud环境を作物成しう:

1
$ 欧宝娱乐app下载地址symfony env:删除会话 -  in-db --no-interaction
1
$ 欧宝娱乐app下载地址symfony env:创建

このコマンドで以下の新闻环境を作物成

  • このブランチは现出的のgitブランチ(会话 - in-dB)のコードとインフラストラクチャを引き継ぎます。
  • データベースやファイル(例えばユーザーがアップロードしたファイルです)を含む全サービスのデータについて一贯したスナップショットを取得することによりB,マスタ环境(本番环境)からデータが取得されます。
  • コード,データ,インフラストラクチャをデプロイするため専専専専のががににさささささ。

。

掌握环境は掌握环境环境と非常に良く似ていますががいの差がが例えば例えば例えばのデフォルトでははれれれれれれれれれ

デプロイが完了したら,新闻ブランチをブラウザで开放ます:

1
$ 欧宝娱乐app下载地址symfony开放:遥控器

すべてのs欧宝娱乐app欧宝体育应用最新版app下载下载地址ymfonycloudコマンドは现现上游动作することに気付きたか?会话 - in-dBブランチのデプロイurlが开开ます。urlはhttps://sessions-in-db-xxx.eu.s5y.io/ととます。

新闻环境の网页サイトをテストしててくださいてでで。

掌握环境でさらにカンファレンスをを追したた合,会话 - in-dBその逆の场も同様です各环境は独立ており,隔离隔离れして,隔离されてい。

もし硕上のコードコードが更新されてい,コードとインフラストラクチャのをを解消て,gitブランチをリベースし,最新のバージョンをデプロイすることができます。

マスタ环境から会话 - in-dB环境にデータをを同することも可です:

1
$ 欧宝娱乐app下载地址symfony env:sync

デプロイ前に本番のデプロイをデバッグ

すべてのs欧宝娱乐app欧宝体育应用最新版app下载下载地址ymfonycloud环境はデフォルトで掌握/prod环境(欧宝娱乐app下载地址Symfonyのprod环境)と同じ设定を利用しています。これこれ,実际の条件アプリケーションアプリケーションテストすることが出ます。本番サーバー上でに开口とテストテスト行て感覚なりますが,リスクはますが,リスクはありが。FTP経由でデプロイしてた古き良き时钟

何何か问题がが起き时に欧宝娱乐app下载地址,symfonyの开发环境に切り替えたくなるかもしれません:

1
$ 欧宝娱乐app下载地址symfony env:调试

问题が解决した后は,本番设定に戻しておきましょましょ

1
$ 欧宝娱乐app下载地址symfony env:调试--off

警告

掌握ブランチ上では,决して开发Symfonyプロフ欧宝娱乐app下载地址ァイラを有效たりしし动作くださいたく,セキィリティ上の深刻脆弱性がくのしてしまいなりがくのします。

デプロイ前に本番のデプロイをテスト

次期バージョンの网页サイトを本番データでアクセスすること,见た见たの回帰テストからに至るまで,多重の事を确认できでき。黑火はこの仕事をやるやるで完璧なです。

Blackfireをを使ってデプロイ前にコードをテストするするをもっともっとぶためにははもっとににににするててててててててて

本番へマージする

ブランチブランチの変更内容内容に问题が无けれ,コードとインフラストラクチャをgitの主ブランチにマージしてください:

1 2
$ git checkout master $ git合并会话 -  in-db

そしてデプロイを実行します:

1
$ 欧宝娱乐app下载地址symfony部署

デプロイされると,コードコードとインフラストラクチャの変更欧宝娱乐app欧宝体育应用最新版app下载下载地址のみのみますは切切影响れませませませデータませははclれませませませませ

クリーンアップする

最后に,gitブランチブランチ欧宝娱乐app欧宝体育应用最新版app下载下载地址symfonycloud环境を削除してクリーンします:

1 2
$ git branch -d sessions-in-db $ 欧宝娱乐app下载地址symfony env:delete --env=会话 -  in-db --no-interaction

  • “ 以前的ステップ10:ユーザーインターフェースを构筑する
  • 下一个 ”ステップ12:イベントをリッスンする

这项工作包括代码样本,是在a下获得的许可Creative Commons By-NC-SA 4.0执照。