php init
命令实际上做了什么?
使用此命令创建项目后,在cmd中运行此命令时:composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced
我看到很多文件都生成在不同的位置,如common,backend,frontend。
`some@user:/var/www/html/yiiapp$ php init
Yii Application Initialization Tool v1.0
Which environment do you want the application to be initialized in?
[0] Development
[1] Production
Your choice [0-1, or "q" to quit] 0
Initialize the application under 'Development' environment? [yes|no] yes
Start initialization ...
exist common/config/main-local.php
...overwrite? [Yes|No|All|Quit] All
overwrite common/config/main-local.php
unchanged common/config/params-local.php
unchanged yii
overwrite backend/config/main-local.php
unchanged backend/config/params-local.php
unchanged backend/web/index-test.php
unchanged backend/web/index.php
unchanged api/web/index-test.php
unchanged api/web/index.php
overwrite frontend/config/main-local.php
unchanged frontend/config/params-local.php
unchanged frontend/web/index-test.php
unchanged frontend/web/index.php
unchanged console/config/main-local.php
unchanged console/config/params-local.php
generate cookie validation key in backend/config/main-local.php
generate cookie validation key in frontend/config/main-local.php
chmod 0777 backend/runtime
chmod 0777 backend/web/assets
chmod 0777 frontend/runtime
chmod 0777 frontend/web/assets
chmod 0755 yii
chmod 0755 tests/codeception/bin/yii
... initialization completed.`
答案 0 :(得分:7)
init命令只是将目录/环境中的文件复制到项目中
在高级应用程序中,默认情况下您有两个环境(dev和prod),每个环境都有不同的项目配置。
在每个位置,您都有一些配置文件main.php,params.php,main-local.php,params-local.php。文件main.php和params.php适用于所有环境,文件main-local.php和params-local.php是当前环境的配置。
例如,您拥有真实项目的数据库和用于测试目的的数据库。在这种情况下,您应该在文件main-local.php和params-local.php中为db组件编写不同的配置。
关于这个文件还有一件事。如果要将配置启用到项目,则应在目录/环境中重写它们。因为所有* -local.php文件都包含在git-ignore部分中。因此,您可以在/frontend/config/main-local.php文件中测试不同的配置,如果您成功使用它,可以将其添加到/envinronment/prod/frontend/main-local.php
答案 1 :(得分:4)
1)为所有应用生成配置文件。后端是一个应用程序,前端是anohter应用程序。使用 main 和 main-local ,您可以在本地和服务器中使用不同的设置。常见的是两个应用程序(用户模型或两个应用程序中使用的第三方......)的需求。
模板包括三层:前端,后端和控制台, 每个都是一个单独的Yii应用程序。
从高级模板安装指南:https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/README.md
2)还为每个应用的文件夹添加权限。例如:
'backend/runtime',
'backend/web/assets',
'frontend/runtime',
'frontend/web/assets',
在此处检查基本和高级模板之间的差异:https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/start-comparison.md