【问题标题】:Yii2 php init commandYii2 php 初始化命令
【发布时间】:2016-04-22 19:57:32
【问题描述】:

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.`

【问题讨论】:

  • 你可以看到'init'文件的代码以及更多细节,它是用php编写的。和前两个答案所说的差不多。

标签: yii2


【解决方案1】:

init 命令只是将文件从目录 /environments 复制到您的项目中

在高级应用程序中,您默认有两个环境(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 组件编写不同的配置。

关于此文件的另一件事。如果您想启用您的配置项目,您应该在目录 /environment 中重写它们。因为所有 *-local.php 文件都包含在 git-ignore 部分中。所以你可以在 /frontend/config/main-local.php 文件中测试不同的配置,如果你成功了,你可以将它添加到 /envinronment/prod/frontend/main-local.php

【讨论】:

    【解决方案2】:

    1) 为所有应用程序生成配置文件。后端是一个应用程序,前端是另一个应用程序。例如,使用 mainmain-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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多