- Liittynyt
- 18.11.2019
- Viestejä
- 74
Moi,
heti alkuun haluaisin sanoa että en ole ohjelmistokehityksen ammattilainen. Leipätyökseni seilaan maailman meriä, joka kaiketi näkyy koodissa. Jokatapauksessa, mulla olis pari kysymystä teille, oikeille ammattilaisille.
Eli siis, mulla on pienimuotoinen nettisivuprojekti, ja ihan oppimistarkoituksessa oon lähtenyt kokeilemaan, että miten tällänen ns. "Template Engine" toimii ja millaisia mahdollisuuksia se tarjoaa. En ole vertaamassa / vertaa tätä mihinkään oikeaan template engineen, kuten Twig ym.
Mulla on siis yksinkertainen ajatus tän suhteen, luon yksinkertaisen classin, joka lataa .html tiedoston sisällön (about näin)
Eli, tää siis ensin varmistuu että sille on annettu toi template, ja jos se annettu template löytyy määritetyn polun päästä hakee sen template tiedoston sisällön.
Tämän jälkeen, loin methodin, joka etsii tuosta haetusta tiedostosta korvattavan syntaxin, sanotaan vaikka { VAR }, korvaa sen annetulla arvolla.
Ja tämän jälkeen sitten mulla on render -method, joka sit puolestaan renderöi uuden tiedoston.
Eli mua kiinnostaisi kuulla muiden mietteitä tästä, missä menee vikaan, mitä teen turhaan, jne. Ai niin ja millaisia turvallisuusriskejä tälläinen lähestymistapa luo?
Uskon itse, että tää kestää pienen - keskisuuren trafiikin ihan ongelmitta, mutta kovassa ruuhkassa voi jäädä jalkoihin (?) Ensin mietin että pitäiskö template-tiedosto cachettaa, mutta lopputulema johon tulin on seuraava;
- Sivusto tarjoilee dynaamista dataa, joten cachettelu ei taida oikein olla vaihtoehto search, replace -> cache -> render välissä(?)
- Miksi hitossa mä cachettelisin tekstitiedostoja ( cache -> search, replace -> render)
Kiitos, ja kumarrus, toivottavasti edes joku ymmärtää
heti alkuun haluaisin sanoa että en ole ohjelmistokehityksen ammattilainen. Leipätyökseni seilaan maailman meriä, joka kaiketi näkyy koodissa. Jokatapauksessa, mulla olis pari kysymystä teille, oikeille ammattilaisille.
Eli siis, mulla on pienimuotoinen nettisivuprojekti, ja ihan oppimistarkoituksessa oon lähtenyt kokeilemaan, että miten tällänen ns. "Template Engine" toimii ja millaisia mahdollisuuksia se tarjoaa. En ole vertaamassa / vertaa tätä mihinkään oikeaan template engineen, kuten Twig ym.
Mulla on siis yksinkertainen ajatus tän suhteen, luon yksinkertaisen classin, joka lataa .html tiedoston sisällön (about näin)
PHP:
//construct method
if(!empty($template_file)) {
if(file_exists($template_file)) {
$this->template = file_get_contents($template_file);
}
}
Tämän jälkeen, loin methodin, joka etsii tuosta haetusta tiedostosta korvattavan syntaxin, sanotaan vaikka { VAR }, korvaa sen annetulla arvolla.
PHP:
public function pass($toReplace, $replaceWith) {
if(!empty($toReplace)) {
$this->template_data[strtoupper($toReplace)] = htmlspecialchars($replaceWith);
}
}
Ja tämän jälkeen sitten mulla on render -method, joka sit puolestaan renderöi uuden tiedoston.
PHP:
public function render() {
if(count($this->template_data) > 0) {
foreach($this->template_data as $var => $tpl_data) {
$this->template = str_replace('{'.$var.'}', $tpl_data, $this->template);
}
}
echo $this->template;
}
Eli mua kiinnostaisi kuulla muiden mietteitä tästä, missä menee vikaan, mitä teen turhaan, jne. Ai niin ja millaisia turvallisuusriskejä tälläinen lähestymistapa luo?
Uskon itse, että tää kestää pienen - keskisuuren trafiikin ihan ongelmitta, mutta kovassa ruuhkassa voi jäädä jalkoihin (?) Ensin mietin että pitäiskö template-tiedosto cachettaa, mutta lopputulema johon tulin on seuraava;
- Sivusto tarjoilee dynaamista dataa, joten cachettelu ei taida oikein olla vaihtoehto search, replace -> cache -> render välissä(?)
- Miksi hitossa mä cachettelisin tekstitiedostoja ( cache -> search, replace -> render)
Kiitos, ja kumarrus, toivottavasti edes joku ymmärtää