Een experiment / idee

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Dennis Sluijk

Dennis Sluijk

23/08/2011 12:07:51
Quote Anchor link
Heeej,

Ik had gister een idee om (ik denk) snel websites te kunnen maken. Hier is de download link : download

De index.php ziet er als volgt uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
    include_once("lib/Website.class.php");
    include_once("lib/Position.class.php");
    include_once("lib/Module.class.php");
    include_once("lib/Database.class.php");
    
    //MODULES
    include_once("modules/Tekst.php");
    include_once("modules/Menu.php");
    include_once("modules/LoginForm.php");
    
    //MAAK VERVINDING MET EEN DATABASE
    Database::Connect("localhost","root","","social");

    //START WEBSITE
    $website = new Website('Dennis Sluijk - Home');
    $website->addStylesheet('style/style.css');
    $website->addJavascript('lib/javascript/jquery.js');
    $website->addJavascript('lib/javascript/dynaload.js');
    
    //MAKE MENU
    $mainmenu = new Menu();
        
        $home = new MenuItem('Home','index.php','');
        
        $informatie = new MenuItem('Informatie','informatie.php','');

            $informatiesub = new Menu();
            $informatiesub->addMenuItem(new MenuItem('Honden','#',""));
            $informatiesub->addMenuItem(new MenuItem('Katten','#',""));
            
            $informatie->addMenu($informatiesub);
        
    $mainmenu->addMenuItem($home);
    $mainmenu->addMenuItem($informatie);
    
    //MAKE LOGIN FORM
    $loginform = new LoginForm();
    
    $left = new Position('left');
        $left->appendModule($mainmenu);
        $left->appendModule($loginform);
    
    $tekst = new Tekst('Test test TEKST TEKST IPSUM DINGEN');
    
    $content = new Position('content');
        $content->appendModule($tekst);
    
    $main = new Position('main');
    $main->appendPosition($left);
    $main->appendPosition($content);

    //APPEND POSITIONS
        $website->appendPosition($main);
    
    
    echo $website->fetch();

?>


Je kan natuurlijk het menu enzovoorts opslaan in een appart bestand die je dan bij de volgende pagina bijvoorbeeld cats.php alleen hoef te includen. Het uiteindelijke doel van het systeem is zodat je dingen kan hergebruiken

hier is een download link voor alle bestanden: download

Mij vraag is wat jullie er van vinden
Gewijzigd op 23/08/2011 12:19:28 door Dennis Sluijk
 
PHP hulp

PHP hulp

28/11/2021 04:25:40
 
Maikel  B

Maikel B

23/08/2011 12:09:21
Quote Anchor link
heb je ergens een voorbeeld online staan?
 
Dennis Sluijk

Dennis Sluijk

23/08/2011 12:11:49
Quote Anchor link
Nee. Ik heb geen hostingplekje
 
Jacco Brandt

Jacco Brandt

23/08/2011 12:37:07
Quote Anchor link
Wat is hiervan het voordeel ten opzichte van views? (met een parser zoals smarty)
 
Dennis Sluijk

Dennis Sluijk

23/08/2011 12:38:45
Quote Anchor link
Jah zat er al aan te denken om een soort fileInclude functie te maken waar je dan gewoon een file kan opgeven. en dat je dan gewoon data kan meesturen
Gewijzigd op 23/08/2011 12:42:29 door Dennis Sluijk
 
Jacco Brandt

Jacco Brandt

23/08/2011 13:00:49
Quote Anchor link
Zegmaar smarty?
 
Dennis Sluijk

Dennis Sluijk

23/08/2011 13:04:05
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php

class Template
{
    public $vars;
    public $file;
    
    function
__construct($file = null)
    {

        $this->file = $file;
    }
    
    function
set($name,$value)
    {

        $this->vars[$name] = is_object($value) ? $value->fetch() : $value;
    }
    
    function
fetch($file = null)
    {

        if(!$file) $file = $this->file;
        if($this->vars) extract($this->vars);
        
        ob_start();
        include($file);
        $content = ob_get_contents();
        
        ob_end_clean();
        
        return $content;
    }
}


?>


Dit is het zelfde idee als smarty..
 
Jacco Brandt

Jacco Brandt

23/08/2011 13:48:43
Quote Anchor link
En wat word hier het voordeel van, bovenop smarty?
 
Fabian M

Fabian M

23/08/2011 15:09:18
Quote Anchor link
Nee, dit is geen smarty, omdat hier geen gebruik wordt gemaakt van een externe template.

Elke klasse vertegenwoordigt een HTML element..

OT: Het ziet er goed uit. Lijkt een beetje op de java.awt klassen bibliotheek.
Gewijzigd op 23/08/2011 15:09:44 door Fabian M
 
Jacco Brandt

Jacco Brandt

23/08/2011 15:27:56
Quote Anchor link
Als een functie zo begint:
function fetch($file = null)
neem ik aan dat er een extern bestand in word geladen.
 
Dennis Sluijk

Dennis Sluijk

23/08/2011 16:29:20
Quote Anchor link
Deze Template class is toch bijna het zelfde idee als Smarty ?? of heb ik dat nou fout??? Dit is een uitbreiding van de Template classe

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
class CachedTemplate extends Template
{        
    public $expireTime;
    
    public $cached_id;
    
    public $cached;
    
    public function __construct($cached_id = null, $expireTime = 600) {
        $this->expireTime = $expireTime;
        
        $this->cached_id = 'cache/' . md5($cached_id);
    }

    
    public function is_cached() {
    
        if($this->cached) return true;
    
        if(!$this->cached_id) return false;
    
        if(!file_exists($this->cached_id)) return false;
        
        if(!($fmtime = filemtime($this->cached_id))) return false;
        
        if(($fmtime + $this->expireTime) < time()) {
                @
unlink($this->cache_id);
            return false;
        }
    
        else {
            $this->cached = true;        
            
            return true;
        }
    }

    
    public function fetch_cache($file) {
        if($this->is_cached()) {
            $filehandle = fopen($this->cached_id, 'r');
            $data = fread($filehandle, filesize($this->cached_id));
            fclose($filehandle);
            
            return $data;
        }

        else {
            $data = parent::fetch($file);
        
            $filehandle = fopen($this->cached_id, 'w');
            fwrite($filehandle, $data);
            fclose($filehandle);
        
            return $data;
        }
    }

    
    public function dump() {
        if($this->is_cached()) {
            @
unlink($this->cache_id);
        }
    }
    

}


?>


hiermee kan je templates mee cachen
Gewijzigd op 23/08/2011 20:40:17 door Dennis Sluijk
 
Pim -

Pim -

23/08/2011 20:27:40
Quote Anchor link
Wat heb je aan het cachen van een template als je dan geen variabelen meer kan gebruiken?
En wat is überhaupt het voordeel van het genereren van html (zeker als je DOM niet dynamisch is).
 
Dennis Sluijk

Dennis Sluijk

23/08/2011 20:33:29
Quote Anchor link
Die Template classe heeft niets met het bovenste te maken. Maar bijvoorbeeld als ik een pagina heb waar de content in de database staat maakt hij het er een hardcode html pagina van stel ik heb 1000 bezoekers op de pagina per dag dan hoef je niet elke keer een aanvraag naar de database doen.

PS. De bovenste 2 klassen Template en CachedTemplate zijn voorbeelden die ongeveer het zelfde doen als Smarty.

Toevoeging op 23/08/2011 20:41:11:

SLOTJE graag
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

23/08/2011 21:01:30
Quote Anchor link
Smarty en al op template gebaseerde websites zijn fun als je maar een klein aantal gebruikers hebt.
Hebben jullie ooit weleens de broncode die smarty genereert bekeken?
Als ik van zo`n soort cms de broncode weergeef is die over de 4000 regels!
 
Dennis Sluijk

Dennis Sluijk

23/08/2011 21:06:06
Quote Anchor link
Kan iemand mij de beste manier van programmeren vertellen?
 
Jacco Brandt

Jacco Brandt

23/08/2011 22:40:47
Quote Anchor link
Smarty maakt de broncode precies zoals je zelf zegt dat ze moeten worden.
 
Dennis Sluijk

Dennis Sluijk

23/08/2011 22:41:28
Quote Anchor link
Jacco Brandt op 23/08/2011 22:40:47:
Smarty maakt de broncode precies zoals je zelf zegt dat ze moeten worden.


Jah ik vond ook al zo raar :S
 
Write Down

Write Down

24/08/2011 01:22:08
Quote Anchor link
Ik ben ook geen voorstander van Smarty. Het is zeker en vast mooi, maar vaak te uitgebreid. Ik ken genoeg programmeurs die het gebruiken die hun CSS, JavaScript, en zelfs hun HTML minifien. Maar ooh jee, als je hun verteld dat Smarty eigenlijk veel meer opslokt, terwijl ze slechts er 10% van gebruiken.

Dus een eigen template-parser vind ik in dat opzicht zeker een meerwaarde. Ik zou er dus zeker mee verder gaan. Maar overdrijf niet...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
    $website->addStylesheet('style/style.css');
    $website->addJavascript('lib/javascript/jquery.js');
    $website->addJavascript('lib/javascript/dynaload.js');


Waarom? Gewoon in een header.tpl standaard inzetten. Evt zou je bepaalde stukjes script kunnen uitschakelen door een IF-structuur in je template-parser te bouwen.

{$IF_JS}
laat wat script in
{/$IF_JS}

addIf('if_js', true);
 
Jacco Brandt

Jacco Brandt

24/08/2011 12:30:13
Quote Anchor link
Hmm, ik heb het nagekeken, en smarty zorgt inderdaad voor een extra hoeveelheid code. Ik zal deze parser dus toch eventjes gaan doorspreken met mijn collega.

Maar kan de extra waarde op de site wel echt kwaad, de hoofdzakelijke snelheid zit in dit geval toch in het 'downloaden' van de site, iets waarvoor het minifien toch nog wel nut heeft?
 
Dennis Sluijk

Dennis Sluijk

24/08/2011 12:31:38
Quote Anchor link
Jacco Brandt op 24/08/2011 12:30:13:
Hmm, ik heb het nagekeken, en smarty zorgt inderdaad voor een extra hoeveelheid code. Ik zal deze parser dus toch eventjes gaan doorspreken met mijn collega.

Maar kan de extra waarde op de site wel echt kwaad, de hoofdzakelijke snelheid zit in dit geval toch in het 'downloaden' van de site, iets waarvoor het minifien toch nog wel nut heeft?


Jah idd veel zal het niet uitmaken.
 
Kees Schepers

kees Schepers

24/08/2011 13:28:05
Quote Anchor link
Ik vindt Smart van grote toegevoegde waarde als je werkt in een team met ontwikkelaars waarbij een duidelijke scheiding is tussen frontend en backend ontwikkelaars. Qua parsetijd scheelt minify'en e.d. zeker meer als Smarty. Smarty verbruikt ongeveer 0.3s van je pagina. Veel sites kunnen hele seconden besparen door plaatjes te comprimeren, javascript, HTML, etc.

Maargoed in combinatie met ZendFramework vindt ik Smarty minder een succes.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.