Desarrollo Web

Instalar Xdebug en Wamp – Windows

Para los que empiezan a programar en PHP les resulta un poco complicado encontrar algunos errores en su código, ya que siendo PHP un lenguaje interpretado, y los warnings o errores generados por el Apache no nos muestra información suficiente para hacer debug. Por ello, deberíamo usar Xdebug, que nos brinda mucha información adicional que nos permitirá identificar errores en nuestro código.

Obteniendo información de la configuración PHP instalada en nuestra máquina

Primero debemos averiguar la versión de PHP que tenemos instalados. Esta información puede ser obtenida usando la función phpinfo().

Se debe crear un archivo php que contenga el siguiente código:

<?php
phpinfo();
?>

Al acceder al archivo, se generara una página como esta:

Instalando Xdebug

Luego nos dirigimos a esta página: http://www.xdebug.org/find-binary.php y en el formulario copiaremos todo el contenido de la página de información de PHP de nuestro servidor.

Luego de dar click en el botón «Analyse my phpinfo() output», nos mostrará un resultado como el siguiente:

  1. Primero debemos descargar la versión más reciente del Xdebug para la versión de PHP que tenga instalada en su máquina. Como puede ver, está página automáticamente le mostrará el link para que descargue la versión indicada de la librería DLL.
  2. Luego copiamos la libreria DLL del Xdebug en la carpeta de extensiones de PHP, en mi máquina está en D:\wamp\bin\apache\Apache2.2.11\bin\php.ini
  3. Luego debemos configurar el Xdebug para que pueda ser reconocido por PHP. Para ello necesitamos editar el archivo php.ini. En mi caso, está en c:\wamp\php\php.ini y el Apache está en c:\wamp\Apache2\bin\php.ini. Se deben modificar ambos archivos.Agregue lo siguiente en su archivo php.ini
    
    [xdebug]
    zend_extension = D:\wamp\bin\php\php5.3.0\ext\php_xdebug-2.1.0-5.3-vc6.dll
    xdebug.profiler_output_dir = D:/wamp/tmp/xdebug
    xdebug.profiler_output_name = "cachegrind.out.%p"
    xdebug.profiler_enable = 0
    xdebug.profiler_append=0
    xdebug.extended_info=1
    xdebug.remote_enable=1
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000
    xdebug.idekey=xdebug
    xdebug.remote_log=D:/wamp/tmp/xdebug/xdebug_remot.log
    xdebug.show_exception_trace=0
    xdebug.show_local_vars=9
    xdebug.show_mem_delta=0
    xdebug.trace_format=0
    
    

    Obviamente en la lineas indicadas se debe cambiarpor las rutas en las que tiene instalado el WAMP

  4. Cree una carpeta ‘xdebug’ dentro de  D:\wamp\tmp
  5. Reinicie el servicio Apache.

Para comprobar que tenemos el Xdebug instalado, tenemos que ir otra vez a la página donde hayamos mostrado la información de la configuración PHP, y debemos encontrar lo siguiente:

Comprobando

Para comprobar, haremos un pequeño ejemplo:


<?php
$a = 0;
$b = 1;

$c = $b/$a;
echo 'respuesta es '.$c;
?>

Por defecto:

Con Xdebug:

Desarrollo Web

Generar archivo YAML para Doctrine usando MySQL Workbench

Symfony es uno de los frameworks para PHP más estables y escalables, lo que ha hecho que se vuelva muy popular. Además, usa por defecto Doctrine, uno de los ORM para PHP más potentes.

Sin embargo, para poder usar Doctrine, es necesario crear un archivo YAML. Pero ¿cómo hacemos cuando ya tenemos una bd ya creada? Felizmente, existe un plug-in para MySQL Workbench que permite exportar un dbschema a un archivo YAML.

1. Descarga e instala  MySQL Workbench

2. Descarga y descomprime  el plug-in  MySQL Workbench Doctrine
3. Ejecutar MySQL Workbench
4. Ir al menu  TOOLS > INSTALL PLUGIN/MODULE FILE
5. Navigate to the DoctrineExport.grt.lua file
6. Ir a DATABASE > REVERSE ENGINEER
7. Llenar los formularios con la información de acceso a tu servidor
8. Escoge tu DB  y continuar con el wizard.
9. Cuando termine, deben aparecer todas la tablas de tu BD
10. Ir a  ARRANGE > AUTOLAYOUT (no es necesario, es sólo para que veas tus tablas ordenadas)
11. Ir a PLUGINS > CATALOG > DOCTRINE EXPORT 4.0 (escoger si se quiere guardar en clipboard o en un archivo)

Eso es todo.

Referencias

http://stackoverflow.com/questions/599566/export-mysql-workbench-data-model-directly-to-schema-yml-in-propel-symfony

http://forum.symfony-project.org/index.php/t/12858/

Siguenos en Facebook