0

XCRUD という Code Canyon で入手したスクリプトを使用しています。名前が示すように、CRUD フォームを作成します。しかし、サーバーが変更されたとき (つまり、ローカル開発から本番環境) に問題が発生しています。

その構成は、構成クラスに一連のプロパティを設定することで構成されます。特にファイル パスは次のとおりです。

public static $scripts_url = 'xcrud'; 
// URL to the xCRUD folder, not real path, without a trailing slash, can be relative, 
e.g. 'some_folder/xcrud' or absolute, e.g. 'http://www.your_site.com/some_folder/xcrud'

私が直面している問題は、複数のサーバーの場所で実際に機能する相対パスを入力する方法が見つからないように見えることです。

たとえば、次の 3 つの環境を処理する必要があるとします。

  1. ローカル開発:http://localhost:8888/site/

  2. 生産テスト:http://urltest.com/dept/site/

  3. プロダクションライブ: http://url.com/dept/site/

xcrud パスを設定するsite/xcrudと、1 に対しては機能しますが、2 または 3 に対しては機能しません。そのため、相対パスのように動作しません。

私の現在の「解決策」は、絶対パスに基づいて定数を定義する switch ステートメントで$_SERVER['SERVER_NAME']あり、パスがこれらの 3 つの環境であることがわかっているものであり、その定数を構成内のパスとして使用します。しかし、それは正確には柔軟ではなく、間違った方法のようです:

    switch ($_SERVER['SERVER_NAME']) {
        case "localhost":
           define('MY_SERVER_PATH', 'http://localhost:8888/site/xcrud');
           break;
        case "urltest.com":
           define('MY_SERVER_PATH', 'http://urltest.com/dept/site/xcrud');
           break;
        case "url.com":
           define('MY_SERVER_PATH', 'http://url.com/dept/site/xcrud');
           break;
    }

    public static $scripts_url = MY_SERVER_PATH; 

もっと良い方法があるはずですよね?

4

2 に答える 2

0

複数の環境を使用しているため、いくつかの構成ファイルを使用できます。このようにして、環境ごとに異なる値をロードできます (データベースの資格情報や crud の URL など)。

config 構造を使用すると、アプリの最初のどこかで一度だけ環境をチェックする必要があります。

switch ($_SERVER['SERVER_NAME']) {
    case "localhost":
        // Load localhost config file
       break;
    case "urltest.com":
       // Load urltest config file
       break;
}
于 2013-10-15T20:52:11.907 に答える