0

我正在使用我在 Code Canyon 上获得的一个名为 XCRUD 的脚本。顾名思义,它创建 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)。

使用配置结构,您只需在应用程序开始的某个地方检查环境一次。

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 回答
0

尝试 v1.6。它具有 url 路径自动检测,只需$scripts_url留空 :)

于 2013-11-18T19:07:22.250 回答