entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

PHP antiguo a PHP 5.5.11

Alguien sabe como adaptar una web completa desarrollada con PHP 5.2.17 a PHP 5.5.11? Es la última estable y nos gustaría usarla pero ahora mismo tengo corriendo en Windows Server 2012 PHP 5.5.11 y copio la web a IIS y cuando la mapeo e intento entrar no me enseña nada. Sólo se me carga el Favicon...

Un saludo!

2 Respuestas

3votos

Leonardo-Tadei Puntos227320

Hola Ankeorum,

si la pagina de pruebas que te pasó Carlos se ve ahora correctamenet, el motivo por el cual no funciona el sitio aparece seguro en el log de errores del servidor (o de PHP si es independiente)

Dado que el servidor es para desarrollo, deberías configurar el PHP.INI en "modo developer" para que te muestre la información de los errores por pantalla:

display_errors = On
display_startup_errors = On
error_reporting = E_ALL
html_errors = On
log_errors= On

Esto lo tenés que hacer para cada sitio/proyecto que haya si cada uno tiene su propio PHP.INI

Saludos!

2votos

carlossevi Puntos63580

¿Estás seguro de que el problema que comentas se debe a la versión de PHP del código y no a la configuración del IIS con PHP?

Para descartar problemas en la instalación crea un archivo index.php con el siguiente contenido y comprueba que se muestra correctamente:

<<?php
// testing sessions
// check to see if files are being created
// in the session.save_path folder
session_start();
?>
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<p>
The browser you're using is
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
</p>
<p>
<!-- test the browscap setup -->
Your browser's capabilities are: <br/>
<pre>
<?php print_r(get_browser(null, true)); ?>
</pre>
</p>
<?php phpinfo(); ?>
</body>
</html> 

Si crees que efectivamente es por la versión de PHP puedes revisar la lista de incompatibilidades generadas en cada cambio de versión para ver si tu código está afectado por alguna:

Cambio de 5.2 a 5.3:
http://www.php.net/manual/en/migration53.incompatible.php
Cambio de 5.3 a 5.4:
http://www.php.net/manual/en/migration54.incompatible.php
Cambio de 5.4 a 5.5:
http://www.php.net/manual/en/migration55.incompatible.php

0voto

carlossevi comentado

Copio de la Wikipedia:

La refactorización (del inglés refactoring) es una técnica de la ingeniería de software para reestructurar un código fuente, alterando su estructura interna sin cambiar su comportamiento externo.

0voto

ankeorum comentado

Gracias, podemos comunicarnos de alguna otra manera a ver si me puedes echar un cable?

1voto

carlossevi comentado

Creo que la mejor forma para comunicarnos será seguir usando esta página posteando nuevas preguntas por dos motivos:

  1. Aportamos conocimiento a la comunidad y otros desarrolladores que se encuentren con el mismo problema en el futuro lo resolverán más fácilmente.
  2. No perdemos la posibilidad de que aporten su punto de vista otros desarrolladores que en esta página los hay muy buenos. Por ejemplo leonardo-tadei tiene mucha experiencia y siempre da buenísimas respuestas.

Respecto a cómo empezar a implementar esa clase te pueden servir los ejemplos que hayas encontrado de MySQL. Tienes que adaptarlo a tus funciones de MSSQL pero la estructura y uso de la clase deben ser la misma para que precisamente en el futuro pueda reemplazarse una por otra sin que tu aplicación lo note.

Antes de empezar con el proyecto de refactorización te recomendaría afrontar alguna lectura de POO, patrones MVC o incluso plantearte el uso de algún framework de PHP para facilitarte la implementación de este tipo de soluciones. Busca algún libro o tutoriales, te copio un enlace que otro usuario publicó por aquí: http://www.freelibros.org/programacion/curso-de-programacion-en-php-con-mysql.html

Suerte.

0voto

ankeorum comentado

Ok comentaremos por aquí pues, yo he estado leyendo la siguiente documentación:

http://danielbrena.blogspot.com/2014/01/crear-una-clase-en-php-para-el-manejo.html

El asunto es que cuando veo la codificación PHP que tiene en el centro de la página sobre fondo negro no entiendo algunas cosas. Por qué hace unas funciones que no hacen nada? Ni reciben parámetros ni nada?

Me refiero a las:

abstract protected function get();
abstract protected function set();
...

Después hace la función de abrir conexión y cerrar las cuales entiendo perfectamente así como la función de ejecutar una consulta y obtener resultados de consulta pero esas get(), set(), edit() y delete() no entiendo qué son ni cual es su función.

También me gustaría saber cuando hace

$this->conexion = new (en mi caso sería sqlsrv_connect) mis datos

Qué quiere decir el $this->conexion? this hace alusión a la clase y conexion a la variable conexion de la clase?
Lo siento si parezco un ignorante pero nunca había hecho esto antes.

0voto

Peter comentado

Gracias @carlossevi.

@ankeorum, abre todas las preguntas que hagan falta, tener 50 preguntas en un solo tema nunca va a ser una buena opción.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta