2010-04-08 5 views
6

Tengo una cantidad significativa de bibliotecas de objetos escritas para PHP 5.2.5, y estoy tratando de sopesar los beneficios de adaptarlas para espacios de nombres. No tengo ninguna preocupación sobre la versión PHP del servidor en este momento, ya que cualquier máquina relevante está bajo mi control, por lo que no me preocupa la compatibilidad con versiones anteriores. En cuanto a la estructura de las bibliotecas, utilizo la misma convención que Zend Framework, (Library_Module_Class_Name, por ejemplo), así que actualmente no tengo ningún conflicto de nomenclatura interno para las bibliotecas. Anticiparía mover las partes de Biblioteca y Módulo de esos nombres de clase a espacios de nombres.Buenas razones para migrar bibliotecas de PHP a espacios de nombres

Dicho esto, si el código ya está escrito, ¿hay alguna buena razón para pasar a los espacios de nombres?

Gracias, Joe

+1

Bueno, * si * desea migrar y su código sigue la convención de nomenclatura ZF, eche un vistazo a sus herramientas que hacen la conversión automáticamente: http://blog.calevans.com/2010/03/27/zends-new-namespace-converter/ – Gordon

Respuesta

5

Si está buscando razones técnicas, no creo que haya nada que justifique el costo de un gran cambio de código. Hasta donde yo sé, los espacios de nombres no confieren ningún tipo de ventaja técnica o beneficio de rendimiento. Es más fácil escribir funciones de carga decente para un conjunto bien estructurado de código PHP de espacio de nombres, pero aparte de eso, no puedo pensar en nada que sea una razón definitiva para comenzar a convertir. En todo caso, es probable que haya un poco de sobrecarga para la resolución del espacio de nombres (los puntos de referencia estarían bien para ver, pero estoy seguro de que es una diferencia insignificante).

Dicho esto, recientemente comencé a actualizar un conjunto antiguo de códigos para usar espacios de nombres, y estoy disfrutando de la capacidad de organización que proporciona. El código tiene una tendencia a ser un poco más detallado, pero cambié los IDE a Netbeans 6.8 al comienzo de la actualización, y el autocompletado se ocupa de la tediosidad de importar y hacer referencia a espacios de nombres. El soporte del espacio de nombres me impresionó, en realidad. Ha hecho todo el proyecto bastante fácil, y en realidad, me atrevería a decirlo, es divertido.

+0

¿Así que el espacio de nombres realmente ha hecho que su código * more * verbose? ¿Es esto solo una cuestión de las declaraciones de "uso X", o algo más? ¿Puedes darme un poco más de detalle sobre eso? ¡Gracias! –

+0

Oh, claro. No utilicé un esquema de nombres estilo Zend antes, así que eso es probablemente una gran parte de eso. Tenía una compleja función de carga automática que resolvería rutas de archivos basadas en el esquema de nombres, pero no todo era guiones bajos. Entonces ahora, en lugar de '$ x = new Person()', estoy haciendo cosas como '$ x = new \ Package \ People \ Person()' (ejemplo artificial). A veces es un poco difícil de leer, pero me estoy acostumbrando. Netbeans 6.8 autocompletará los espacios de nombres mientras escribe, por lo que si empiezo a escribir 'new Pers ...' se da cuenta. También creará declaraciones de 'uso' en la parte superior para usted también, así que me está gustando. – zombat

1

Sí, su objeto no es un objeto A Namespace_Prepended_To_An_Object. ¿No preferirías trabajar con un controlador en lugar de un Zend_Controller? Este último simplemente se ve ridículo.

+2

Siento que esto no es una respuesta a la pregunta .... – mattbasta

+2

Este es el punto de los espacios de nombres en primer lugar. – blockhead

Cuestiones relacionadas