Integration with Apache
La extensión Hyperwave se emplea mejor cuando PHP se compila como un
módulo de Apache. En tal caso, el servidor de Hyperwave subyacente se puede
ocultar a los usuarios casi completamente si Apache utiliza su motor de
reescritura. Las siguientes instrucciones lo explican.
Ya que la integración del soprte de PHP con Hyperwave en Apache tiene como objeto
el reemplazo la solución nativa de Hyperwave basada en Wavemaster,
asumiremos que el servidor Apache solamente servirá como una interfaz web
de Hyperwave en estos ejemplos. Esto no es necesario, aunque simplifica
la configuración. El concepto es bastante sencillo. Lo primero que se
necesita es un script de PHP que evalúe la variable $_ENV['PATH_INFO']
y trate su valor como el nombre de un objeto de Hyperwave.
Llamemos a este script 'Hyperwave'. El URL
http://su.nombre_de_host/Hyperwave/nombre_del_objeto
haría que devolviera el objeto de Hyperwave con el nombre
'nombre_del_objeto'. Dependiendo del tipo de objeto,
el script ha de reaccionar en consecuencia. Si es una colección, probablemente
devolverá el primer hijo. Si es un documento, devolverá el
tipo MIME y el contenido. Se puede lograr una pequeña mejora
si se emplea el motor de reescritura de Apache. Desde el punto de vista del
usuario sería más sencillo si el URL
http://su.nombre_de_host/nombre_del_objeto devolviera
el objeto. La regla de reescritura es bastante sencilla:
Ahora, cada URL se relaciona con un objeto del servidor Hyperwave. Esto
ocasiona un sencillo problema a resolver. No hay forma de ejecutar un
script distinto al del 'Hyperwave', p.ej. de
búsqueda. Esto se puede solucionar con otra regla de reescritura como la
siguiente:
Esto reservará el directorio /usr/local/apache/htdocs/hw
para scripts adicionales y otros ficheros. Asegúrese de que esta regla se
evalúa antes de la anteriore. Hay un pequeño inconveniente:
todos los objetos de Hyperwave cuyo nombre comience con 'hw/'
serán ocultados. Por tanto, asegúrese de no utilizar tales nombres. Si fueran necesarios
más directorios, p.ej. para imágenes, añada más reglas o colóquelos
todos en un directorio. Antes de seguir estas instrucciones, no
olvide activar el motor de reescritura con
Serán necesarios scripts:
para devolver el objeto en sí
para permitir búsquedas
para identificarse
para establecer el perfil
uno por cada función adicional, como mostrar
los atributos del objeto, para mostrar información sobre los usuarios,
para mostrar el estado del servidor, etc.
Como alternativa al motor de reescritura, también se puede considerar el uso
de la directiva ErrorDocument de Apache, teniendo en cuenta
que las páginas redirigidas de ErrorDocument no pueden recibir
datos POST.