strip_tags remove ent_quotes ejemplo php svn deployment build-process

php - remove - strip_tags()



Consejos de despliegue de código PHP (3)

Esto no es exactamente parte de tu pregunta, pero es relevante:

Si ingresa en el código de distribución destinado a una amplia audiencia, le recomendaría que construya y distribuya los paquetes PHAR firmados por OpenSSL. Puede distribuirlos a través de HTTP sin ningún problema, y ​​como están firmados por OpenSSL, también está mitigando el riesgo de ataques de intermediarios y protegiendo a los usuarios finales / clientes / clientes de alguien que inyecte código si usted desea configurar una actualización automática o de un solo clic.

Hay un conjunto de herramientas en las que he contribuido en el pasado que funcionan muy bien para esto, pero necesitarás PHP 5.3 o necesitarás PHP 5.2 con PHAR instalado a través de PECL. https://github.com/koto/phar-util

En cuanto a las pruebas, PHPUnit es el estándar de facto.

En el pasado, he estado desarrollando de una manera muy amateur, lo que significa que tenía una máquina local donde desarrollé y probé un código y una máquina de producción a la que copié el código cuando terminé. Recientemente, modifiqué esto ligeramente para desarrollarlo localmente, verifiqué el código en SVN y luego actualicé la máquina de producción a través de SVN.

Ahora me gustaría comenzar un nuevo proyecto y mejorar mi flujo de trabajo. Idealmente tuve lo siguiente en mente:

  • Tener uno o más entornos de desarrollo local.
  • Desarrollar y probar en máquinas locales.
  • Usa SVN (o Git) como repositorio de código
  • Use una herramienta de compilación para configurar nuevos entornos (ya sea desarrollo, prueba o producción) y despliegue el código

Como no estoy muy familiarizado con este proceso, estoy buscando sugerencias sobre cómo configurar mejor esta idea y las herramientas a utilizar, especialmente cuando se trata de las herramientas de construcción. Estaba buscando en Ant y Phing (posiblemente make), pero soy tan nuevo en esto que realmente me gustaría recibir alguna orientación. ¿Hay buenos tutoriales o libros sobre la implementación de PHP, especialmente para principiantes? Lo que me interesa especialmente son los siguientes temas:

  • Implementación en diferentes tipos de servidores con diferentes configuraciones (por ejemplo, dev usa diferentes contraseñas de db, db, informes de errores de PHP que producción o puesta en escena).
  • Implementación que automáticamente extrae código de SVN.
  • Implementación que establece temporalmente una página de "Mantenimiento" para el entorno de producción.
  • Una vez que haya dominado lo anterior, tal vez incluso hacer algunas pruebas en el proceso de construcción.

Sé que mi pregunta puede sonar bastante confusa ... Admito, soy nueva en esto y podría estar un poco fuera del objetivo en lo que realmente necesito. Es por eso que cualquier ayuda es muy apreciada.


Si está interesado en usar Git, debería revisar este sistema de compilación de CodeMeme. Por lo que describiste, parece que sería un buen ajuste. Puede agregarlo a cualquier proyecto como un submódulo y con el código incluido puede personalizar un script de compilación que se implementará en diferentes servidores múltiples en múltiples entornos. Utiliza Git para compilar el código para la implementación, pero desafortunadamente SVN no es compatible.

https://github.com/CodeMeme/Phingistrano


Sugeriría hacer de su estrategia de implementación de prueba un script de instalación listo para la producción, ya que eventualmente va a necesitar uno de esos.

Algunos consejos que pueden parecer obvios para algunos, pero vale la pena señalarlos:

  • Su archivo de configuración guardado en su VCS debe ser una plantilla, y debe tener un nombre diferente del archivo que eventualmente contendrá la configuración real. Por ejemplo, config-dist.php o config-sample.conf o sample/config-mysql.php o algo parecido. De lo contrario, terminará por comprobar accidentalmente un archivo de configuración específico del servidor sobre su plantilla.
  • Para la implementación de PHP, anticipa que algunos usuarios no podrán ejecutar scripts del lado del servidor a través de ningún otro mecanismo que no sea el propio servidor web. Un instalador basado en PHP es casi no negociable.
  • Debe incluir un mecanismo de actualización amigable para el consumidor, y para eso, wordpress es un gran ejemplo de un proyecto para emular. Un script PHP puede (a) descargar la última compilación, (b) usar las funciones ftp para actualizar los archivos de su aplicación, y (c) ejecutar un script de actualización que realice los cambios apropiados en la base de datos, etc.
  • Por el amor de Dios, no haga como [ redactado ] y haga que sus usuarios descarguen e instalen parches separados para cada lanzamiento de puntos. Pídales que descarguen la última versión (final) que contiene todas las actualizaciones hasta la fecha y aplica las funciones correctas de ALTER TABLE en secuencia.

Ya sea que los archivos se implementen a través de SVN o FTP, el mecanismo de instalación / actualización debería ser el mismo: obtener los últimos archivos y ejecutar el script de actualización. El actualizador utiliza la versión que figura en el script PHP y la versión que figura en la base de datos, y utiliza ese conocimiento para aplicar los parches de base de datos apropiados en orden. En cuanto a cómo generar esos parches, hay otras preguntas aquí que puede consultar para obtener más información.

En cuanto a la página "Mantenimiento", solo use el truco de versión mencionado anteriormente para activarlo (compare la versión en la base de datos con la versión en el código PHP). También es útil poder marcar un sitio como "inactivo" para el público, pero hacerlo visible para los administradores (como hace Joomla), que puede activar a través de las banderas de la base de datos o del sistema de archivos.

En cuanto a la extracción automática de código de SVN, diría que es mejor utilizar un script cron o un desencadenante de confirmación que hacerlo en su aplicación, ya que no sería relevante para los usuarios finales.