• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Template System PHP

+1 głos
820 wizyt
pytanie zadane 28 września 2015 w PHP przez Ehlert Ekspert (215,210 p.)
edycja 28 września 2015 przez Ehlert

Witam,

wrzucam mechanizm w PHP działający na klasie Template.
Klasa:

<!--plik template.inc.php -->
<?php
	class Template{
		public $tmpl;
		public $dane;//tablica elementow do obroki
		
		function Template($plik){
			$this->tmpl=implode('', file($plik));
			$dane=Array();
		}
		
		function add($nazwa, $wartosc){
			$this->dane[$nazwa]=$wartosc;
		}
		
		function execute(){
			 return preg_replace('/{([^}]+)}/e', '$this->dane["\\1"]', $this->tmpl);
		}
	};
?>

Index.php:

<!-- test.php -->
<?php
	include "template.inc.php";
	$tmpl=new Template('test.tmpl');
	$tmpl->add('title', 'Moja fajna strona');
	$tmpl->add('imie', 'Jan');
	$tmpl->add('podpis', 'Jan Kowalski');
	$tmpl->add('charset', 'iso-8859-2');
	echo $tmpl->execute();
?>

W pliku którego nazwę podajecie w parametrze konstruktora powinna być napisana w HTML niezmienna zawartość strony. Zmienna zawartość ma być umieszczona w następujących tagach

{jakas_zmienna_wartosc}

Potem za pośrednictwem funkcji add dodajecie do tablicy asocjacyjnej daną wartość tak jak w pliku test.php. I nagle pracuje się z PHP bez kodu HTML. MAGIC laugh

Pozdrawiam

2 odpowiedzi

+1 głos
odpowiedź 28 września 2015 przez writen Nałogowiec (29,060 p.)
Teoretycznie fajnie, działa i tak dalej. Praktycznie takie coś nie ma sensu w budowaniu większych aplikacji.

W tego typu systemach szablonów najważniejszą rzeczą jest mechanizm cache. Chodzi o to żeby szablony były proste, przejrzyste, a przede wszystkim pozwalały szybciej generować zawartość.

Bo taki mechanizm parsowania jak wyżej trwa dłużej niż jakbym wywołał echo. Prawda?

Osobiście polecam skorzystać z gotowych, rozbudowanych o dodatkowe mechanizmy, systemów szablonów, takich jak Smarty, Twig lub chociażby dla prostych zastosowań RainTpl.

Sam korzystam z frameworka php Phalcon, w którym system szablonów Volt jest podobny do Twig'a (o ile na nim nie bazuje).

Oczywiście warto wiedzieć jak działają takie systemy od środka. Takie skrypty jak wyżej na pewno pomogą w zrozumieniu ich działania.
0 głosów
odpowiedź 28 września 2015 przez event15 Szeryf (93,790 p.)
A jakie jest pytanie? Albo o co chodzi? :P
komentarz 28 września 2015 przez Ehlert Ekspert (215,210 p.)

Napisałeś publicznie na forum, to czemu rozwiązanie ma być w wiadomości prywatnej? Może inni użytkownicy będą miec kiedyś podobny problem i jedyne co zobaczą to "rozwiązane na PW".

https://forum.pasja-informatyki.pl/64197/php-z-szablonami-tpl 

komentarz 28 września 2015 przez writen Nałogowiec (29,060 p.)
Myślę, że dyskutować bez zadanego pytania tez można.

Podobne pytania

+8 głosów
1 odpowiedź 1,152 wizyt
pytanie zadane 1 listopada 2016 w Nasze poradniki przez niezalogowany
0 głosów
2 odpowiedzi 494 wizyt
pytanie zadane 14 października 2015 w C i C++ przez 0xf Dyskutant (8,180 p.)
0 głosów
2 odpowiedzi 599 wizyt
pytanie zadane 5 października 2015 w C i C++ przez 0xf Dyskutant (8,180 p.)

93,771 zapytań

142,731 odpowiedzi

323,383 komentarzy

63,372 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...