Foros del Web » Programando para Internet » PHP »

Aporte: CssDispatcher

Estas en el tema de Aporte: CssDispatcher en el foro de PHP en Foros del Web. ¡Hola! He escrito una pequeña biblioteca que quizá os resulte útil. CssDispatcher es una biblioteca PHP libre que te ayuda a manejar múltiples estilos CSS ...
  #1 (permalink)  
Antiguo 10/11/2009, 09:53
isra00
Invitado
 
Mensajes: n/a
Puntos:
Aporte: CssDispatcher

¡Hola! He escrito una pequeña biblioteca que quizá os resulte útil. CssDispatcher es una biblioteca PHP libre que te ayuda a manejar múltiples estilos CSS como plantillas PHP, unirlos y minimizarlos.

1 CSS que se superan

Con CssDispatcher puedes introducir variables en las hojas de estilo...
Código:
body { 
	color: <?=$primaryColor ?>; 
}

#main { 
	<?=css_round_border('1em') ?>;
	background: <?=$secondaryColor ?>;
}
...declarándolas de un modo elegante:
Código PHP:
$layout = new Css('layout.css.php'); 
$layout->primaryColor '#333'
$layout->secondaryColor '#eee'
2 Mejora el rendimiento

Cuando tienes varios archivos CSS, más peticiones HTTP implican más lentitud al cargar y más trabajo para el servidor. Con CssDispatcher, puedes unir varias hojas de estilos y servirlas como un sólo archivo:

Código PHP:
$styles = new CssDispatcher
                     
$styles->add(new Css('ie-hacks.css.php')); 
$styles->add(new Css('general.css.php')); 
 
$styles->render(); 
CssDispatcher también puede minimizar la hoja de estilos generada, eliminando saltos de linea y tabulaciones innecesarias.

3 Compatibilidad entre navegadores

Si tienes hojas de estilo específicas de un navegador, CssDispatcher las servirá cuando lo especifiques:
Código PHP:
$styles = new CssDispatcher
                     
//This CSS code will be sent only if the user agent is IE 6 
$styles->add(new Css('ie-hacks.css.php'Css::UA_IE6)); 
$styles->add(new Css('general.css.php')); 
 
$styles->render(); 

4 Aún más rendimiento

Puedes comprimir y almacenar en cache la salida de CssDispatcher para obtener mejor velocidad y menos carga en el servidor. Hay un artículo dedicado a este tema titulado "Aún más rendimiento con CssDispatcher"

Espero que os resulte útil. Si alguno la prueba y se le ocurre alguna idea o fallo, le agradeceré el feedback

Un saludo a todos!
  #2 (permalink)  
Antiguo 10/11/2009, 10:25
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Aporte: CssDispatcher

muy bueno, podrías notificar a un moderador para que lo coloque en el hilo de aportes.

Veo que puedes especificar una hoja según el browser, sería recomendable también que pudieras especificar el medio (printer, display, handheld) si es que no lo has tenido en cuenta
  #3 (permalink)  
Antiguo 10/11/2009, 10:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Aporte: CssDispatcher

Hola, maycolalvarez.

Es que el medio se especifica en la referencia al CSS, no en la hoja de estilos en sí:
Código HTML:
Ver original
  1. <link rel="stylesheet" href="archivo.php" media="print" />
Por lo que ya no es controlado por la clase.

Buen aporte. Seguro a muchos les resultará útil.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 10/11/2009, 11:28
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Aporte: CssDispatcher

ahh, cierto!, es que yo desarrolle un módulo helper muy simple que generaba esa linea también y pensé que funcionará igual, sólo tenia que establecerlo en el header:

Código PHP:
<?php
$generator
->css->primaryColor='#000000';
$generator->css->processCss('archivo.css');
$generator->css->dump(array('type'=>'text/css','media'='print'));
?>
aunque en éste utilizaba una especie de BBcode en el css y lo reemplazaba con la función.
  #5 (permalink)  
Antiguo 23/11/2009, 19:08
isra00
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Aporte: CssDispatcher

Así es... CssDispatcher se encarga del CSS generado, tu HTML se encarga de invocarlo cuando/como convenga Cualquier duda, http://cssdispatcher.sourceforge.net o http://www.israelviana.es. Espero que os resulte útil. Un saludo!

Última edición por isra00; 23/11/2009 a las 19:09 Razón: URL incorrecta
  #6 (permalink)  
Antiguo 23/11/2009, 19:27
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Aporte: CssDispatcher

Excelente aporte, espero poder utilizarlo pronto.
__________________
- León, Guanajuato
- GV-Foto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:19.