style - ¿Es esto excesivo, o buen uso del ayudante de HTML de CakePHP?
this-> html-> image style (5)
Al usar los ayudantes, en cierto modo, estás probando tu código en el futuro. Entonces, cuando aparece HTML5 y las etiquetas html
o head
cambian en la nueva especificación. Teóricamente solo cambias tu clase de ayuda html y todas tus marcas son HTML5.
Sin embargo, por el contrario, también confías en Cake para generar etiquetas bien formadas. Aunque muchos de estos marcos son de pila completa, inevitablemente hay algunas áreas que manejan mejor que otras. No debe esperar que instalen todo el conjunto de etiquetas HTML.
Personalmente creo que es excesivo hacer lo que has hecho. Me gusta usar los ayudantes de HTML para enlaces, urls y archivos incluidos debido a los beneficios de mapeo de directorios. Pero no uso los ayudantes para generar una etiqueta div
simple.
Acabo de volver a formatear el diseño predeterminado de mi aplicación CakePHP. Eliminé tanto html en línea como pude colocando casi todo dentro de los métodos html helper.
Fue divertido, pero me pregunto qué beneficio he obtenido con este ejercicio, si es que hay alguno.
<?php
$output = implode("/n", array(
$html->docType(),
$html->tag(''html'', implode("/n", array(
$html->tag(''head'', implode("/n", array(
$html->charset(),
$html->tag(''title'', ''Title For App''),
$html->css(''css'', NULL, array(''media'' => ''screen,print'')),
$html->css(''print'', NULL, array(''media'' => ''print'')),
$html->script(array(''cufon'', ''jquery'',''external''))
))),
$html->tag(''body'', implode("/n", array(
$html->tag(''div'', $content_for_layout, array(''id'' => ''wrapper'')),
$html->scriptBlock(''Cufon.now();'')
)))
)), array(''xmlns'' => ''http://www.w3.org/1999/xhtml''))
));
echo $output;
?>
Supongo que al menos se ve bien y compacto, y es bastante legible. ¿Qué peligros debería tener en cuenta en este escenario? ¿Debería estar al tanto de cualquier problema de velocidad?
Me gusta, y no lo hago.
Creo que necesito convencer de una forma u otra.
Si te estás preguntando, las implosiones ponen bonitos saltos de línea en el html cuando se ve la fuente.
El beneficio innegable de esto es una sintaxis 100% correcta, ya que eliminó cualquier posibilidad de digitación de grasa y etiquetas faltantes de apertura / cierre. Sin embargo, lo que puedo decirte por experiencia es que dentro de medio año, será el doble de difícil leer y modificar esta estructura. También es realmente difícil insertar elementos condicionales. Tendría que recurrir al operador ternario aquí, lo que hace que las cosas sean aún menos legibles.
En general, recomendaría ir con una mezcla tradicional de HTML / PHP.
Programáticamente, eso es muy correcto, porque nunca estás construyendo una cadena. Lo bueno es que, dado que todo es una función, puede pasarle todo tipo de parámetros y aplicar toda la lógica a sus controladores. Por lo tanto, su título, por ejemplo, podría generarse dinámicamente para cada página, y luego pasar a su $html->tag(''title'', ''Title For App'')
.
Sin embargo, debido a la gran cantidad de llamadas a funciones, sospecho que no funcionará tan bien como el simple uso de PHP para repetir y repetir variables.
Tuve esta discusión en el grupo de Google hace algunos años. Eventualmente, te darás cuenta de que no hay mucha diferencia en la forma en que lo haces hasta que necesites manipular las cosas mediante programación; luego, si fueras a la ruta HTML, encontrarás tu código salpicado con <?php
& ?>
o concatenaciones de cadenas o sustituciones de variables de comillas dobles.
Ahora, muchas aplicaciones en la línea, prefiero mantener las que tienen más ayuda que el marcado.
Hay una gran cantidad de HTML que no está cubierto por los ayudantes, por lo que no puede evitar una mezcla, pero puede minimizar la complejidad y la confusión mediante el uso de ayudantes siempre que sea posible. Cuando comienzas a usar formularios, obtienes muchas cosas de seguridad y los ID y NAME se formatean de la forma que CakePHP lo prefiere.
PHP y CakePHP están diseñados para esto. ¿Por qué solo usar medio lenguaje o medio marco?
Personalmente estoy en conflicto con esto, pero elijo el modo HTML + PHP cuando trabajo con PHP. Puedo ver las ventajas de cualquiera, pero esta es la razón por la que elijo HTML + PHP:
PHP es un lenguaje de plantillas, el mejor. Como lenguaje de plantillas, creo que es muy superior a cualquier otro lenguaje de plantillas de PHP, y muchos de los lenguajes de plantillas en otros marcos web de lenguaje por su flexibilidad y poder.
Si estuviera trabajando con un lenguaje como Python o Java, probablemente preferiría el formulario que sugieres, pero no es la solución perfecta para trabajar con PHP.
Pierdes la habilidad de usar las muchas herramientas ya desarrolladas para trabajar con HTML. Pierdes especialmente a las personas que se sienten cómodas modificando HTML y que de otra forma podrían hacer cambios simples en las vistas.
Flexibilidad absoluta sin agregar más capas de API.
Como efecto secundario de esto, tiendo a usar for():
y endfor;
sintaxis, etc., y se esfuerzan por no repetir nunca las etiquetas HTML: me reestructuraré para evitarlo (es decir, no usaré métodos a menos que esté dentro de un helper, etc.), en cuyo caso generaré mis etiquetas con Html Helper, porque es simplemente tonto tener sopa HTML dentro de una clase o función PHP: P).