2

Yii アプリ用の公開 Git リポジトリがあるとします。DB構成設定を非公開にする方法を知りたいですか? ファイル全体を無視することはできません。

4

4 に答える 4

7

2 番目の無視された構成を作成し、結果をマージします。

$config=require_once(dirname(__FILE__).'/protected/config/main.php');

$configIgnored=require_once(dirname(__FILE__).'/protected/config/ignored.php');

require_once($yii);

$config = CMap::mergeArray($config, $configIgnored);
Yii::createWebApplication($config)->run();
于 2013-04-05T11:48:53.493 に答える
2

最初に ... リポジトリに protected/config/main.php.dist ファイルを保持します。「dist」は「分布」の略です。このファイルは通常の構成ファイルですが、適切なデータはありません。たとえば、次のことができます。

...
'db' => array(
  'connectionString' => 'mysql:host=[[hostname]];dbname=[[database]]',
  'emulatePrepare' => true,
  'username' => '[[username]]',
  'password' => '[[password]]',
  'charset' => 'utf8',
),
...

ユーザー名、パスワードなどはプロジェクトのものではないことに注意してください。この情報はあなただけに関するものであり、あなたのアプリケーションに関するものではありません。

2 番目 に、アプリケーションのデプロイを準備します。たとえば、次のように ping を使用します。

<project name="yourProject" default="install">
    <target name="install" description="Prepare application for deploy">
        <input propertyname="hostname"
               defaultValue="localhost" promptChar="?">hostname</input>
        <input propertyname="database"
               defaultValue="database" promptChar="?">database</input>
        <input propertyname="username" defaultValue="root" promptChar="?">username</input>
        <input propertyname="password" defaultValue="root" promptChar="?">password</input>
        <copy file="protected/config/main.php.dist"
              tofile="protected/config/main.php"
              overwrite="false">
            <filterchain>
                <replacetokens begintoken="[[" endtoken="]]">
                    <token key="username" value="${username}" />
                    <token key="password" value="${password}" />
                    <token key="hostname" value="${hostname}" />
                    <token key="database" value="${database}" />
                </replacetokens>
            </filterchain>
        </copy>
    </target>
</project>

この方法では、構成設定をリポジトリに保存することはなく、実行するだけで済みます

$ phing install

マシンでアプリケーションを構成します。明らかに、phing をインストールする必要があります。

于 2013-04-05T18:35:49.310 に答える
1

完全に機能するこれを見つけました: http://www.yiiframework.com/forum/index.php/topic/33395-best-practices-to-separate-db-connection-credentials-from-mainphp-and-git-repository /

于 2013-04-05T11:46:20.943 に答える
0

私は Yii を使用していないので、その構造はわかりませんが、1 つ知っていることは、git でファイルの行を無視することはできないということです。したがって、実際の構成ファイルを gitignore し、実際のファイルの代わりに config_sample ファイルを作成して公開し、それを機能させるための指示を README.md に書き留めることをお勧めします。

于 2013-04-05T11:37:30.117 に答える