Editores para PHP5 – OpenKomodo y Eclipse PDT

Mucha gente se dedica a programar usando bluefish o quanta; en mi caso muchas veces recomiendo screem (aunque por alguna razón extraña en debian y fedora (mis distros) screem es medio “buggy”); sin embargo, todos ellos son editores (x)html con algo de coloreado de sintaxis y autocompletado de tags y esas cosas (screem tiene una funcionalidad “parcial” de autocompletado de funciones de php).

Sin embargo, como programador eso es una “infima” parte de lo que necesitas; necesitas autocompletado real de código, tanto de tu código como el de funciones de php (estaremos de acuerdo que a falta de namespaces, los nombres de funciones en php5 son a veces una pesadilla); se necesita ayuda contextual sobre parámetros; administración (si es posible) automática de los comentarios (sobre todo bloques PHPDoc y Doxygen), descubrimiento de bloques, depuración, resaltado de errores y una gran cantidad más de adiciones que se agradecen.

Komodo Edit 4.0 (alias: OpenKomodo):

Hace algún tiempo me dediqué notablemente a usar Komodo Edit 3.5 (hasta llegar a la 4); era bueno, basado en xpcom+XUL (engine Mozilla), es rápido, ligero y viene con todas esas características de resaltado de sintaxis, completado de código, etc.

Veamos algunas características interesantes:

  • Find all functions: permite listar todas las funciones declaradas en tu archivo php.
  • Crear snippets de código para pegar con solamente arrastrar y soltar (o asignarle un key-binding para amantes del teclado)
  • posee una característica de “vim-emulation” bastante interesante.
  • Trabajar con múltiples proyectos a la vez
  • Indicar que haga un “scanning” de nuestros proyectos para que el auto-completado de código funcione correctamente
  • Indicar donde queda nuestro php para realizar autocompletado (se extraña la caracteristica de agregar xdebug y permitir profiling y debugging de código que tenia la versión propietaria de Komodo ActiveState).
  • Crear macros para automatizar tareas
  • Manejo de multiples tipos de documentos XML, Doctype, Namespaces y Schemas (util a la hora de crear documentos XML)
  • Si te detienes en una llave, resalta donde ha iniciado ese bloque de código
  • Resaltado de errores html (por si estas diseñando templates)
  • Puedes agregar schemas y DOCTYPE propios para que comprenda las nuevas tags
  • Sistema de templates para no repetir la construcción de archivos, html, hojas xslt o clases php.

Cosas que se extrañan:

  • No auto-completa las llaves de apertura o cierre de funciones, tampoco autocompleta los cierres de paréntesis ni actualiza los parámetros al escribirlos
  • Es mas un “editor con vitaminas” que un IDE; pero al compararlo con bluefish, se agradece que lo hayan liberado.
  • Necesitas definir el tipo de documento para que pueda hacer correctamente el code-folding (cerrar un bloque de declaración para ahorrar espacio, muy util!).
  • Algo de cariño a PHP, sigue siendo un editor que tiende más a Python o a Perl

Algunos screenshots:

inicial.png
Pantalla inicial de Komodo Edit

index.png

Pantalla en modo editor – a la izquierda, un proyecto de Komodo

preferencias.png

Hay que “configurar” en preferencias a php para que funcione el auto-completado, pero podemos agregar proyectos propios
autocomplete_komodo21.jpg

El auto-completado se puede hacer incluso de clases propias de nuestro proyecto (realmente ahorra tiempo cuando el proyecto es grande) 

autocomplete_komodo.jpg

El autocompletado se puede realizar incluso con el objeto ya creado (un circulo verde para métodos, un triangulo azul para propiedades del objeto)

auto_komodo3.jpg
El auto-completado tambien incluye los parámetros de nuestras funciones de usuario. 

snippets-komodo.jpg

No tenemos bloques doxygen o phpDoc, pero podemos “crearlos” usando un snippet, podemos incluso agregarle un icono distintivo a dicho snippet y hasta un acceso de teclado.

xml_komodo.jpg

Se agradece la cantida increible de modos para trabajar con archivos XML (para ser un xml editor, screem es algo “laxo” en estas cosas).

En fin, un muy buen editor, si se pudieran agregarle algunas cosas IDE (como profiling, debugging, gestión desde el subversión, etc); por su rapidez (usa XUL, como firefox) sería la maravilla de los editores/IDE para PHP5.

Pagina Oficial: http://www.activestate.com/openkomodo/ 

Eclipse PDT:

Con algunas ideas del Zend Editor (Zend e IBM trabajan colaborativamente en este IDE/Plugin para Eclipse) el Eclipse PDT es totalmente un serio compromiso como un IDE para programación en PHP.

Características Interesantes:

  • Verdadero auto-completado (escanea el proyecto, no se necesita incluir el objeto)
  • Outline (muestra la estructura en métodos, propiedades de nuestra clase)
  • Puede mostrar la herencia de nuestras clases
  • Inserta bloques PHPDoc útiles para comentarios
  • Auto-completa llaves, paréntesis, auto-tabula el código de acuerdo a reglas pre-definidas o propias
  • Muestra los errores de PHP incluyendo un tooltip mostrando cual es el error
  • Code-Folding, podemos “cerrar” bloques de código como funciones, clases o incluso comentarios
  •  Auto-Format Document (CRTL+SHIFT+F) no es la panacea, pero auto-indenta y formatea nuestroa archivos automágicamente (una maravilla si se te olvida indentar correctamente).
  • No importa si 200 lineas atrás comenzó el bloque de código, si insertas una llave cerrando, el sabrá cual és.
  • Auto-completa tags, atributos html, incluso auto-completa comentarios de PHPDoc
  • Multiples proyectos a la vez
  • El Proyect Explorer es algo engorroso a veces, pero despues te acostumbras a su forma de organizar archivos y carpetas
  • Refactor: Mover o renombrar un archivo re-acomodará (a veces no) todas las declaraciones de este archivo dentro de tu proyecto actual

Contras:

  • Java: su sola ejecución me pone en el techo el consumo de recursos (casi 200MB de RAM se consume el Eclipse PDT)
  • Profiling es algo dificil de activar (al menos para PHP)
  • No reconoce javascript y CSS, asi que te llena la ventana de “Errors & Warnings” de supuestos “errores de sintaxis” de PHP en documentos javascript.
  • El debugger es una maravilla en aplicaciones sencillas, en un entorno MVC es casi inusable

 Algunos ScreenShots:

 

inicial_pdt.png

 Pantalla completa del Eclipse PDT, se agracede un coloreado de sintaxis bastante entendible (y poco vistoso, util para las largas horas de programación no cansen la vista).

comments.jpg

Son útiles la administración de bloques de comentarios, sobre todo de bloques PHPDoc y Doxygen

explorer.jpg

El  Proyect Explorer muestra todos nuestros documentos y los archivos contenidos en él (aunque a veces prefiero que se comportara como el de Komodo).

outline.jpg

Outline: Muestra la estructura de nuestra(s) clase(s) de nuestro archivo actualmente abierto (en foco en el área de documentos); es de hacer notar que gestiona correctamente las herencias entre clases (comos se muestra e los circulos verdes con una “c”, indicando clases (e I para las interfaces)), vale de resaltar la notación de PDT para esto, circulo verde: funciones publicas, rombo amarillo, funciones privadas, rombo más pequeño, métodos privados, circulo pequeño verde con un punto blanco en el centro, métodos publicos, Si la definición agrega una S en superindice de color rojo, indica que el método o propiedad es estático.

code_folding.jpg

Code Folding: por defecto todas las funciones aparecen en un modo “cerrado” (Fijense en el circulo con el icono + dentro); lo que ahorra mucho espacio en pantalla y evita confusiones.

code_folding2.jpg

Cuando te paras sobre un icono de Code-Folding; veremos un tooltip con el código que el code-folding está ocultando. 

autocomplete_pdt.jpg

El autocompletado de código incluye funciones de usuario, mostrando incluso los parámetros de cada método; usa la misma notación que el Outline para representar cuales son privados, públicos o protegidos. 
El Autocompletado tambien  incluye las variables y propiedades, cada vez que coloquemos el simbol de variable ($) aparecerá esta lista de selección en pantalla.

find.jpg

Entre la ayuda contextual que podemos encontrar, está la posibilidad de ver donde fue declarada una función, incluyendo la posibilidad de ir a la declaración de la misma (Menu Contextual -> open Declaration).

phpdoc.jpg

Podemos agregar bloques de comentario PHPDoc, para poder comentar nuestras funciones.

doc.jpg

PDT puede (al reconocer un bloque PHPDoc) autocompletar las directivas de PHPDoc con simple escribir un @ (el inicio de una directiva PHPDoc).

task.jpg

Podemos gestionar las Tags (etiquetas) que usaremos para marcar nuestras “tareas” (por ejemplo TODO), al agregar un comentario con dicha etiqueta (ej: //TODO: terminar esta funcion) PDT generará la lista de tareas pendientes de la aplicación.

task2.jpg

Y generar la lista de “tasks” que son las tareas pendientes de la aplicación.

Página Oficial: http://www.eclipse.org/pdt/ 

Como verán, no necesitamos conformarnos con un “simple editor de texto” (he visto gente trabajando con gedit, sin recordar las nefastas consecuencias de las “copias de seguridad” que hace gedit y varios editores bajo gnome y kde) cuando contamos con par de herramientas que pueden no solamente servirnos de editor de código, sino como un completo administrador de proyectos para PHP.

Si alguien es amante de las recomendaciones personales, en mi caso uso ambos, cuando necesito dedicarme exclusivamente a programar (y de repente a escuchar música) sin más nada, puedo usar Eclipse, que aunque es pesado, como hemos visto posee una y mil características que lo hacen un IDE muy util (y hasta necesario); si voy a trabajar varias aplicaciones a la vez (cssed para editar hojas de estilo, preview en el browser (swiftfox) y una serie de aplicaciones más abiertas, evidentemente me decanto por openKomodo.

Pero la decisión queda en ustedes …

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 17 septiembre 2007 en Cultura Libre, Linux, PHP, PlanetaLinux, Programacion. Añade a favoritos el enlace permanente. 6 comentarios.

  1. Si tienes problemas con php en eclipse, podrias usas phpclipse para php, y aptana para javascript, css, y xhtml, y todo con autocompletación.
    http://www.aptana.com/

    Y si quieres usar aptana pero con tu configuración actual de eclipse, instalalo como plugin.
    http://www.aptana.com/docs/index.php/Plugging_Aptana_into_an_existing_Eclipse_configuration

    Esa configuración lo convierte en Eclipse on Steroids🙂

  2. Eclipse PDT es mucho más que phpeclipse (al fin y al cabo, es PHPEclipse pero con algunas cosas más agregadas por Zend Framework); es mi IDE por defecto (aunque uso Komodo cuando quiero abrir “ràpidamente” un archivo); en este caso Komodo en entorno gráfico a reemplazado a vim en muchas cosas.
    Aptana ya la he usado desde hace bastante tiempo; ve un articulo (review) de hace algun tiempo aqui:
    http://www.jesuslara.com.ve/blog/2006/12/08/aplicaciones-interesantes-aptana-ide-iv-y-final/

  3. Usando Eclipse PDT no puedo crear un nuevo proyecto con PHP , estoy usando Ubuntu 7.10 tengo bien instalado el php para usarlo con symfony , a la hora de crear un nuevo proyecto , no se muestra la opcion de crear proyecto php , he revisado en algunas de las configuraciones y no he encontrado algun problema.Si alguien ha tenido este problema antes por favor que me de respuesta.Saludos

  4. Lo instalaste desde repositorio?, no creo que Eclipse PDT esté como repo en ubuntu; tengo entendido que está SDT y el PDT lo debes agregar como “plugin” aparte; luego te vas a la sección de “Workspaces” y activas a PHP como un Workspace; luego de tener a PHP como Workspace es que puedes crear proyectos PHP; antes no.

  5. Amigos…

    He instalado Eclipse + PDT desde eclipse.org y desde Zend…
    ademas he instalado Aptana… lo que no logro hacer es activar la perspectiva php como recomiendan todos los video, tutoriales y podcast…

    espero que me puedan ayudar,,,

    un abrazo y muchas gracias x la info… muy util!!!!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: