PDA

Ver la Versión Completa : Para quien pueda resultar de utilidad: Humm PHP framework


dec
04-03-2012, 18:20:14
¡Hola a todos!

Mucho tiempo sin pasar por la que fue, prácticamente, mi casa durante tanto tiempo... Bueno. El caso es que no vengo a pedir nada, sino a ofrecer algo. :D Se trata de un pequeño proyecto que no sé si merece el nombre de "framework" (desde luego, no, si lo comparamos con los pedazo de frameworks que hay por ahí), pero, que quiero compartir con vosotros. Tal vez pueda ser de alguna utilidad para alguien, bien utilizándolo tal cual, bien alguna de sus clases o algo, yo qué sé. :D

En fin, si queréis podéis echar un vistazo aquí: www.hummphp.com (http://hummphp.com/)

¡Saludos a todos! ;)

Casimiro Notevi
04-03-2012, 18:36:28
hummm.... a ver, a ver... ¡justo lo que necesitaba! :)
Algo sencillo para hacer webs simples con acceso a bases de datos :), tengo que probarlo.

A ver si te pasas más a menudo, que nos tienes abandonados :)

Casimiro Notevi
04-03-2012, 19:08:19
He llegado hasta aquí:

Humm rules!

Try the sample template: Click here! (http://192.168.1.111/humm/?sample)



Ya no sé hacer otra cosa, soy demasiado novato.

marcoszorrilla
04-03-2012, 22:21:58
Gracias DEC.

Un Saludo.

dec
05-03-2012, 00:49:04
Hola,

¡Gracias por vuestros comentarios Marcos y Casimiro!

Casimiro, echa un vistazo en la web, puesto que he añadido una "FAQ" que acaso te sea de utilidad.

Sea como sea, si crees que puede resultarte útil para algo, no dudes en contactar conmigo y trataré de ayudarte en lo que pueda. ;)

¡Saludos y muchas gracias otra vez!

P.D. Espero que a todos os vaya bien, como suele decirse. :)

Julián
05-03-2012, 19:25:16
¡¡Hombre, Dec!!

Me alegro, nos alegramos, de verte por aquí otra vez. Y ahora una crítica/sugerencia, espero que constructiva:

<strike>Me he puesto el hummy he seguido las instruccioens y no se muestra nada en la página, pero es que tampoco me entero de ná. Ni leyendo las faqs.</strike> Deberías poner algún ejemplo, aunque fueran sencillos, de manera que pudieran servir de punto de partida a borricos como yo.

EDITO: Si que funciona, y muy bién. El que no funciona soy yo, que estaba poniendo mal la url. Aunque los ejemplos vendrían muy bioen. Sobre todo uno con ajax.

Un saludo!!!

roman
05-03-2012, 20:43:47
Hola David,

Tú código se ve muy limpio y ordenadito y creo que es un excelente punto de partida para quienes buscan por donde empezar y no desean lidiar de entrada con un mounstruo con múltiples funcionalidades que sabe dios para qué son.

Una pregunta:

¿Cómo haces para depurar una aplicación que use humm usando el netbeans (http://netbeans.org/)?

Creo que sabrás que la pregunta no es tan simplona como parece (o sí lo es pero no me he enterado de na' :D).

Enhorabuena por el producto y por tu reaparición.

// Saludos

dec
06-03-2012, 00:29:29
¡Hola!

Julián, ceporro, es cierto lo que dices de los ejemplos, y, no es descartable incluirlos. Sin embargo, si necesitan ejemplos... malo. Y no porque estos sean malos, que no lo son, sino porque, como Humm es tan sencillo... debería entenderse más o menos sencillamente, o con lo que ya trae puesto.

Y es que ya viene con un ejemplo de sitio, que incluye dos "vistas" y dos "helpers", un par de archivos de estilo y otro "javascript". Partiendo de ahí, con los debidos conocimientos, no debería ser complicado armar un sitio web,... por supuesto que más o menos sencillo.

De todas formas es verdad que dichos ejemplos pueden ser más completos y espero que lo sean.

Román, maestro, mucho me temo que sé por dónde vas con lo de depurar la aplicación con NetBeans, y, aunque como sabrás Humm está hecho con NetBeans, si depende de ciertas URLs, simplemente, creo que no podra depurarse "normalmente".

Claro. Uno se para a pensar, y se dice, ¿no sería mejor olvidarse de las URLs del estilo...


http://www.yourhummsite.com/?mainView/secondaryArg


... y escribir algo, por otro lado nada complicado, como esto otro?


http://www.yourhummsite.com/?view=mainView&secondaryArg=1


Pero, enseguida me paro y me pregunto, ¿cuántas veces has necesitado depurar un sitio web con NetBeans? ¿Hasta qué punto es necesaria la depuración en un sitio web como el propio de Humm o similares? Y, de momento, decido quedarme con las primeras URLs.

Otra cosa es que dichas URLs, en principio buenas, bonitas y baratas, terminen por dar otro tipo de problemas, entonces tal vez tendría que repensar el asunto y tal vez para rectificarlo y tratar con URLs más normales. ¡Mira! Así ya se podría ya depurar con NetBeans. :D

No sé respondo a vuestras preguntas o qué, pero, ya sabéis que paro por aquí si necesitáis cualquier cosa. :)

roman
06-03-2012, 00:55:46
Pero, enseguida me paro y me pregunto, ¿cuántas veces has necesitado depurar un sitio web con NetBeans?

Bueno, yo nunca, desde luego, pues soy perfecto programando :D Sólo preguntaba por si alguien tenía tal necesidad exótica.

Ya en serio, sucede que quise cargar el humm en el netbeans para darme una mejor idea de cómo funciona, y al depurar para verlo paso a paso termina indicándome un Error 404 - Content not found.

Que miro con más detenimiento porqué sucedía esto y claro, que el xdebug agrega XDEBUG_SESSION_START=netbeans-xdebug al "query" de la url. Pero ahora que lo veo una segunda vez, creo que basta borrar la parte sobrante de la url después de la primera corrida.

De todas maneras me surge una duda. Al parecer, si añades un parámetro a una url tal como ?home, ya no la reconoce, digamos http://hummphp.com/?home&mood=happy

¿Qué pasa si debo usar otros parámetros? En general, ¿cómo se comporta con una petición GET, digamos con un formulario con método GET?

// Saludos

dec
06-03-2012, 01:57:48
Hola Román,

Es verdad que los depuradores y yo no nos hemos llevado nunca demasiado bien: de ahí la clase "Debug" que puedes encontrar en Humm. :) De todas formas, todavía podría preguntarme cómo es que no puedo indicar a NetBeans (igual sí que puedo...) la URL por donde quiero "depurar", no sé si me explico.

Es cierto que esta URL no produce el resultado esperado:

http://hummphp.com/?home&mood=happy

Pero, esta otra sí que lo produce:

http://hummphp.com/?home/&mood=happy

Tú podrías acceder a la variable "mood" como siempre. Por otro lado, es cierto que Humm no se lleva bien con los formularios con método "GET". Aquí estoy por decir lo mismo que he dicho sobre NetBeans, pero, no lo haré. Aunque sí diré que siempre es posible buscar alguna solución, si es que realmente necesitas usar este tipo de formularios: puedes procesarlos en la "home" del sitio (edito: no puede hacerse, ni siquiera en la "home" del sitio, según parece).

Claro, pareciera que esto de las URLs de Humm están cogidas con alfileres, y, es muy posible que así sea. Pero, lo cierto es que tienen una razón de ser, insisto que tal vez equivocada: se trata de no depender de archivos "htaccess", o de módulos "rewrite". Así Humm, en teoría, podría manejarse bien en diferentes servidores, puesto que no depende de ninguna característica especial de ninguno de ellos.

Otra cosa que igual no es descabellada, es, renunciando a URLs del tipo:

http://www.yourhummsite.com/?section

http://www.yourhummsite.com/?section/subsection

... simplemente usar las "antiguas" URLs, tal que:

http://www.yourhummsite.com/?section=name

http://www.yourhummsite.com/?section=name&subsection=name

Pero, otra vez más, me paro a pensar, y me digo, para mis necesidades, en los tres o cuatro sitios web que manejo ahora mismo, ¿uso formularios con el método "GET"? Y la respuesta es que no. Porque, vamos a ver, **abuelo**, ¿un formulario "GET" no se puede conformar mediante la URL correspondiente? Pues entonces. :D :D

roman
06-03-2012, 16:30:54
Porque, vamos a ver, **abuelo**, ¿un formulario "GET" no se puede conformar mediante la URL correspondiente? Pues entonces. :D :D

A ver, a ver, ¿cómo que abuelo? Eso sí dolió, ja, ja. :D Pero seguro hay algo de lo que me estoy perdiendo. ¿Un formulaio GET es cosa del pasado? Seguro que puedo conformar una URL, pero, ¿debe el usuario hacerlo el mismo? No sería más amable un formulario GET que lo haga por él. Pero quizá no estoy entendiendo lo que quieres decir.

De todas maneras, creo conveniente revisar eso de las urls. Tener como parte del framework algo listo para urls limpias me parece estupendo pero no a costa de interferir con usos más o menos estándar. ¿Has considerdo ponerlo como algo opcional? Hay CMS que usan urls tradicionales pero si el servidor se deja, dan la opción de traducirlas a urls amigables.

Bueno, tardé en contestar porque, ya sabes, a mi edad no puedo permitirme desvelos :D

// Saludos

dec
06-03-2012, 18:48:31
Hola Román,

No es que me guste del todo no dar soporte a los formularios GET. Lo que pasa es que es una especie de daño colateral al utilizar las URLs que se utilizan. Ahora bien, cuando digo que los formularios GET pueden suplirse con URLs "preparadas", me refiero a lo que se hace, por ejemplo, en Youtube. Para order los vídeos de diversas formas, no te hace falta rellenar ningún formulario, pero, sólo "pinchar" en enlaces. A eso me refiero: a que la información que puede pasarse desde un formulario GET puede hacerse también a través de un enlace.

Respecto de dejar al usuario elegir el tipo de URLs, o usar unas u otras en función del servidor, no me convence demasiado. ¿Por qué razón? Porque, de entrada tendríamos que no pensar en utilizar URLs "modernas", sino URLs "antiguas", y, sólo si fuera posible, hacer uso de algún "módulo rewrite" para usar las URLs "modernas". Ahora bien, Humm procura ofrecer dichas URLs "modernas" (con un pequeño truco, es verdad), sin necesidad de contar o esperar ningún módulo específico en el servidor. Si para esto perdemos los formularios GET... no me importa.

Otra cosa sería si perdiéramos también los formularios POST. Entonces sí que no quedaría más remedio que hacer algo al respecto. Pero, los formularios GET me preocupan menos, ya te digo, aun sabiendo que igual me equivoco...

¿Se ha tomado ya las pastillas abuelo? :D :D

Julián
06-03-2012, 20:12:43
Aqui el ceporro :D piensa igual que dec sobre el asunto de las urls. Es más, yo quitaria la interrogación, para poder escribir http://www.yourhummsite.com/aguan/apeich/ajarl/ajarenaor/awenipich directamente. Si la ...com/?aguan/ap...

En mi gestor lo hago así, y en la versión nueva tampoco necesito archivos htaccess. Y los formularios GET, pues que les dén. :)

¡Venga, a ver esos "examples for ceporries" :D :D !

roman
06-03-2012, 20:27:47
Es más, yo quitaria la interrogación

¡Anda! Y, ¿se puede saber cómo logras eso? Quitar la interrogación.

// Saludos

dec
06-03-2012, 21:30:58
¡Anda! Y, ¿se puede saber cómo logras eso? Quitar la interrogación.

// Saludos

Me apuesto algo a que usa poderes mágicos. :) :D

Este Julián... me va a hacer preparar un ejemplo más completo! :D


Y es que ya viene con un ejemplo de sitio, que incluye dos "vistas" y dos "helpers", un par de archivos de estilo y otro "javascript". Partiendo de ahí, con los debidos conocimientos, no debería ser complicado armar un sitio web,... por supuesto que más o menos sencillo.


:D :D

dec
06-03-2012, 22:05:59
Hola,

Se me ha ocurrido, que, a modo de ejemplo, podría servir el propio sitio de Humm... así que he adjuntado a este mensaje un archivo que contiene el directorio "site" del sitio web de Humm. Así que Julián ya puede copiar y pegar -tengo que hacer un ejemplo de esto también :D el directorio "site" que adjunto sustituyendo al que trae Humm consigo. De esta manera tendréis "en local" el sitio web de Humm y podréis echar un vistazo a las "vistas", los "helpers", el par de clases "auxiliares", cómo se puede "cambiar de lenguaje", etc. ;)

Julián
07-03-2012, 18:27:05
¡Anda! Y, ¿se puede saber cómo logras eso? Quitar la interrogación.


Perdón, perdón, no me fijé en el detalle de que hablaís de no usar un .htaccess.
Yo es que uso un .htacces con una regla como esta:
RewriteRule ^([a-z_0-9,\/]*)/?$ index.php [nc,l]

Para que entre todo al index.php y después cojo la url y la divido usando el "/" y cada string es un parametro.

En verdad ando bastante cegato últimamennte :cool:

Julián
07-03-2012, 18:30:51
Hola,

Se me ha ocurrido, que, a modo de ejemplo, podría servir el propio sitio de Humm... así que he adjuntado a este mensaje un archivo que contiene el directorio "site" del sitio web de Humm. Así que Julián ya puede copiar y pegar -tengo que hacer un ejemplo de esto también :D el directorio "site" que adjunto sustituyendo al que trae Humm consigo. De esta manera tendréis "en local" el sitio web de Humm y podréis echar un vistazo a las "vistas", los "helpers", el par de clases "auxiliares", cómo se puede "cambiar de lenguaje", etc. ;)


Voy a ver, voy a ver :D :D
a ver que tiene eso por ahí dentro. jeje

roman
07-03-2012, 19:01:06
Para que entre todo al index.php y después cojo la url y la divido usando el "/" y cada string es un parametro.


Pues sí, y, de hecho, puedes tomar lo que hay antes del ? como tus parámetros "limpios" y lo que haya después del ? como los parámetros de un GET normal. De esta manera, no pierdes una característica estandar del HTTP y tienes urls completamente limpias (sin un ? extraño).

// Saludos

Julián
08-03-2012, 20:59:47
He estado mirando el humm y sobre todo el ejemplo y tengo que decir que te puntuo con un 10 en una escala de 0 a 10.
Y es que lo que mas me gustaba de lo que había visto antes es el codeigniter, y el hum (despues de ver el ejemplo, ojo) es mucho mejor que el codeigniter, pues es mas sencillo de usar, se aprende a usarlo en unos minutos (o menos), no ocupa casi nada, es facilsimo de ampliar, por ejemplo para añadirle mas clases, y seguro que hasta es mas rápido.

Si lo hubiera conocido antes lo estaría usando para mis cosas, cosa que no consiguió el codeigniter, y estoy planteandome reescribir la nueva versión de mi gestor de contenidos para hacerlo usando humm, aunque no se si esto será demasiado traumático para todo lo que ya tengo hecho.
Cuando sea mayor me gustaría hacer las cosas así de bien organizadas, sencillas y claras. :)

En resumen, dec, que si de esta no te haces famoso es porque esta vida tan injusta y perra premia mas a los que medran que a los que trabajan.

Mi felicitación por un trabajo bien hecho, que además, funciona bien.

PD. Mándame el jamón ande tu ya sabes. :D

dec
09-03-2012, 03:50:46
Hola,

Gracias Julián, aunque, no creo que sea para tanto. ;)

He añadido una nueva sección al sitio web de Humm:

http://hummphp.com/?cases

Ahí puede verse otro sitio web que usa Humm:

http://neoplugins.com/

Lo he hecho durante el día de hoy. Es cierto que la mayoría de contenido e imágenes estaban ya disponibles en NeoPlugins v1.0, pero, el sitio web (sobre todo internamente) ha quedado mucho más recogido. Mucho más limpio el espacio del servidor. En fin, ahí queda por si queréis echar un vistazo. ;)

Je je je... ¡gracias otra vez Julián! ;)

Casimiro Notevi
09-03-2012, 09:21:29
Dec, en mi próxima reencarnación quiero saber tanto como tú :rolleyes:

dec
09-03-2012, 11:40:30
Dec, en mi próxima reencarnación quiero saber tanto como tú :rolleyes:

Huy,... ten cuidado con lo que deseas... ¡no vaya a hacerse realidad! :D

dec
21-04-2014, 22:30:33
Hola a todos,

¿Preparados para la siguiente versión de Humm PHP? Después de un tiempo dándole vueltas y de tres o cuatro días picando código bonitamente, os adelanto que pronto estará disponible la versión 2.0 de Humm PHP, escrita casi por completo desde cero, con un montón de mejoras sobre las versiones 1.x.

Humm PHP me ha dado dado muy buenos resultados en lo personal. Es el framework que utilizo en todos mis sitios web y en algún que otro proyecto "de terceros". Así que el compromiso por la sencillez y funcionalidad se mantienen en Humm 2.0, si bien contará con novedades interesantes.

/---------------------------------/

Todavía queda cierto tiempo para que publique esta nueva versión de Humm, pero, he aquí las mejoras ya incluidas respecto de Humm 1.x.:

* Olvidándome del estúpido "acortamiento" en los nombres de las clases y otros archivos e identificadores de Humm, ahora se contará con mejores y más descriptivos nombres de clases e identificadores, por ejemplo.

* No ha sido difícil (sólo dar vueltas alrededor) darse cuenta de cómo solucionar el "problema" que Humm tenía con los formularios "GET". En la versión 2.0 y siguientes no habrá problemas en usar estos formularios.

* Los diferentes tipos de bases de datos soportados por Humm (y que permiten traducir consultas SQL específicas para cada "driver") se encuentran ahora situados fuera del sistema, para que sea el usuario quien los use de ser necesario.

/---------------------------------/

En cuanto a las novedades que incluirá Humm 2.0 y que no se incluyen en versiones anteriores se trata de:

* Soporte para plugins, tanto de usuario como de sistema, con una serie de filtros y acciones a las que dichos plugins podrán reaccionar y actuar en consecuencia.

* Control internos de errores de PHP, de manera que se mostrarán o no dependiendo de la configuración de Humm, mostrándose convenientemente en caso necesario.

/---------------------------------/

En cualquier caso conviene recordar las principales características de Humm PHP:

* No necesita de instalación alguna en el servidor
* No necesita configuración en absoluto para funcionar
* Conexión automática con bases de datos (con sólo indicarlo)
* Clases prácticas y útiles como Database: listas para usar
* Usa URLs amigables al usuario sin utilizar modules "rewrite"
* Basado en vistas/plantillas HTML/PHP sencillas y potentes
* Completo soporte para la internacionalización de los sitios
* Algunas características básicas para la localización de sitios

/---------------------------------/

Para terminar una de las novedades con las que me gustaría en la siguiente versión de Humm sería el soporte para múltiples dominios usando la misma "instalación", mejor dicho, usando una sóla copia de Humm. Todavía no tengo claro cómo llevar a cabo esto, y, se agradecería cualquier comentario al respecto. Tengo más o menos claro que hay que trabajar con el nombre del "host", pero, esto en lo que se refiere a Humm: todavía no me queda claro cómo un usuario "llegaría" desde diferentes dominios a un mismo lugar... ¿redirecciones PHP? ¿configuración del servidor? ¿...?

En fin... no creo que Humm PHP le interese a mucha gente aparte de mí mismo, pero, supongo que escribo esto un poco para mí también, a modo de desahogo de tanto picar código y pensar en el proyecto trabajando en el mismo. Vaya, que así me distraigo un poco. Y quién sabe: quizás alguno de vosotros quiera hacer comentarios al respecto. ¿Verdad que sí? :)

¡Disculpad por el rollazo! :D

Casimiro Notevi
22-04-2014, 01:20:26
Suena muy bien, se ve que es una de tus "niñas mimadas" :)

dec
22-04-2014, 02:11:58
Hola,

Suena muy bien, se ve que es una de tus "niñas mimadas" :)

Sí; je je je. Humm PHP vendría a ser una especia de plantilla para cualquier página web. Bueno... más o menos. Al menos yo lo uso en todos mis sitios, como ya he dicho, y, mi intención es poder seguir haciéndolo en el futuro en dichos sitios y en otros que pudieran venir. Desde un sitio que requiera únicamente una página a otro más o menos complejo, se trata de tener algo con lo que partir para no tener que reinventar la rueda una y otra vez.

Sigo trabajando, aunque ya es tarde. Y, por otro lado, parece que he entrado en una fase de añadir "cosas"... que no me gusta nada. Por ejemplo, traigo entre mientes añadir una especie de "administrador" a Humm. Ahora bien, esto parece contradecir una de las ideas fundamentales del proyecto: como básicamente se trata de editar archivos, creo yo que ningún "administrador" podrá llegar a la altura de programas como NetBeans for PHP, por ejemplo.

Y lo dicho para la edición de archivos puede servir para cualquier otra cosa. ¿El supuesto administrador debería de soportar la subida de imágenes? ¿Pero cómo demonios voy a lograr yo un administrador a la altura del estupendo FileZilla (https://filezilla-project.org/) para subir y bajar y en definitiva trabajar con archivos en el servidor? ¿Y qué hay de un editor de imágenes? No hay "administrador" que se precie sin uno de ellos. Pero lo cierto es que tampo hay nada como tu editor de imágenes favorito.

En definitiva, que el administrador puede estar bien, puesto que, en algún caso, en un momento dado, quizás, podría uno necesitar editar un determinado archivo/plantilla... pero la complejidad que se añade al proyecto tal vez no merezca en absoluto la pena: en ninguno de mis sitios web (gestionados con Humm) he necesitado de administrador integrado alguno. Claro que tampoco necesito siquiera una base de datos... pero hay alguno más o menos "complejo" (http://neoplugins.com/).

En definitiva: la idea del administrador no parece buena, por mucho que me ronde por la cabeza. Añade complejidad, y, por otro lado, si alguien necesita alguna especie de administrador siempre podrá implementarlo él mismo partiendo de la base que proporciona Humm: de hecho yo mismo tendría que hacerlo (ya he hecho pruebas) así. En fin, supongo que con la fiebre del trabajo se le olvidan a uno las premisas fundamentales del proyecto, que conviene seguir para no convertirlo en otra cosa.

Bueno... no me enrrollo más, ¡que mira que estoy parlanchín! :D

marcoszorrilla
22-04-2014, 17:39:22
Enhorabuena David, como siempre un estupendo trabajo.

Un Saludo.

dec
22-04-2014, 18:13:36
Hola,

Enhorabuena David, como siempre un estupendo trabajo.

Un Saludo.

Gracias Marcos. :)

roman
22-04-2014, 18:23:50
* Olvidándome del estúpido "acortamiento" en los nombres de las clases y otros archivos e identificadores de Humm, ahora se contará con mejores y más descriptivos nombres de clases e identificadores, por ejemplo.

* No ha sido difícil (sólo dar vueltas alrededor) darse cuenta de cómo solucionar el "problema" que Humm tenía con los formularios "GET". En la versión 2.0 y siguientes no habrá problemas en usar estos formularios.


:)


Hola dec, ¡qué bueno que sigas trabajando en ello!

¿Humm cuenta con algún sistema de autenticación? De no ser así, emho lo consideraría antes que un administrador (que tampoco entendí muy bien qué sería :o) o bien como un plugin de fábrica.

Tampoco entiendo eso de los múltiples dominios. ¿Podrías explayarte?

// Saludos

dec
22-04-2014, 22:49:59
Hola,


¿Humm cuenta con algún sistema de autenticación?


No; ya sabes que, en realidad, Humm está mucho más "abajo" que eso.


De no ser así, emho lo consideraría antes que un administrador (que tampoco entendí muy bien qué sería :o) o bien como un plugin de fábrica.


Tengamos en cuenta que Humm funciona sin necesidad de instalación, configuración ni bases de datos. De este modo, no hay para qué implementar algo así como un sistema de autenticación, pues Humm desconoce siquiera si hay algo que autenticar.

Un "administrador" vendría a ser una especie de gestor de contenidos incorporado en el propio sistema. Para esto ya, lógicamente, sí que necesitaría de algún tipo de autenticación, aunque, en realidad bastaría con una constante de configuración/contraseña.

Pero como dije más arriba creo que la idea de tal administrador está un tanto desencaminada y creo que algo así no es preciso en Humm.


Tampoco entiendo eso de los múltiples dominios. ¿Podrías explayarte?


Lo de los "múltiples dominios" sí que es algo interesante, pues, se supone que permitiría utilizar una misma base de código, una misma copia de Humm, para gestionar varios dominios al mismo tiempo.

Pensemos que ahora Humm cuenta con dos directorios raíces:

\Humm\System\

\Humm\Site\

En este último directorio se encuentran las vistas, estilos, scripts, imágenes, etc., del sitio web que Humm gestiona. Ahora bien, lo que se persigue sería contar con directorios como:

\Humm\Sites\Default\

\Humm\Sites\MiOtroSitio\

\Humm\Sites\OtroSitioMas\

Etcétera. De manera que todos esos directorios se correspondiesen con diferentes dominios o "host" o como mejor se diga. Lo que ocurre con esto es que estoy un poco pez, pero, en todo caso, creo que se trata de cambiar determinada configuración en el servidor, por ejemplo Apache.

Porque, de lo que se trata, es que diferentes URLs (www.ejemplo.com, www.otrositio.com, etc.) apunten al mismo "script", precisamente, al "index.php" o "punto de entrada" de Humm. Por otro lado huelga decir que Humm tendrá que determinar qué sitio o contenido ha de servir.

Creo que esto último se basa, más o menos sencillamente, en la variable "$_SERVER" y valores como "HTTP_HOST", puesto que a partir de ahí podría determinarse de qué "host" se trata y por tanto qué directorio de sitio ha de usarse. No sé si más o menos he conseguido explicarme.

Gracias por tu interés Román. :)

roman
23-04-2014, 18:19:34
Lo de las urls distintas apuntando al mismo sitio, creo que lo puedes resolver con servidores virtuales (en Apache). Pero eso ya implicaría meterse con la configuracion del servidor.

// Saludos

dec
23-04-2014, 18:41:08
Hola,

Lo de las urls distintas apuntando al mismo sitio, creo que lo puedes resolver con servidores virtuales (en Apache). Pero eso ya implicaría meterse con la configuracion del servidor.

En efecto, parece que hay que vérselas con el servidor. No importaría, es decir, HummPHP es independiente del servidor (con esa idea se hace, vaya, por ejemplo, recordemos que maneja URLs más o menos "amigables" sin necesidad de "MOD REWRITE" alguno, cuya implementación depende del servidor) y se supone que una vez configurado el servidor, HummPHP podría determinar qué contenido servir dependiendo de la configuración del servidor.

De todas formas el asunto (del lado de HummPHP) no es tan sencillo como puede parecer en un primer momento. Le estado dando unas cuantas vueltas y no he seguido adelante, pero, es algo que me gustaría añadir. Y el caso es que no he parado aún y sigo trabajando en el proyecto a marchas forzadas. De hecho espero hoy mismo publicar aquí lo que llevo hecho de esta versión 2.0, para que los que queráis podáis echar un vistazo al engendro. :)

dec
23-04-2014, 19:31:24
Hola de nuevo,

Venga, que no se diga... aquí os dejo adjunto lo que va de HummPHP 2.0, prácticamente terminado, por otro lado. Si queréis echar un vistazo ya sabéis que podéis montar un servidor de manera sencilla usando Xampp (https://www.apachefriends.org/es/index.html). Por otro lado, si queréis trastear un poco con el código os recomiendo que lo hagáis con NetBeans para PHP (https://netbeans.org/features/php/). Y eso es todo, espero que lo disfrutéis.

Cualquier comentario, reporte de error, etc., será bienvenido. :)

Casimiro Notevi
23-04-2014, 19:47:11
^\||/


.

dec
24-04-2014, 02:58:06
Lo de las urls distintas apuntando al mismo sitio, creo que lo puedes resolver con servidores virtuales (en Apache). Pero eso ya implicaría meterse con la configuracion del servidor.

// Saludos

Captado este asunto de la configuración de Apache, parece que, en efecto, HummPHP debería poder lidiar con distintos sitios... así que ya estoy en ello. :)

dec
24-04-2014, 04:23:05
Hola,

Menos de una hora... eso me ha costado implementar en HummPHP la posibilidad de manejar diferentes sitios (dominios) con una misma base de código. Lo que parecía que iba a complicar las cosas, los espacios de nombres en PHP, han resultado por el contrario de gran ayuda. De hecho Humm cumple ahora mismo con cierto estándar que implica usar los mismos espacios de nombres que el árbol de directorios en que se encuentran.

Todavía me queda "refactorizar" un poco y darle alguna que otra vuelta, pero, en efecto, HummPHP cuenta ahora con un directorio "Sites" en lugar de "Site". Dentro de este directorio se puede encontrar otro de nombre "Main". Este será el directorio por defecto y contendrá todo lo necesario para un sitio: vistas, clases, plugins, archivos de lenguaje, etc. Este directorio podrá replicarse, por decirlo así, tantas veces como se quiera, en diferentes subdirectorios de "Sites".

El truco estará en el nombre de dichos directorios, que, habrán de corresponderse con el "nombre del servidor" ($_SERVER['name']) "capitalizado" (por seguir la convención), es decir, supongamos que tenemos dos dominios: www.juanito.com y www.pepito.com.

Instalamos Humm en www.juanito.com, por ejemplo, de manera que este dominio "cargará" el sitio principal o predeterminado en HummPHP (situado en el directorio "Main"). A continuación tendremos que buscarnos la vida para configurar el servidor (en Apache, al menos "en local" no es complicado) de manera que todas las peticiones al dominio www.pepito.com apunten al mismo directorio en que se encuentra copiado HummPHP en www.juanito.com

El "truco" estará entonces en crear un nuevo directorio en "Sites" de nombre "Juanito", en este caso, replicando los directorios del sitio principal. En principio no habría más que hacer, puesto que las clases (de vistas, por ejemplo) y los plugins son opcionales, pero, en caso de hacer uso de esta característica, dichas clases y plugins deberán estar en el espacio de nombres "Humm\Sites\Pepito\Classes", para las clases, y "Humm\Sites\Pepito\Plugins" para los plugins.

Y eso es todo... lo que en realidad se comparte entre los dos sitios es el directorio "System" de HummPHP, lo que equivale a decir todo el sistema, puesto que lógicamente cada sitio tendrá su propio contenido... pues por algo son sitios diferentes. Por otro lado los sitios podrían compartir ya los plugins del sistema, pero, veré si se me ocurre algún otro lugar donde situar los plugins compartidos por difentes sitios: al fin y al cabo creo que sólo se trata de añadir una ruta más al "gestor de plugins".

Por lo demás los sitios pueden compartir clases PHP sencillamente gracias al espacio de nombres de PHP y a cómo "carga" las clases el sistema, equiparando el espacio de nombres con el árbol de directorios. De este modo podríamos tener dentro del directorio "Sites" un directorio de nombre "Shared" o "Classes", que, usando el espacio de nombres apropiado, sólo nos tendríamos que preocupar de usar cuando nos hicieran falta, ocupándose el sistema de encontrarlas y cargarlas.

En fin... creo que he tardado más en soltar este rollo que en conseguir (al menos de momento) el objetivo. Creo que yo seré el primero en usar esta característica "multisitio" de HummPHP, pues, si puedo configurar el servidor, cuando rehaga mis sitios, todos ellos van a compartir la misma copia de Humm, cosa que me ahorrará tiempo y trabajo si por ejemplo decido actualizar el sistema, etc.

¡Y no digo más! :D :D

dec
24-04-2014, 04:57:18
Hola de nuevo,

Pues nada... más novedades. :) A través de "CPanel" (el "hosting" que uso lo proporciona) resulta de lo más sencillo hacer que varios dominios apunten a un mismo directorio. Se trata de dominios añadidos o "addons" y no hay que andarse configurando "virtual host" ni nada por el estilo: simplemente se indica el directorio al que tiene que apuntar un dominio. Y a funcionar. :D

dec
24-04-2014, 14:29:42
Hola,

Quiero explicar aquí cómo se puede configurar el servidor Apache (al menos la distribución que se incluye en Xampp (https://www.apachefriends.org/es/index.html)) para crear "virtual host", puesto que es algo que no había usado hasta ahora y veo que tiene utilidad, no sólo para comprobar sistemas "multisitio" como HumPHP, pero, también a la hora de trabajar en nuestro ordenador y en su servidor local.

Hasta ahora yo usaba URLs del tipo "http://127.0.0.1/HumPhp", "http://127.0.0.1/OtraCosa" , etc. Pero, veréis lo sencillo que es configurar Apache y Windows para que podamos utilizar URLs como "www.hummphp.dev" y "www.otracosa.dev", por ejemplo.

1º Paramos Apache si está en marcha

2º Abrimos el archivo "xampp\apache\conf\extra\httpd-vhosts.conf" y añadimos:


<VirtualHost *:80>
DocumentRoot "/xampp/htdocs/HummPhpSite"
ServerName hummphp.dev
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/xampp/htdocs/HummPhpSite"
ServerName www.hummphp.dev
</VirtualHost>


3º Abrimos (como administrador) el archivo "C:\Windows\System32\Drivers\etc\hosts" y añadimos:


127.0.0.1 hummphp.dev
127.0.0.1 www.hummphp.dev


¡Y eso es todo! Ya podemos arrancar Apache de nuevo y podremos navegar hasta "hummphp.dev" y "www.hummphp.dev", apuntando ambos "host" al mismo directorio "/xampp/htdocs/HummPhpSite". :)

roman
24-04-2014, 18:32:13
Se trata de dominios añadidos o "addons" y no hay que andarse configurando "virtual host" ni nada por el estilo: simplemente se indica el directorio al que tiene que apuntar un dominio. Y a funcionar. :D

¿Y estás seguro que el cpanel no crea un servidor virtual?

// Saludos

dec
24-04-2014, 18:41:45
Hola,

¿Y estás seguro que el cpanel no crea un servidor virtual?

// Saludos

Así es Román, probablemente. Yo iba más bien por lo sencillo que resulta hacerlo gracias a "CPanel". :)

dec
13-05-2014, 03:33:54
Hola a todos,

Bueno, pues, finalmente, hace un par de semanas que Humm PHP 2.0 vió la luz, como suele decirse. Y hoy es el día en que todos mis sitios web usan esta nueva versión de Humm PHP, cosa que, en principio, va ahorrarme mucho trabajo, puesto que todos los sitios web comparten la misma base de código. En fin, en mi firma (más abajo) tenéis un enlace para quien quiera echar un vistazo. Desde dicho enlace (a mi página web personal) podréis llegar al resto de sitios web en cuestión, como al del propio Humm PHP, desde donde podréis descargarlo si os place. :)

¡Saludos a todos! ;)