zend skeleton mac instalar framework php apache zend-framework configuration

skeleton - Establezca Application_ENV a través de la configuración de host virtual y lea esto en PHP



zend framework model (4)

Como SetEnv establece el valor para el entorno de Apache, puede obtenerlo con

o solo

  • getenv - Obtiene el valor de una variable de entorno

Si miras public/index.php en un proyecto de ZF, verás que ZF usa getenv :

// Define application environment defined(''APPLICATION_ENV'') || define(''APPLICATION_ENV'', (getenv(''APPLICATION_ENV'') ? getenv(''APPLICATION_ENV'') : ''production''));

Una alternativa de uso frecuente sería leer el nombre de host de PHP y definir la constante en consecuencia:

if(!defined(''APPLICATION_ENV'')) { if(FALSE === stripos($_SERVER[''SERVER_NAME''], ''www.yourdomain.com'')) { define(APPLICATION_ENV, ''development''); } else { define(APPLICATION_ENV, ''production''); } }

De esta forma, no tiene que depender en absoluto de la configuración del entorno.

Me gusta cómo funciona esto en Zend Framework. Puedo saber qué entorno estoy usando al verificar la constante APPLICATION_ENV en mi controlador.

<VirtualHost *:80> #ServerName #DocumentRoot SetEnv APPLICATION_ENV "development" # Directory </VirtualHost>

Pero desafortunadamente no puedo usar ZF en mi proyecto actual. ¿Cómo puedo verificar esta variable de entorno en mi código PHP?


Tuve el mismo problema, lo resolví. La forma de resolver el problema es declarar todas las variables en un script de inicio apache.

Estoy usando apache en centos y el script de inicio se encuentra en /etc/init.d/httpd

Agregue este código, pero cámbielo para que se ajuste a su caso específico.

ORACLE_HOSTNAME=ora11g.home.com; export ORACLE_HOSTNAME ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME ORACLE_SID=ora11g; export ORACLE_SID ORACLE_TERM=xterm; export ORACLE_TERM PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

Esto resolvió mi problema. Espero que esto ayude.


también puede acceder desde la variable $_SERVER .


SetEnv define una variable de entorno.

Una vez que esto se haya establecido (ya sea en la configuración de su Apache, o en el nivel del sistema) , puede leer su valor usando la función getenv :

echo getenv(''APPLICATION_ENV'');


Por ejemplo, si usa esto en su archivo .htaccess :

SetEnv TEST glop

Puedes usar esta porción de código PHP:

var_dump(getenv(''TEST''));

Y obtendrás:

string ''glop'' (length=4)