【问题标题】:How to access $_SERVER['SERVER_NAME'] in constant file laravel如何在常量文件 laravel 中访问 $_SERVER['SERVER_NAME']
【发布时间】:2018-07-12 05:41:39
【问题描述】:

我想在 laravel 的常量文件中访问服务器名称,但我面对的是Undefined index: SERVER_NAME,当运行这个条件时它给出了错误

已定义常量 APIURL

这是我的常量.php

 if((isset($_SERVER['SERVER_NAME'])) && ($_SERVER['SERVER_NAME'] == 'onboarding.posplus.co.za')){

    define('APIURL', 'https://example.com/bib/public/api/v1/'); 
    define('BIBURL','https://example.com/bib/public/assets/');
    define('IS_VERIFY',false);
    define('BUSINESS_URL','https://example.com/api/app/business/validate');
    define('X_API_KEY','234242');
    define('SECRET','dsadad');
    define('IS_HTTPS',FALSE);
    define('DOMAIN','pro');
}else{

    define('APIURL', 'https://example.com/public/bib/public/api/v1/');
    define('BIBURL','https://example.com/public/bib/public/assets/');
    define('IS_VERIFY',true);
    define('BUSINESS_URL','example.com/api/v1/app/business/validate');
    define('X_API_KEY','sdsadss');
    define('SECRET','67889999999');
    define('IS_HTTPS',TRUE);
    define('DOMAIN','qa');
}


define('USERNAME','1n@.com');

请帮帮我。

谢谢

【问题讨论】:

  • $_SERVER(和其他相关变量)仅在请求期间存在。
  • @Amadan 但是如何持续使用,因为我想在服务器名称上添加条件并为 qa 和生产服务器运行 url
  • @Amadan 我想在 Q.A 服务器和生产服务器上放置相同的文件并在条件基础上运行,明白了吗?
  • 你可以改用gethostname

标签: php laravel global-variables


【解决方案1】:

您应该首先检查应用程序是从控制台运行还是通过 http 请求运行:

if (!app()->runningInConsole()) {
    // not running in console, must be a request...

    $name = request()->server('SERVER_NAME');

    // your code here ...

} else {
    // console invoked (e.g. artisan)

    $name = gethostname(); // or php_uname('n') for older PHP versions

    // your code here ...
}

至于APIURL被定义错误,需要先检查是否已定义,再定义:

if (!defined('APIURL')) {
    define('APIURL', 'http://example.com');
}

【讨论】:

  • 当我运行命令 php artisan config:cache 它给出错误常量 APIURL 已经定义
【解决方案2】:

测试这段代码:

if(request()->server('SERVER_NAME') == 'onboarding.posplus.co.za')){

    if (!defined('apiurl')) {
        define('apiurl', "https://example.com/bib/public/api/v1/'");
    }

    $biburl = "https://example.com/bib/public/assets/";
    $isVerify = false;
    $businessUrl = "https://www.example.com/api/app/business/validate";
    $x_api_key   =  "234324";
    $secret   =  "sdfsfsdf";
    $isHttp   =  FALSE;
    $domain   =  "pro";

}else{

    if (!defined('apiurl')) {
        define('apiurl', "https://example.com/bib/public/assets/");
    }

    $biburl = "https://example.com/bib/public/assets/";
    $biburl = "https://example.com/public/bib/public/assets/";
    $isVerify = true;
    $businessUrl = "https://example.com/api/v1/app/business/validate";
    $x_api_key   =  "q12313";
    $secret   =  "123123asdasd";
    $isHttp   =  TRUE;
    $domain   =  "qa";

}

【讨论】:

  • 我在 constant.php 文件中对此进行了测试,它给出了错误 Class request does not exist
  • @RaheelAslam 你在 laravel 的哪个部分使用这个代码?
  • @RaheelAslam laravel 的一部分,例如控制器,视图?不是 laravel 版本
  • 我在 laravel 中使用 constant.php 文件
  • @RaheelAslam 好的,请将文件的所有内容粘贴到您的帖子中
猜你喜欢
  • 2023-04-04
  • 2018-04-17
  • 1970-01-01
  • 2011-07-16
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多