因爲這樣做,你讓你的本地(常常是「開發」)和遠處的配置之間的差異。這也使您可以保護您的私人數據,而不會忘記設置所需的參數。
例如,symfony有一個「parameters.yml」文件和一個「parameters.yml.dist」文件。你的參數包含真實數據,用於你的實際環境,如果你尊重好的做法,永遠不會提交,因爲你會推送一個包含數據庫名稱,用戶名,郵件主機和所有絕對敏感數據的文件(使用祕密令牌也以形式)。
所以,你有一個DIST文件,其中包含相同的密鑰,但沒有價值:
例子: 參數。陽明:
# This file is auto-generated during the composer install
parameters:
database_host: mysql
database_port: null
database_name: portfolio
database_user: artandor
database_password: supersecretpassword
mailer_transport: smtp
mailer_host: smtp.gmail.com
mailer_user: artandor
mailer_password: supersecretaswell
secret: 070950937b085d66fb1c59978ab9c47d4a420e32
和你的DIST文件看起來像:
# This file is a "template" of what your parameters.yml file should look like
# Set parameters here that may be different on each deployment target of the app, e.g. development, staging, production.
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
parameters:
database_host: 127.0.0.1
database_port: ~
database_name: symfony
database_user: root
database_password: ~
# You should uncomment this if you want to use pdo_sqlite
#database_path: '%kernel.project_dir%/var/data/data.sqlite'
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: ~
mailer_password: ~
# A secret key that's used to generate certain security-related tokens
secret: ThisTokenIsNotSoSecretChangeIt
對不起,長的帖子,想弄清楚你:)
通常的過程是推動DIST文件,然後一旦你把它拉到你的服務器上,就會產生 cp parameters.yml.dist parameters.yml
除了保護數據,其他的原因可能是在本地並部署應用程序。
再見:)
請參閱[我的回答有點不同的問題](https://stackoverflow.com/a/46134516/1256452)。 – torek
「.dist」通常表示「此文件適合分發,但不適用於實際使用」。這意味着這是一個模板文件,實際的文件也可能在該存儲庫中被忽略。在本地克隆之後,您應該複製.dist文件,刪除.dist部分,並對其進行適當更改以使軟件在系統上運行。 –
parameter.yml.dist背後的推理很明顯,但爲什麼.php_cs沒有提交?爲什麼有人會改變包含代碼格式規則的.php_cs?是不是每個貢獻者使用相同規則來格式化他們的代碼的.php_cs的全部要點? – PMoubed