• 11-04-2020, 12:09:28
    #1
    Platin üye
    Merhaba arkadaşlar benim bir sorunum var. Mvc denemesi yapıyordum. Template engine yaparken tıkandım kaldım.

    self::$sablon = file_get_contents(SABLONDOSYA.$dosya.".sablon.php");
    //bu üstteki template dosyası
    self::$sablon = preg_replace('/@if (.*)r/', '<?php if( $1 ): ?>'.PHP_EOL, self::$sablon);
    //bu üstteki ise template içindeki if komutunu php ye çevirmesi için yazdığım kod
    @if $kosul
    koşul doğru
    @endif
    yukardaki ise template içeriği

    echo self::$sablon; //yukardaki gibi yazdırdığımda php taglarını da html tag mış gibi direk kaynak koda basıyor
    eval(" ?>".self::$sablon); //yukardaki eval kodunu kullandığımda ise dışarda oluşturduğum değişkeni içeriye aktaramıyorum
    sadece değişkenleri str_replace ile değiştirebiliyorum ama iş döngülere gelince mecburen dışardan değişkenleri görmesi gerekiyor.

    Bu işten anlayanlar bi bakabilir mi?
  • 11-04-2020, 12:31:38
    #2
    Neden diye sormak istiyorum. Neden?
    Kendi MVC altyapınızı hazırlamak istiyorsanız diğerlerinin yaptığı gibi hazır kütüphaneleri adapte edebilirsiniz.
    Bir örneği: https://github.com/mattstauffer/Torch
    Laravelin kullandığı kütüphaneleri nasıl kullanabileceğinizi anlatıyor.
  • 11-04-2020, 12:34:19
    #3
    Platin üye
    TheKhan adlı üyeden alıntı: mesajı görüntüle
    Neden diye sormak istiyorum. Neden?
    Kendi MVC altyapınızı hazırlamak istiyorsanız diğerlerinin yaptığı gibi hazır kütüphaneleri adapte edebilirsiniz.
    Bir örneği: https://github.com/mattstauffer/Torch
    Laravelin kullandığı kütüphaneleri nasıl kullanabileceğinizi anlatıyor.
    biliyorum hocam hazır var ama ben kendim yapmak istiyorum
  • 11-04-2020, 12:58:23
    #4
    Tema motorları aşırı karmaşıktır. İşin içinde sadece if/else yok. for, foreach, counter vs vs gibi bir sürü şey var. Eğer zamanınız yoksa yada deneyimli değilseniz vakit kaybetmenizi tavsiye etmiyorum. Ancak yine de siz bilirsiniz.
    Tüm tema motorları aynı mantıkta çalışır. Tema moturuna tema motorunda gördüğü değişkenlerin her birinin ne anlama geldiğini söylersiniz, oda str_replace yada preg_replace gibi bir komut ile tema dosyasının içerisindeki parametreleri değiştirir. Daha sonra çıkan kodu PHP olarak çalıştırır.
    Smarty ile örnekleyeyim:
    $smarty->assign('degisken', $degisken);
    $smarty->display('temadosyasi.tpl');
    1. satırda smartynin değişkenler listesine ekleme yapıyoruz
    2. satırda ise neyi render edeceğini söylüyoruz. Bu adımdan sonra kendisi yukarıda belirttiğim şekilde davranıyor. Sizde aynı mantıkta yapmalısınız.