Mecanismo de plantillas de base de PHP
Después de haber visto muchas cadenas de HTML incrustado en funciones de PHP pensé que sería útil para ilustrar una muy simple manera directa de la aplicación de un motor de plantillas. Este tutorial se divide en 4 secciones a saber,
Requisitos 1)
2) Diseño de Sistemas (UML)
3) Aplicación
Uso de 4) de la aplicación de
Requisitos
1) servidor HTTP completamente funcionales que incluyen binarios de PHP para que el servidor de
2) Editor de texto
3) explorador Web capaz de renderizar el contenido de
Diseño de Sistemas
Descripción:
css = nuestro css de la plantilla
isValid = no utilizado en este tutorial, pero podría ser útil una vez que consiga la caída de este, para comprobar si la plantilla es válido sobre la base de criterios de lo que cada vez que usted decida (ubicación del archivo no válida, algo que no define etc etc)
templateDir = el camino e incluyendo el directorio contendo nuestra plantilla de
TemplateDir () = el constructor
pantalla (archivo) = el archivo para mostrar en nuestra plantilla
function Template(){
$this->templateDir = "default";
$this->css = "default.css";
}
-
-
- function Template(){
- $this->templateDir = "default";
- $this->css = "default.css";
- }
-
Aquí se define la plantilla dir como "predeterminado", que significa esto, si usted está trabajando en casa de archivo / mypage.php e incluyendo el archivo de plantilla de allí, la ruta de acceso al directorio que contiene información o se casa / default /. Así, en otras palabras, la carpeta será relativo a la ruta del archivo de llamadas. A continuación definimos la hoja de estilos como default.css que significa que la ruta de acceso es el hogar / default / default.css. ¿Entendido? Gran permite pasar a continuación
function display($file){
$template = $this;
error_reporting(E_ALL);
include_once("template/" . $this->templateDir ."/".$file);
}
-
- function display($file){
- $template = $this;
- error_reporting(E_ALL);
- include_once("template/" . $this->templateDir ."/".$file);
- }
-
Aquí ponemos el nivel de reporte de error, es posible que en una etapa posterior queremos definir una especie de bandera que cambia el nivel de presentación de informes en función del entorno, como la producción o una instancia de desarrollo. a continuación, se incluye el archivo de acuerdo con el directorio que se especifica en el constructor. este camino ha plantilla anteponiendo como prefiero guardar mis plantillas en el directorio de plantillas (que gracioso). Así que el camino sería casa / templates / default.
La clase en toda su gloria a continuación
<?php
class Template{
var $templateDir;
var $css;
var $isValid;
function Template(){
$this->templateDir = "default";
$this->css = "default.css";
}
function display($file){
$template = $this;
error_reporting(E_ALL);
include_once("template/" . $this->templateDir ."/".$file);
}
}
?>
-
- <?php
-
- class Template{
-
- var $templateDir;
- var $css;
- var $isValid;
-
- function Template(){
- $this->templateDir = "default";
- $this->css = "default.css";
- }
- function display($file){
- $template = $this;
- error_reporting(E_ALL);
- include_once("template/" . $this->templateDir ."/".$file);
- }
- }
-
- ?>
-
El derecho de todos conmigo hasta ahora? Gran permite definir algunas plantillas
header.tpl (dentro de la carpeta por defecto)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>My Template :: <?php echo $template->title; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="template/<?php echo $template->templateDir . "/default.css" ?>" rel="stylesheet" type="text/css" />
</head>
<body>
<div>
My Template header <?php echo $template->welcome; ?>
</div>
-
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html>
- <head>
- <title>My Template :: <?php echo $template->title; ?></title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <link href="template/<?php echo $template->templateDir . "/default.css" ?>" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div>
- My Template header <?php echo $template->welcome; ?>
- </div>
-
Ahí vamos, guarde el archivo y permite proceder a home.tpl en el mismo directorio
<div>
Well hello there <?php echo $template->name; ?><br />
I am so glad you could join me on my <?php echo $template->content; ?><br />
Look here, I have put your name in a textbox <input type='text' id="txtMyName" value="<?php echo $template->name; ?>" /><br />
have a happy day!
</div>
</body>
-
- <div>
- Well hello there <?php echo $template->name; ?><br />
- I am so glad you could join me on my <?php echo $template->content; ?><br />
- Look here, I have put your name in a textbox <input type='text' id="txtMyName" value="<?php echo $template->name; ?>" /><br />
- have a happy day!
- </div>
- </body>
-
Cool por lo que ahora nuestra aplicación se hace! He incluido el cuadro de texto para que pueda ver que esto se puede utilizar en los formularios de entrada de datos cuando los datos de edición. < br>
Uso
Bueno, yo apuesto a que ganas de ver este derecho? bien, incluso si no te voy a mostrar de todos modos

Asumamos nuestra página php se llama mypage.php.
Lo primero que hacemos es incluir la clase de plantilla
include_once("lib/Template.class.php") // I have saved the template class we added into a dir called lib as file name Template.class.php
-
- include_once("lib/Template.class.php") // I have saved the template class we added into a dir called lib as file name Template.class.php
-
Lo siguiente que hacemos es crear una referencia al objeto de plantilla (para aquellos que han trabajado con las clases el término correcto es crear una instancia de clase de plantilla)
$oTemplate = new Template();
-
- $oTemplate = new Template();
-
Bien, ahora tenemos que rellenar las variables de la página
$oTemplate->title = "Check out my template page!";
$oTemplate->welcome = "Howdy doody!";
$oTemplate->name = "Captain Cheese Monkey";
$oTemplate->content = "Here I can put all my html content, whether it be a read from a file or dynamically created content from my super DB";
-
- $oTemplate->title = "Check out my template page!";
- $oTemplate->welcome = "Howdy doody!";
- $oTemplate->name = "Captain Cheese Monkey";
- $oTemplate->content = "Here I can put all my html content, whether it be a read from a file or dynamically created content from my super DB";
-
Y lo hace todo! Aquí está la página completa
mypage.php
<?php
include_once("lib/Template.class.php");
$oTemplate->title = "Check out my template page!";
$oTemplate->welcome = "Howdy doody!";
$oTemplate->name = "Captain Cheese Monkey";
$oTemplate->content = "Here I can put all my html content, whether it be a read from a file or dynamically created content from my super DB";
$oTemplate->display("header.tpl");
$oTemplate->display("home.tpl");
?>
-
- <?php
- include_once("lib/Template.class.php");
-
- $oTemplate->title = "Check out my template page!";
- $oTemplate->welcome = "Howdy doody!";
- $oTemplate->name = "Captain Cheese Monkey";
- $oTemplate->content = "Here I can put all my html content, whether it be a read from a file or dynamically created content from my super DB";
-
- $oTemplate->display("header.tpl");
- $oTemplate->display("home.tpl");
- ?>
-
Y que, como dicen en los clásicos es que. Niza, limpio y simple. Puede ampliar esta de aquí a las cuatro esquinas del planeta (está justo al piso?) Y disfrutar de tiempo haciendo las cosas divertidas como codificación de la lógica en oposición a la codificación de cadenas de HTML!
Conclusión
Este es un ejemplo muy simple diseñado para conseguir que la puesta en funcionamiento rápidamente. Esta no es una solución completa, pero está destinado a ayudar a entender cómo separar la lógica de su punto de vista y cómo crear modelos de Niza limpia, que permita un fácil mantenimiento y reusage contenido.
Perro rabioso a cabo.