Permitir a los usuarios agregar consultas personalizadas a variables de bigote -- php campo con mustache camp codereview Relacionados El problema

Allow users to add custom queries to Mustache variables


1
vote

problema

Español

Estoy escribiendo una aplicación que será administrada por mi equipo, utiliza Mustache.php como motor de plantilla.

Tengo un archivo PHP que hace una serie de variables y funciones que se pasa al analizador de bigote para rellenar la plantilla.

Incluso proporcionar un sistema para anular parciales de mi plantilla para editar el aspecto de la aplicación para usuarios específicos.

Ahora me gustaría agregar una manera de permitir que mi equipo agregue variables personalizadas a la matriz pasada a Mustache.php sin tener que hackear el núcleo de mi aplicación.

Pensé en una pequeña función que comprueba si existe un archivo .php con el nombre del usuario y, de ser así, inclúyalo después de haber generado la matriz y antes de pasarlo a bigote.

se parece a:

contenidos.php :

  Dictionary<int,Vertex>0  

& lt; username & gt; .php :

  Dictionary<int,Vertex>1  

No estoy seguro de si esto puede ser una solución agradable o si ustedes tienen una mejor idea.

Original en ingles

I'm writing an application that will be managed by my team, it uses Mustache.php as template engine.

I have a PHP file that makes an array of variables and functions that is passed to the Mustache parser to populate the template.

I even provide a system to override partials of my template to edit the aspect of the application for specific users.

Now I'd like to add a way to allow my team to add custom variables to the array passed to Mustache.php without have to hack the core of my application.

I thought about a little function that checks if a .php file with the name of the user exists and if so, include it after I've generated the array and before I pass it to mustache.

It should looks like:

contents.php:

// my queries $variables = Array(1,2,3,bla,foo,bar);  if (file_exists($_SERVER['BASE_DIR'] . '/customcontents/'. $username . '.php')) {    include($_SERVER['BASE_DIR'] . '/customcontents/'. $username . '.php'); }  // Call mustache and pass $variables to it 

<username>.php:

// custom queries $variables = array_merge($variables, $customvariables)     

I'm not sure if this can be a nice solution or if you guys have some better idea.

     

Lista de respuestas

1
 
vote

No sé nada sobre el bigote, por lo que solo una nota sobre el código: 99887776655443312 se duplica, podría extraerse a una variable local:

  Graph3  

(es posible que tenga ideas para un mejor nombre).

Referencia: CAPÍTULO 6. MÉTODOS DE COMPUTAMIENTO , Presente la variable de explicación en Refactoring: Mejora del diseño del código existente por Martin Fowler:

Poner el resultado de la expresión, o partes de la expresión, en una variable temporal con un nombre que explica el propósito.

y Código limpio por Robert C. Martin , G19: Use variables explicativas .

 

I don't know anything about Mustache, so just a note about the code: $_SERVER['BASE_DIR'] . '/customcontents/'. $username . '.php' is duplicated, it could be extracted out to a local variable:

$userFile = $_SERVER['BASE_DIR'] . '/customcontents/' . $username . '.php' if (file_exists($userFile)) {    include($userFile); } 

(You might have ideas for a better name.)

Reference: Chapter 6. Composing Methods, Introduce Explaining Variable in Refactoring: Improving the Design of Existing Code by Martin Fowler:

Put the result of the expression, or parts of the expression, in a temporary variable with a name that explains the purpose.

And Clean Code by Robert C. Martin, G19: Use Explanatory Variables.

 
 

Relacionados problema

5  Revisión de HTML Markup para este concepto de blog  ( Review of html markup for this blog concept ) 
Estoy creando un concepto de blog con este diseño en Codepen Aquí está mi código actual en desarrollo Max8 Cuando me muevo a la producción, usaré...

4  ¿Qué tan limpio es esta plantilla de bigote para una página de listado?  ( How clean is this mustache template for a listing page ) 
Este fue nuestro viejo sitio que estoy rediseñando. Alguien más codificado con CSS en línea y JavaScript en tablas. Quería hacerlo dinámico, así que ag...

2  ¡Un MVC PHP que trabaja con bigote (y ahora anidados plantillas!)  ( A php mvc working with mustache and now nested templates ) 
Me encantaría algunos comentarios sobre este código que estoy editando y acortando ahora. <?php namespace bbncls; class mvc { use bn raitsinfo; /...

1  Permitir a los usuarios agregar consultas personalizadas a variables de bigote  ( Allow users to add custom queries to mustache variables ) 
Estoy escribiendo una aplicación que será administrada por mi equipo, utiliza Mustache.php como motor de plantilla. Tengo un archivo PHP que hace una serie ...

2  Aplicación de presentación de diapositivas / aula  ( Lesson slideshow classroom app ) 
Descripción general Estoy buscando comentarios sobre este proyecto (personal) en el que estoy trabajando en que se está volviendo rápidamente complejo. So...

5  ¿Fue este uso de las etiquetas <img> en este html sobre las imágenes de fondo mejor?  ( Was this use of img tags in this html over background images better ) 
Vi a esta interfaz de usuario para una aplicación móvil, pero lo inverso lo modificó para la web. Así es como se ve en mi codepen Esto sería un favorit...

2  Makefile para un sistema de generación de documentos  ( Makefile for a document generation system ) 
Este es mi primer disparo al escribir un makefile para un sistema de generación de documentos. Por favor, identifique más formas de refinarlo. Algunos puntero...

4  ¿Cómo se puede configurar esto <UL> para maximizar la herencia si se pasarán clases adicionales desde un archivo JSON?  ( How can this ul be set up to maximize inheritance if additional classes will b ) 
Objetivo Actualmente tengo las banderas con codificación dura. Pero quiero optimizar mi código para la producción. Así que me pregunto si tengo este código...

4  Representación y reinicio de una plantilla de bigote  ( Rendering and re rendering a mustache template ) 
Quiero preguntar si mi siguiente implementación es buena en la vista de buenas prácticas y rendimiento. Tengo una aplicación donde tengo que mostrar otra pági...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos