Red de conocimiento informático - Problemas con los teléfonos móviles - La biblioteca de etiquetas TagLib de ThinkPHP no funciona. ¿Qué pasó?

La biblioteca de etiquetas TagLib de ThinkPHP no funciona. ¿Qué pasó?

Hoy ayudé a ejecutar un programa desarrollado por ThinkPHP. La instalación fue exitosa, pero el inicio de sesión en el backend siempre fue anormal. Revisé usando Firebug en Firefox y no pude encontrar el js original. Luego abrí la plantilla y la miré. Se hace referencia a algunos archivos js, pero cuando hago referencia a js aquí, lo hago a través de tagLib. tagLib es la biblioteca de etiquetas de ThinkPHP. Por ejemplo:

lthtml: import type = " js " file = " js . prototipo "/ gt

lthtml: import type = " js " file = " Js. base "; / >;

lthtml: tipo de importación = "js" file = "js.mootools"/gt;

lthtml: tipo de importación = "js" file="Js.Ajax. piensa en Ajax "/ gt;

lthtml: import type="js" file="Js. Form.CheckForm" />

Cuando miré el código fuente, no había análisis en absoluto. ¿Por qué? Cita, cómo generar. Luego, pensé en una manera de usar el método de referencia js original para ver si estaba equivocado:

ltscript language = ' JavaScript ' src = ' _ _ PUBLIC _ _/Js/prototype . lt/script gt;

lenguaje ltscript = ' JavaScript ' src = ' _ _ PUBLIC _ _/Js/base . = ' JavaScript ' src = ' _ _ PUBLIC _ _/Js/mootools . gt; lt/script gt

ltscript language = ' JavaScript ' src = ' _ _ PUBLIC _ _/ Js/. Ajax/think Ajax . gt; lt/script gt;

ltscript language = ' JavaScript ' src = ' _ _ PUBLIC _ _/Js/Form/check Js ' gt; gt;

Jaja, si lo usas así, definitivamente puedes analizarlo y luego volveré y veré cuál es el motivo. Luego, Baidu y Google aprendieron mucho sobre la biblioteca de etiquetas tagLib de ThinkPHP, y ninguno de los dos había experimentado esta situación. ¿Qué debo hacer? Luego consulté a mi colega Tao y el problema se resolvió en menos de un minuto. Cuando subí el archivo, Tencent lo cambió por malditas razones de seguridad. El html.xml original se cambió a html.xml.temp porque se cambió el nombre del archivo y el sistema no pudo encontrar el archivo al cargar el archivo xml.

Entonces, en definitiva, ¿por qué no se puede analizar? Para comprender cómo analizar, debe comprender el principio de implementación: la función de la clase de análisis de la biblioteca de etiquetas es en realidad analizar una definición de etiqueta en un archivo de plantilla válido (que puede contener declaraciones PHP o etiquetas HTML). Para ampliar la biblioteca de etiquetas es necesario agregar el archivo XML de definición de la biblioteca de etiquetas y la clase de análisis de la biblioteca de etiquetas.

La biblioteca de etiquetas consta de archivos de definición y clases de análisis.

Cada etiqueta se almacena en un archivo de definición XML, que se utiliza para definir las etiquetas y los atributos en la biblioteca de etiquetas. Un archivo de biblioteca de etiquetas corresponde a una clase de análisis de biblioteca de etiquetas y cada etiqueta es un método en la clase de análisis. Por ejemplo, el archivo de definición de la biblioteca de etiquetas cx es cx.xml ubicado en el directorio ThinkTemplate/Template/Tags/, y el archivo de clase de análisis de la biblioteca de etiquetas cx es el archivo TagLibCx.class.php ubicado en ThinkTemplate/Template/TagLib. / directorio. El método de análisis de cada etiqueta es el método de la clase TagLibCx. Para no entrar en conflicto con las palabras clave del sistema, se agrega el prefijo "_" antes del nombre del método. Por lo tanto, si desea definir el análisis de etiquetas para Cx:Var, debe definir un método _var.