zoukankan      html  css  js  c++  java
  • 自定判断代码的执行环境

    web程序的开发一般经历三个环境 开发(DEBUG)测试(LAUNCHING)生产(ONLINE)

    如何来自动区分三个环境呢?

    代码一般有两种执行方式 cgi、cli

    1、对于cgi可以在web服务器中设置参数,然后在 php中用 $_SERVER 来获取

      nginx:

      apache

    php代码中判断

    if(isset($_SERVER['debug']))
    {
        define('DEBUG', true);
        echo 'DEBUG';
    }elseif(isset($_SERVER['launching'])){
        define('LAUNCHING', true);
        echo 'LAUNCHING';
    }else{
        define('ONLINE', true);
        echo 'ONLINE';
    }

    2、对于cli可以讲变量放到php.ini中,然后用 parse_ini_file 函数来解析(注:ini_get 是获取不到自定义在php.ini中的下标的

    示例:

      php.ini中

    [env]
    launching=true ;true或On(on不区分大小写)获取后都是字符串1
    debug=true
    online=true

      php代码中

    //获取加载的php文件路径
    $ini_path = php_ini_loaded_file();
    
    $ini_vars_arr = parse_ini_file($ini_path, true);
    eee($ini_vars_arr['env']);
    if(!empty($ini_vars_arr['env']['debug']))
    {
        define('DEBUG', true);
        echo 'DEBUG';
    }elseif(!empty($ini_vars_arr['env']['launching'])){
        define('LAUNCHING', true);
        echo 'LAUNCHING';
    }else{
        define('ONLINE', true);
        echo 'ONLINE';
    }

    其他方式

      思想:根据服务器的某些特征信息,如IP 等信息区分

          或者读取一个脱离框架的固定位置的文件(如 php.ini中)

  • 相关阅读:
    ceph中pool的管理
    ubuntu 16.04安装ceph集群(双节点)
    win7设置开机启动virtualBOX虚拟机
    Linux Linux程序练习十九
    Linux Linux程序练习十八
    Linux Linux程序练习十七
    Linux 网络编程详解十二
    Linux socket多进程服务器框架三
    Linux socket多进程服务器框架二
    Linux socket多进程服务器框架一
  • 原文地址:https://www.cnblogs.com/siqi/p/3838773.html
Copyright © 2011-2022 走看看