He estado desarrollando un progtwig para la visualización de algunos datos. Mi progtwig toma inputs específicas de una database MySQL y dibuja algunos charts (biblioteca de libchart), crea algunas tablas, etc.
Mi problema es que ahora mismo es un infierno del código allí. Tengo alnetworkingedor de 7 files php (índice, gráfico de página, galería, etc.) con código HTML / CSS y PHP / SQL todos juntos (algunos de ellos solo tienen la extensión php pero solo tienen HTML dentro). No tengo ningún problema para leer y comprender el proyecto por el momento, pero supongo que si alguien más lo intentara, podría tener un dolor de cabeza. Además, continuar progtwigndo de esta manera no es práctico porque el proyecto podría no ser fácilmente escalable en el futuro.
¿Tiene alguna sugerencia sobre cómo separar con éxito HTML / CSS de PHP / SQL? No quiero usar un framework porque no estoy haciendo nada que requiera input de usuario, event handling sesiones, etc. Simplemente ejecuto algunas consultas y visualizo los resultados. Principalmente estoy hablando de architecture aquí, y si corresponde quizás un guión para ayudarme (he leído sobre Smarty pero no estoy seguro si eso es lo que necesito).
¿Tiene alguna sugerencia sobre cómo separar con éxito HTML / CSS de PHP / SQL?
Felicidades por ver cómo puedes mejorar el código. Esa es la condición previa, debe querer mejorarla y el tema es extenso. Entonces tu voluntad es crucial.
Comienzo ligeramente y luego trato de dar algunos consejos. Como le falta experiencia, busque un punto para empezar, sin duda el último de la list a continuación. Pero primero lo primero:
Para separar algo el uno del otro, necesitas tener un código que separe:
[HTML/CSS/PHP/SQL] [HTML/CSS] <--> [SEPARATOR] <--> [PHP/SQL]
El separador aquí también es código PHP, pero creo que entiendes la idea.
Como puede ver, solo el Separador habla con HTML / CSS y PHP / SQL .
Entonces, tanto HTML / CSS como PHP / SQL necesitan tener una interfaz con Separador (la línea entre) para que esto funcione.
Normalmente, en un progtwig, se pasan datos que se procesan. Los datos son bastante dynamics y pueden tener una complejidad compuesta, especialmente si pasa los datos a una rutina de salida que debe formatearla adecuadamente.
Hay muchas forms de escribir dicho Separador (o varios de ellos). Puede aplicar capas a su software o proporcionar componentes que hacen cosas en su área o dominio . Por ejemplo, tiene una capa de database o componente de database que se ocupa de la interacción con la database.
O tiene un motor de templates que se encarga de poner sus cadenas y matrices en un HTML legible.
En resumen, esta es la teoría de pasta del layout de software:
Al igual que comemos pasta diferente en nuestras vidas, cuando progtwigmos también tenemos que lidiar con todos estos types diferentes de código, y desarrollamos nuestro gusto preferido a lo largo del time. Cuando éramos niños nos alimentamos, pero con el time empezamos a cocinar algo propio y a variar las recetas.
Así que creo que es un buen punto que simplemente no quiera ahora comer MVC Framework X con algo increíble durante las próximas semanas solo porque alguien le dijo que es la manera de comer ahora. Y antes de comer, hay una degustación, ¿verdad? Sin mencionar la comida rápida, ya sabes como estos fideos con salsa en el package, solo agrega agua. Urgh.
No sé qué datos necesita tu salida y cuál es la input. A continuación, se incluyen algunos consejos de refactorización para aplicaciones que generan HTML / CSS e interactúan con una database MySQL. Esta no puede ser una list completa y las descripciones solo pueden resumir algunos pensamientos:
style
si aún tiene alguno. Esto hace que tu código CSS sea reutilizable y más modular. Le ayudará a encontrar defectos dentro de su HTML y a separar la Estructura (HTML) de la Presentación (CSS). El HTML efectivo comienza con el uso efectivo de CSS, esos dos son muy potentes juntos y, a menudo, esto ya aligerará las rutinas de salida de tus progtwigs. foreach
sobre subarrays. Esta es una técnica muy simple para crear una plantilla. Puede usar PHP para ello, por lo que en realidad es realmente flexible (simplemente dibuje el borde que pertenece a su capa de vista y que es parte de la aplicación, por ejemplo, proporciona valores para la vista). $component->getThatData()
que luego devuelve los datos en una forma normalizada. Haga que esos componentes luego usen un componente de database dedicado para hablar con la database. En el código de su aplicación (lógica comercial), solo use el componente de la database y preferiblemente los objects que cree para get los datos, de modo que ya no tenga ninguna línea de SQL dentro de su código principal. ¿Por qué no usar un motor de templates? TWIG es muy fácil de usar y excelente para este tipo de cosas. A menudo se usa con el marco Symfony, pero puede usarse fácilmente por sí mismo.