Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Programando en PHP

Programación
Por HnZeKtO
departamento php-de-que-si , Sección Desarrolladores
Puesto a las Sun Jul 13th, 2003 at 11:03:16 AM CET
PHP es un lenguaje de script orientado a la programación web muy difundido gracias a su licencia libre. Junto con este lenguaje suele ir muy relacionado el SGBD MySQL, que juntos hacen una gran pareja y de ellos han surgido muchos CMS, sistemas de portal o Weblogs como PHPNuke, Postnuke, GeekLog, Drupal o e107, gracias a los cuales cualquiera puede tener una web y publicar en internet lo que le plazca.

La cuestión no es esa, la cuestión es aprender a hacer todo esto programando en PHP y siguiendo unas reglas básicas de programación soportadas en PHP como la Programación Orientada a Objetos, patrones, el Modelo-Vista-Controlador (MVC), hacer uso de plantillas,...

 


Para empezar lo primero es coger documentación sobre PHP y sobre todo:
- El software, basta con un servidor web, por ejemplo Apache, con el parser de PHP y un SGBD como MySQL o PostgreSQL, todos ellos con versiones para Linux, *BSD, Solaris, Unixes y el "otro sistema operativo".
- Documentación Oficial de PHP.net. Completísima la documentación propia con los detalles de toda la biblioteca de funciones soportadas. Ideal para usar como manual de referencia.
- Tutorial de PHP y MySQL. Un buen tutorial para empezar a conocer el mundillo.
- Manual de PHP en Webestilo. Otro manual bastante completito para empezar a crear pequeños scripts en PHP.

Una vez que se conoce la sintaxis del lenguaje y las funciones básicas, lo suyo es empezar a profundizar en desarrollos más avanzados, y por supuesto, llevando a cabo alguna metodología aplicada a PHP.

- Uso de templates (plantillas). PHP por definición es un lenguaje de script que se incluye entre el código HTML mediante las etiquetas <?php y ?>, esto puede llegar a hacer insostenible el mantenimiento de un sitio web cuando se quiere modificar el diseño, para ello existe una serie de clases para separar el código HTML del PHP. Smarty es el sistema de plantillas por excelencia, forma parte del grupo que desarrolla PHP. O también otras como SmartPHP que permiten la inclusión de sentencias de selección o bucles en las plantillas.

- El paradigma Modelo-Vista-Controlador consiste en separar el diseño de una aplicación en 3 niveles, uno relacionado con la presentación gráfica (Vista, en nuestro caso HTML, CSS e imágenes), otro que se encarga de como se guardan los datos (Modelo, Base de datos, XML, ficheros,...) y el último el que se encarga del acceso a esos datos, tratamiento y lógica, qué se hace con los datos (Controlador, que serían clases independientes, hacia las que se harán las peticiones). Este paradigma se puede conseguir en PHP usando orientación a objetos o no, aunque la verdad, se aprovecha mejor con la POO.
Para implementar el paradigma no vendrá nada mal este artículo de phppatterns.com para empezar a tomar contacto con la idea. Esto claro está, es para hacérselo todo uno mismo, pero también se pueden usar clases predefinidas como éstas:
  • php.MVC. No es más que una implementación de los Jakarta Struts, que implementa el MVC para Java. Está aún muy verde y en fase de desarrollo, pero promete. Tiene como principales características ser orientado a objetos, integración de base de datos vía PEAR::DB, ficheros de configuración XML, seguridad de las aplicaciones (solo hay un punto de acceso). Los únicos requisitos que necesita es un parseador XML (p.e. expat).
  • ADODB. Esta implementación del ADO de ASP, hace abstraer completamente el sistema gestor de base de datos de la aplicación que haga uso de él. Esto ya nos ahorra el implementar la M del Modelo-Vista-Controlador, y si le añadimos algún sistema de plantillas, ya tenemos la V, y solo faltaría picar la parte del controlador respectiva de la aplicación. Además ADOdb no sólo ofrece abstración del SGBD, sino que además tiene soporte de gestión de sesiones de PHP4, sistema propio de metatipos para abstraer los tipos de cada SGBD, o añadidos externos como parsers de XML. Por supuesto, para hacer uso de esa abstracción habría que tener una serie de consideraciones a la hora de desarrollar, ya que no todos los sistemas tienen soporte de todas las funciones SQL92, o por otro lado, tienen formas distintas de implementar extensiones del SQL estándar. Para hacernos con esos hábitos existe cantidad de documentación en la web de ADOdb, incluído este interesante artículo que nos explica las claves para realizar código SQL portable con ADOdb.
  • Patrones en PHP. Es otra de las características heredadas de la programación en Java (y la POO en general), el uso de patrones para el desarrollo. Los patrones no son más que una serie de operaciones que se suelen repetir comúnmente al desarrollar, para ello se suele crear un método que se usará cada vez que sea necesario.
¿Y qué sería de un programa sin una buena documentación? Vale que documentar es lo que menos nos suele gustar a los programadores, pero esto también nos ayudará para si en un futuro queremos hacer modificaciones de algún desarrollo anterior, y ya no hablemos si estamos haciendo un desarrollo libre, si queremos que la gente colabore, hay que ponérlo lo más fácil posible. Para ello, ¿que tal si usamos algo similar al javadoc de Java? Pues eso es lo que hace phpDoc, genera documentación html a partir de los comentarios que incluimos nosotros en el código.

Ya por último, lo que faltaría sería un entorno de desarrollo, vale que existe ViM y Emacs, pero nunca está de más conocer algún IDE con posibilidades de resaltado de sintaxis, debugger,... como KDevelop o Eclipse. Y si a esto se le añade el mayor repositorio de PHP [hotscripts.com] o este repositorio de clases [phpclasses.org], o webs como zonaphp.com o DevShed.com, hacen de PHP quizás el lenguaje de programación web más usado en internet, sobre todo gracias a que suele ser una pareja inseparable del servidor web Apache, el más usado en internet.
< Linux en la X-Box (13 comments) | Escribiendo con el ordenador (II) (15 comments) >
Enlaces Relacionados
· PHP
· MySQL
· PHPNuke
· Postnuke
· GeekLog
· Drupal
· e107
· Apache
· parser de PHP
· PostgreSQL
· Documentación Oficial de PHP.net
· Tutorial de PHP y MySQL
· Manual de PHP en Webestilo
· Smarty
· SmartPHP
· no
· este artículo de phppatterns.com
· php.MVC
· Jakarta Struts
· ADODB
· gestión de sesiones
· parsers de XML
· cantidad de documentación
· interesante artículo
· Patrones en PHP
· phpDoc
· ViM
· Emacs
· KDevelop
· Eclipse
· repositorio de PHP
· repositorio de clases
· zonaphp.com
· DevShed.com
· usado
· usado[2]
· More on Programación
· Also by HnZeKtO

Encuesta
¿Y tú que usas para programación web?
· PHP, ¿acaso hay otra cosa? 50%
· Perl, si, soy masoca, que pasa. 1%
· Python, ¿es que nadie usa Zope? 12%
· Java, o sea J2EE (JSP, Servlets, EJB). 7%
· HTML pelao y mondao. 10%
· ASP, es que he llegado aquí y no se como salir. 3%
· ColdFusion, Flash,.... todo Macromedia Powered. 1%
· ¿Programación web? Eso es de nenazas. 1%
· Yo uso C hasta para programar el video. 9%

Votos: 303
Resultados | Otras Encuestas

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Programando en PHP | 22 comentarios (20 temáticos, 2 editoriales, 0 ocultos)
phpDocumentor 1.2.1 (4.00 / 2) (#9)
por HnZeKtO a las Sun Jul 13th, 2003 at 08:43:10 PM CET
(Información Usuario) http://www.mundolinux.net/

He encontrado otro "documentador" de clases del estilo de javadoc, phpDocumentor, que tiene como principales características generar la documentación en distintos formatos, HTML, HTML con plantillas Smarty, CHM (la ayuda de Windows) o PDF.

Ellos mismos ponen en práctica en sus proyectos, se pueden ver los resultados en el manual de usuario o en la guía de uso para crear documentación

Cayetano


Entornos de PHP (4.00 / 2) (#16)
por sinner a las Tue Jul 15th, 2003 at 03:53:04 PM CET
(Información Usuario) http://www.escomposlinux.org/sinner/

Pues yo uso Anjuta habitualmente (para tener todo el proyecto abierto), junto a vim (en serio, para esas modificaciones rapidas) y QuantaPlus (mucho menos, es verdad).

KDevelop para PHP? Mmmm, tendre que probarlo, ya que uso KDE.

Nota: el Anjuta (al menos desde anjuta-1.0.1 ) tiene un autocompletado que va de maravilla. Disponible en Mandrake, claro :P

Alguien conoce otros entornos? Que entornos de desarrollo de PHP utilizais?


Salut,
Sinner


--
Sinner from the Prairy
Pogüered bai Mandrake
BOFHers Syndicate http://bofhers.org


Pregunta sobre templates (3.00 / 2) (#3)
por bac a las Sat Jul 12th, 2003 at 03:06:17 PM CET
(Información Usuario)

Hola!

Gracias a tu articulo he descubierto lo de los templates, en PHP se pueden hacer tantas cosas que es imposible saberlo todo.

Me he leido las paginas que has enlazado y no acabo de entender que ventaja suponen los templates frente a utilizar funciones para hacer lo mismo. Yo hasta ahora (por falta de conocimiento de los templates) he venido usando funciones que hacen (pej) lo que se muestra como ejemplo en la web de SmartPHP que has enlazado.

Que ventajas tienen los templates sobre funciones que hagan inclusiones de codigo con los parametros que se le pasen?

Gracias :-)



Error en link (2.50 / 2) (#4)
por bac a las Sat Jul 12th, 2003 at 03:40:11 PM CET
(Información Usuario)

Hola! El enlace a phpDoc diria que esta mal (me he mirado la pagina por encima solo). Buscando por phpDoc en sourceforge salen la tira de posibles (validas) soluciones :-) Cual es el que te ha gustado mas? :-)



¿masoca? (2.00 / 2) (#8)
por Draco a las Sun Jul 13th, 2003 at 03:50:20 PM CET
(Información Usuario)

¿por usar Perl? estás de broma. Precisamente ahora tengo que aprender PHP (con lo que tu artículo me viene de PM), y como enamorado de Perl me está costando hacerme con la sintaxis. Puedo reconocer cantidad de estructuras comunes pero hay que escribir el triple, y como todo el mundo sabe los programadores son vagos (además de otras cosas) :-)... En fin ¿algún manual de PHP para mach^H^H^H^H programadores Perl ;-)?

Por cierto, muy buen artículo. Me va a servir de mucho. Gracias

There are two major products to come out of Berkeley: LSD & BSD Unix. I don't believe this to be a coincidence.


 
Programando con objetos (none / 0) (#21)
por festuc (mi nick en el correo gratuito de google) a las Fri Oct 24th, 2003 at 06:05:51 PM CET
(Información Usuario) http://festuc.info

Estoy programando en php, pero no con los objetos, creia que estaran solo a partir de la php5
Y tengo dos consultas:
Como se describen las clases?
Como se pasan los objetos entre pagina i pagina?
Gracias



 
¿Y las otras opciones? (none / 0) (#22)
por jesusf a las Thu Oct 30th, 2003 at 10:04:00 AM CET
(Información Usuario)

Es que ya nadie programa en viejos lenguajes como "FORTRAN". Hace unos años no paraba de trabajar con este lenguaje (estaba haciendo cálculos numéricos masivos) y ahora parece que nadie lo está utilizando.

Tampoco he visto ninguna referencia a C++. ¿Pasa lo mismo que con FORTRAN solamente unos pocos años después de crearlo?



 
Programando en PHP | 22 comentarios (20 temáticos, 2 editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda