Club Delphi  
    Paypal   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

 
 
Herramientas Buscar en Tema Desplegado
  #33  
Antiguo 24-04-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
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!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
 



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
Componente Hashes, para quien pueda interesar dec OOP 11 09-07-2007 01:36:04
Utilidad para comparar dos bases de datos. avmm2004 Varios 1 16-11-2006 20:47:22
Utilidad para contar lineas de código Alexander Varios 10 18-10-2006 00:14:55
Utilidad para manejo de lista TODO ANG4L Varios 3 02-08-2006 09:36:39


La franja horaria es GMT +2. Ahora son las 22:41:34.


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