Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
aPHP - Una especie de "plantilla de aplicaciones" para PHP

Hola,

Hace tiempo que no hablaba de Loturak... ¿alguien se acuerda? Y el caso es que no voy a volver al tema sino es para decir que desde que dejé el proyecto tengo una espinita clavada en mi corazón, como dice la canción.

Desde entonces (y acaso desde antes), aunque sin dedicarme completamente a ello, sino es en estas últimas semanas, estoy preparando una especie de "plantilla base" de la que partir para crear alguna aplicación similar a Loturak... o quien sabe, algo igual pero con distinto nombre.

No es un "framework" lo que estoy llevando a cabo, porque esta palabra me queda un poco grande, no nos vamos a engañar, sin embargo, parece que algo estoy logrando, me parece que no voy del todo desencaminado para lograr mis objetivos.

Y aquí es donde entráis vosotros, claro está, a quienes pido que echéis un vistazo (sin compromiso, tranquilamente, si os apetece y tenéis tiempo que perder...) al proyecto que me traigo entre manos, que he dado en llamar "aPHP", por "Aplicación PHP"... ¡qué original!

El asunto puede estar verde en algunos aspectos, sin embargo, llevo bastante tiempo trabajando en ello... y bueno, creo que ha llegado el momento de recibir todas las críticas que sea posible, de modo que pueda mejorarse el proyecto en base a ellas.

Así que, ¿qué os parece si le echáis un vistazo? Cualquier comentario, sugerencia, idea o consejo será bienvenido. Por otro lado publico el bicho como software libre, con una licencia libre, de modo que si podéis sacar provecho a lo que está hecho... pues estupendo.

Una de las cosas que le faltan a "aPHP" es cierta documentación, sobre todo, relativa a la instalación (creación de la base de datos que es preciso utilizar), a algunas características del proyecto a tener en cuenta, en fin, de este aspecto tengo todavía que ocuparme.

Aunque se incluye documentación generada de forma automática a partir del código fuente de "aPHP", lo cierto es que habría que dejar algunas cosas claras para el posible usuario de este proyecto: ciertos conceptos como "URL de entrada", "Argumentos de las URLs", "Variables de las URLs", "Extensiones de aPHP", etc., etc.

Bueno. Yo tengo ya necesidad de que alguien eche un vistazo al código fuente y al proyecto en general, y así pienso que puedo dejar lo que digo que aún falta (entre otras cosas) para más adelante, independientemente pero también posiblemente influído por lo que vosotros podáis aportarme.

Y no digo más, que ya está bien. Disculpad el rollo.

Podéis descargar la versión 0.1 de "aPHP" desde el Directorio de archivos del ClubDelphi. Buscad el archivo: "[php]-aphp.zip".

¡Muchas gracias a todos de antemano!
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 16-05-2007 a las 12:31:45.
Responder Con Cita
  #2  
Antiguo 16-05-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola dec,

me parece genial tu idea.
Pero tengo un problema: como coñ.... se accede al Directorio de archivos del ClubDelphi. Ya que no hay ningún acceso desde la web y no encuentro la URL.
Y como Emilio no da señales de vida, no podemos pedirle que ponga un acceso al directorio para que podamos acceder directamente.

Saludos y a ver que tal el bicho éste que te ha salido
Responder Con Cita
  #3  
Antiguo 16-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Ops... ha sido un fallo mío. Había escrito el mensaje en el bloc de notas y no había incluído la URL del Directorio de archivos del ClubDelphi. Respecto del acceso al directorio mediante algún enlace... puede que no sea mala idea, no.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 16-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¡Qué exitazo, oigan! Jo, jo, jo...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 16-05-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola David,

Yo ya bajé el código, vi un crédito totalmente injustificado e incluso lo "instalé". Pero es que la verdad no entiendo de qué va. Quizá si comentas un poco cuál sería la idea general, o incluir un ejemplo mínimo.

// Saludos
Responder Con Cita
  #6  
Antiguo 16-05-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Yo ya lo baje también, pero han de perdonar mi ignorancia, como lo instalo, que necesito para instalarlo. Lo demás, pues ya roman lo ha expresado.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 17-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¡Así que estáis ahí! Gracias, gracias.

Bueno. Es el caso que tengo que preparar aún el archivo "leeme", que ha de incluir información acerca de qué es y para qué puede servir aPHP... tal vez a alguien además de a un servidor, si es que al cabo termino haciendo algo "sobre" aPHP.

Y ahí está parte de la historia: aPHP no es "nada" de por sí... pretender servir como cimiento de alguna aplicación que realmente tenga alguna utilidad. En realidad quisiera opiniones respecto de dichos cimientos: no de ninguna aplicación, porque aPHP no es ninguna aplicación en concreto.

Pero de todos modos lleváis razón. De hecho quisiera preparar una aplicación a modo de ejemplo, con alguna utilidad, y que se base en aPHP. Ahora mismo lo que podéis descargar son los propios cimientos, o sea, ninguna aplicación en concreto.

¿Qué se puede hacer ahora mismo, tal cual está el asunto? ¿Qué podéis ver vosotros? ¿Cómo podéis verlo? Bueno. aPHP no precisa de ninguna instalación. Únicamente hemos de situar los archivos que se encuentran en el directorio "/www/" en el "htdocs" de nuestro Servidor Web.

Eso sí, es preciso que hagáis uso del archivo "/sql/aphp.sql", de modo que creéis en MySQL una base de datos que ahora mismo sólo contiene una tabla: base para los usuarios registrados en la supuesta aplicación que haga uso de aPHP. Esto sí es preciso: la base de datos ha de estar disponible.

A continuación tenéis que editar el archivo "/config.php". Son las cuatro o cinco primeras constantes que ahí se definen (está indicado en el archivo) las que tenéis que editar para que aPHP pueda utilizarse, para que podáis probarlo, vaya. Si necesitáis en este punto de alguna ayuda podéis comentarlo por aquí.

Ahora bien, una vez "instalado" aPHP... ¿qué se supone que podéis ver ahora mismo en funcionamiento? Ahora mismo hay disponibles cuatro extensiones o apartados en aPHP. Podéis comenzar por la URL de entrada principal, es decir:

Código:
http://localhost/aphp/
Supongiendo que "aphp" está en el directorio raíz del Servidor Web y que dentro del directorio "aphp" están contenidos los archivos que se encuentran en el directorio "/www/" que podéis encontrar entre los que descargáis.

Esa sería la URL principal, que se encarga de mostrar la portada de la aplicación. Podréis ver que es posible cambiar el lenguaje de la interfaz de la aplicación, así como el estilo de la misma: podréis ver, en definitiva, que "aPHP", aparentemente, funciona.

Otras URLs que podéis probar ahora mismo, correspondientes con extensiones (apartados) existentes ya en aPHP:

Código:
http://localhost/aphp/entrada
aPHP se encargará de imprimir el apartado de entrada a la aplicación, que presenta un formulario HTML desde el que podréis autenticaros como usuarios. Cuando creáis la base de datos (mediante el archivo "/sql/aphp.sql") se inserta el usuario "administrador" con la contraseña "administrador".

En este apartado se puede ver cómo trabajar con formularios en aPHP, cómo puede accederse a las variables de entrada, etc.

Otro apartado disponible se accede mediante la URL:

Código:
http://localhost/aphp/salida
Y este apartado se limita a "sacar" del sistema a un usuario previamente autenticado.

Existen también los apartados (o extensiones, mirad en el directorio "/ext/") "estilo" y "lenguaje", empero, estos no tienen salida alguna, sino que son Script que se usan para cambiar el estilo y el lenguaje de la interfaz de la aplicación.

Podréis comprobar que cualquier otra URL, es decir, por ejemplo:

Código:
http://localhost/aphp/roman
Os llevará al apartado de usuarios de la aplicación. Independientemente de que "roman" está registrado o no. Es el apartado "usuarios" (Script "/ext/usuarios.php") quien habría de saber qué hacer en caso de que "roman" no correspondiera a un usuario registrado en la aplicación.

Esto último significa que cada usuario registrado en la aplicación contará con su propia URL, por decirlo de algún modo. ¿Os acordáis de que en Loturak podía accederse a los apartados de los usuarios de este modo, más menos?

Código:
http://www.aplicacion.com/?usuario=roman
Pues bien, en aPHP la URL anterior se convierte en la siguiente:

Código:
http://www.aplicacion.com/roman
Pero no sé si debo seguir hablando y hablando sin parar... no quisiera aburrir a nadie. Efectivamente, tal vez debería haber "presentado" una aplicación real y en funcionamiento, y luego tal vez haber dicho "pues se basa en una cosa que se llama aPHP"...

Supongo que no pude aguantar más porque llevo un par de semanas (como mínimo) liado con este asunto... casi, casi, podría decirse que tenía necesidad de "sacarlo de mí", de dárselo a conocer a otros, y sobre todo a otros que pudieran decirme algo al respecto.

Bueno. No me enrollo más. Si necesitáis cualquier información comentadlo por aquí y veremos qué puede hacerse.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 17-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En pocas palabras... en definitiva, lo que podéis hacer (que no sería poco) es echar un vistazo al código fuente de aPHP. Tal vez sorprenderos con algo extraño o que no os parezca adecuado. Quizás comprobar cómo funciona aPHP "por dentro", hacer alguna que otra prueba... qué sé yo. He de reconocer que ahora mismo no se puede pedir más.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #9  
Antiguo 17-05-2007
semptrion semptrion is offline
Miembro
 
Registrado: abr 2007
Posts: 112
Poder: 18
semptrion Va por buen camino
Un proyecto muy interesante

Hola David:

Aquí estamos otra vez para darnos una mano en lo que se pueda. He revisado (muy de pasada por cierto) el código del aphp y ya he preparado algunos comentarios.

Respecto de la idea y de la consecución de ésta, te auguro el mejor de los éxitos.

Respecto de lo solicitado por ti, estas mis observaciones, en un plano general.

Observaciones de forma:
  • No se muestran convenciones en la codificación.
    • Demasiadas deficiencias en cuanto a la longitud de las líneas, tanto en los comentarios como en el propio código
    • El uso del espacio en blanco es arbitrario.
    • La identación es aleatoria.
    • No existe una regla evidente para la apertura o cierre de llaves.
  • El pronunciado uso del spanglish (p.e. un método llamado AddCabecera)
  • No está especificada la versión del php.
  • En los comentarios no existe el versionamiento (aunque la documentación muestra reglas claras y ha sido cuidadosamente elaborada, supongo que para utilizar phpDocumentor)
  • Uso indistinto de comillas y apóstrofes para contantes literales.

Observaciones de fondo:
  • (Diseño) La profunda dependencia con la estructura del sistema de archivos (p.e. header('Location: ../')) hace que necesariamiente el archivo se encuentre dependiente del directorio raíz en el entorno web!
  • (Diseño) El manejo de errores es espontáneo y no sigue la codificación de errores del protocolo (http 1.0 ó http 1.1)
  • (Seguridad) La salida de los programas es indefinida. Se utiliza la cláusula exit y debería(?) utilizarse die. Si es que el programa nada más hará.
  • (Diseño) Existe una mezcla entre el código php y el código html
  • (Diseño) Existe una dependencia de los atributos en el código html generado desde el php (p.e. captcha.class.php líneas 86 a 91)
  • (Seguridad) Existe una separación entre los archivos de constantes de una clase y de la clase que usa esas constantes.
  • (Diseño) Dependencia del motor de base de datos mysql (p.e LIMIT en consultas.inc.php)
  • (Seguridad) Uso de cookies para la autenticación
  • (Seguridad) Definición del modo desarrollo y modo producción mediante artilugios como saber si el servidor es localhost.
  • (Diseño/Seguridad) La arbitrariedad en el uso de variables globales
  • (Funcionamiento) No existe la posibilidad de portalizar las aplicaciones ni siquiera de incluirlas dentro de otras.
  • (Seguridad) No existe la posibilidad de generar roles o diferentes niveles de acceso.
  • (Seguridad) La configuración del archivo .htaccess puede tener resultados imprevistos en Windows, ya que usa cláusulas para linux (p.e. enlaces simbólicos). Habría que definir qué es lo que hace cada línea introducida en el .htaccess.
  • (Seguridad) El archivo de configuración define parámetros, pero no especifica funcionamiento.

Al realizar las observaciones precedentes, no he pretendido revisar la lógica de los métodos (ni el diseño de las clases), sino empezar por algunas líneas base que permitirían el crecimiento del software y, por supuesto, su uso.

Entre las observaciones generales, quiero resaltar el tema de la construcción del código en sí. Si bien existe mucha preocupación por la documentacion, no encuentro preocupación por el mantenimiento del código; es decir, no se ven convenciones en la codificación que puedan ser utilizadas por otros programadores o por robots. En el tiempo, será más fácil reemplazar el código que entenderlo.

Esta situación se agrava por la mezcla entre el código php y el código html (y el código css y el código javascript) y el despliegue "inmediato" y oportunista. Si es invocado un método, éste desplegará datos, aún cuando luego deban ser (recién) enviados los encabezados.

Definir si los errores deben ser mostrados dependiendo de si es localhost resulta muy doméstico. Es mejor pensar en un modo de desarrollo y otro de producción, donde el modo es un estado del sistema y no una condición ni una situación.

La configuración establece los parámetros de funcionamiento del sistema, pero como un ente aislado de la propia configuracion del php, del apache y del sistema operativo. Así, el tema de la codificación, de la región o del magic quotes pueden afectar al funcionamiento, porque "variaron de lo que pensábamos", lo que resulta inadmisible en términos de un lanzador de aplicaciones o plantilla de aplicaciones.

Ahora, los demás temas (incluyendo el de la licencia Affero GPL o el del tema de las cookies) son totalmente tuyos y será una decisión que deberás cargar el resto del proyecto.

Sin embargo, creo que deberías revisar más el asunto de la reutilización de código que, de mejor manera (y con mejor licencia GPL) ha encarado temas como el manejo de mail. Te recomiendo des un paseo por http://pear.php.net o por http://pecl.php.net/ y que también revises http://framework.zend.com/

Para las convenciones, puedes adoptar alguna (como la de PEAR) o tomar ideas de otras (p.e. http://java.sun.com/docs/codeconv/).

Me siento inclinado a aplaudir el hecho que hayas previsto la posibilidad de tener una aplicación multiidioma; creo que estás en el momento de pensar en temas como el de la zona horaria y diferentes codificaciones (actualmente usas utf-8 para todo).

Finalmente, rescatar el hecho que tu código está en nuestro idioma. Sin embargo, EN LA MAYORÏA de los temas específicos ya se han hecho esfuerzos mucho más productivos (PEAR, PECL) que, si bien han producido comandos, éstos son como comandos con esteroides sin ton ni son. Ahí es donde tu concurso y esfuerzo puede ser mucho más enriquecedor: en establecer las reglas del juego para una plantilla de aplicaciones y su mejor empleo.

Saludos.

Última edición por semptrion fecha: 17-05-2007 a las 22:28:34.
Responder Con Cita
  #10  
Antiguo 17-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Agradezco tus comentarios semptrion. Los agradezco todos, aunque algunos no los llegue a entender bien.

Quisiera decir que bueno,... tal vez esta "cosa" no vaya a ir a ningún sitio. Si yo consiguiera escribir alguna aplicación basándome en ella... yo creo que podría darme con un canto en los dientes, como suele decirse.

Ahora bien, se trata de presentar lo que va hecho, de darlo a conocer, precisamente, para recibir todo tipo de críticas. Y eso es lo que has hecho y te lo agradezco otra vez.

Pero, chico, ¡parece haber tantos posibles problemas que no sé muy bien por dónde empezar, ni si, llegado el caso, merece la pena afrontar tantos problemas como parecen existir! ¡¡No valiera más comenzar de cero!!

Prometo revisar los puntos que refieres y si encuentro que tengo que añadir algo o decir algo al respecto lo comentaré por aquí. Para empezar voy a plantearme, más o menos seriamente, el uso de plantillas, de modo que evitemos el uso de PHP y HTML juntos (pero no revueltos, ¿o sí?).

No sé. Si se me ocurre algo más... lo diré. Pero muchas gracias por tus comentarios semptrion.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #11  
Antiguo 17-05-2007
semptrion semptrion is offline
Miembro
 
Registrado: abr 2007
Posts: 112
Poder: 18
semptrion Va por buen camino
y si empezar de cero se trata...

Siempre he pensado que trabajar en equipo, en una filosofía de open source puede ser más productivo para los participantes y más útil para la comunidad.

No se. Ahora, viendo el esfuerzo y desprendimiento tuyo, quizá podríamos empezar a generar esa idea fantástica que tienes, pero ya desde cero, como un proyecto open source con entrada formal en sourceforge y todo.

Podríamos ir discutiendo en este foro las ideas, sus pros y contras (y las razones de tales y cuales) y obteniendo conclusiones al respecto para, después de un tiempo, generar un documento de especificaciones y meterle manos a la obra.

Esas discusiones podrían ser mucho más relevantes para la gente que lea el foro, ya que tendrían el porqué de las cosas de primera mano. Paralelamente, mucha gente podría ir avanzando con nosotros paralelamente en sus propias cosas. Y en caso de presentarse algún nuevo problema, quizá podríamos discutir e incluir su especificación en el desarrollo.

No se. La condición, la prerrogativa es que exista un equipo con el que discutir y avanzar. Gente que las pasó por muchas y gente que quiera aprender.

Así, todo lo planteado no se ve tan lejano. Y nunca podremos ser demasiado codiciosos.

Saludos
Responder Con Cita
  #12  
Antiguo 20-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno... no voy a comentarlo por aquí cada vez que suceda, porque no quiero caer pesado, empero, he actualizado "aphp" en estos días... y bueno, sólo quería que supiérais que podéis descargar siempre la versión más actualizada desde el Directorio de archivos del ClubDelphi, donde me estoy encargando de dejar una copia de "aphp".

¡Hasta pronto pataliebres!
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 20-05-2007 a las 02:59:05.
Responder Con Cita
  #13  
Antiguo 20-05-2007
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por dec
Para empezar voy a plantearme, más o menos seriamente, el uso de plantillas, de modo que evitemos el uso de PHP y HTML juntos (pero no revueltos, ¿o sí?).
Mirate este link... http://templatelite.sourceforge.net/



Hasta Luego .-
__________________
No todo es como parece ser...
Responder Con Cita
  #14  
Antiguo 20-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Gracias Lucas. No sé porqué me da que las plantillas no son lo mío... que no acabo de verlo para la forma en que suelo hacer las cosas, ahora, prometo que en cuanto termine de escribir esto voy a echar un vistazo a Template Lite. Así que gracias de nuevo Lucas.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
Ventana MDI, "Siempre visible" y "Pantalla completa" ixMike API de Windows 7 11-04-2007 18:36:55
Aplicaciones "en producción" hechas con Lazarus rretamar Lazarus, FreePascal, Kylix, etc. 42 06-03-2007 01:04:16
¿cuál es mejor: "close" o "application.terminate"? unreal4u Varios 5 05-03-2007 11:01:19
"ChequeaEsto" elegido el futuro "Killer CLubDelphi" mamcx Noticias 51 31-10-2006 20:56:32


La franja horaria es GMT +2. Ahora son las 03:02:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi