..


Enlaces patrocinados

Filtrado de las propiedades de nuestra aplicación en relación con el medio ambiente

Artículo escrito por Ricardo Brambilla
Página 1 de 4

Comenzaremos por explicar lo que entendemos por el filtrado dinámico.
Con esta expresión nos referimos a que el mecanismo para poner a disposición de las clases / scripts filtrada propiedades comunes, sino en relación con el entorno en el que estamos trabajando (local, prueba, producción).

Es un mecanismo común en Java, pero no en PHP por la sencilla razón de que el concepto de despliegue, como se entiende comúnmente, no está asociado con nuestra amada lengua. Y "de hecho, scripts de prueba muy común a nivel local y luego copiar los archivos a través de FTP en nuestra prueba, o (peor) directamente en la producción.

En el lugar de trabajo, sin embargo, es muy práctico tener filtra automáticamente en función de las propiedades que nuestra aplicación debe ejecutarse en localhost o en otras máquinas (como la interfaz, expuesta al exterior), por lo que en este artículo vamos a crear un marco único para poner en práctica Este tipo de lógica en un proyecto de PHP a nuestra hipotética.
Para ello no vamos a utilizar paquetes externos, o abstracciones especiales que necesitamos es un XML, una clase PHP y archivos de texto.

La idea es definir en el archivo xml a nuestros bienes comunes, crear un archivo para cada entorno para mejorar y escribir algo de código que pone todo junto. La estructura de nuestra aplicación de prueba serán los siguientes:

  1. clases en una carpeta que contiene la clase PropertyManager.class.php
  2. configuración con una carpeta dentro de la carpeta de archivos y app_properties.xml filtros
  3. la carpeta que contiene los archivos de tres filtros: local.filter.properties, test.filter.properties, pro.filter.properties
  4. un archivo PHP con el código para comprobar el funcionamiento de nuestra solución: index.php

Esta es la estructura básica:

Estructura como el filtrado

El xml

Vamos a ver cómo el archivo está formado por:






 <? Xml version = "1.0" encoding = "utf-8"?>







 <properties>



  



 propiedad> name="__app_version" value="0.0.1" />

	

  



 propiedad> name="messaggio_variabile" value="" />



  



 propiedad> name="url_servizio_esterno" value="" />



  



 propiedad> name="local" value="localhost" />



  



 propiedad> name="test" value="test.qualchedominio.it" />



  



 propiedad> name="pro" value="prod.qualchedominio.it" />







 </ Properties>



Además de las etiquetas XML de costumbre definir el documento que se inicia un contenedor <properties> etiqueta en la que insertar un conjunto de etiquetas <property>, los tres primeros son los que se sirven en el ejemplo, los tres últimos están relacionados con varios de acogida y servicio PHP para entender lo que el medio ambiente que están operando de forma dinámica.

Aquí deine el medio ambiente local de pruebas, y la producción, pero nada impide que se definen otros, como prog. Para cada una de las salas se muestra una URL base, que el valor de acuerdo a nuestras necesidades, aplicación por aplicación.
En nuestro escenario tenemos un equipo de prueba para llegar a 'URL test.qualchedominio.it y la producción de un pozo de prod.qualchedominio.it curso alcanzado en localhost.

Las propiedades del archivo .*

El siguiente paso es asegurarse de que las propiedades definidas en XML son valorados de manera diferente en función del entorno 'donde estamos. Utilizamos para ello de los archivos de texto en la carpeta de filtros, vamos a ver el contenido de una por una:

local.filter.properties






 ; [LOCAL] Filtrar







 messaggio_variabile = "Lo sentimos LOCAL"







 url_servizio_esterno = http://dev-servizio.esterno.it



test.filter.properties






 ; [TEST] Filtrar







 messaggio_variabile = "Lo sentimos TEST"







 url_servizio_esterno = http://test-servizio.esterno.it



pro.filter.properties






 ; [PRO] Filtrar







 messaggio_variabile = "Lo sentimos PRODUCCIÓN"







 url_servizio_esterno = http://prod-servizio.esterno.itit



Tenga en cuenta que la propiedad "__app_version", definido en XML, no se redefine en diferentes archivos, se tratará a todos los efectos como una propiedad común entre los diversos ambientes e inmutable, por lo que no se filtra.

En la misma categoría ...
E-Learning
Linux (Curso) Linux (Curso)
Guía completa de código abierto del sistema. A partir de 49 €.
MySQL (Curso) MySQL (Curso)
Gestión de base de datos de código abierto. A partir de 39 €.
PHP (Curso) PHP (Curso)
Ciclo completo para la creación de sitios Web dinámicos. A partir de 49 €.
Enlaces patrocinados