View basit bir web sayfası, ya da başlık, alt-başlık, kenar-kolonu gibi sayfa parçasıdır. Gerçekte, eğer bir hiyerarşiye ihtiyacınız varsa, View dosyaları diğer View dosyaları içine de esnek olarak gömülebilirler. View dosyaları, asla doğrudan çağrılmaz (router içinden hariç) , controller dosyaları tarafından yüklenirler.
MVC çatısını hatırlarsak, Controller'lar bir trafik polisi gibi davranıp, belirli View dosyalarını getirirler.
Eğer Controller sayfasını okumadıysanız, devam etmeden önce okuyunuz.
Hadi Controller sayfasında hazırladığınız örnek controller dosyasını kullanıp, ona bir View ekleyelim.

namespace Controllers;

// controller namespace'ini kullanacağımı bildirdim
use \Core\Controller as controller;

class OrnekController extends controller
{
    /**
     * Ornek 4 -- View yapısı
     * view yapısının kullanımı
     */
    public function view_ornegi()
    {
        View::Render('ornekler/basit_ornek_view');
    }

}
view dosyası örneği Views/iletisim/iletisim_view.php

bu dosya bir view örneğidir

***---Layout Mantığı---**** Layout yapısında farklı alanların getirilmesidir örneğin sitenin head kodlarının bulunacağı head alanı sitenin header kodlarının bulunacağı alanı sitenin en altının bulunacağı footer alanının çağrılmasını sağlar

namespace Controllers;

// kontroller namespace'ini kullanacağımı bildirdim
use \Core\Controller as controller;

class OrnekController extends controller
{
    /**
     * Ornek 5 -- View layout yapısının kullanımı 
     * view yapısının kullanımı
     */
    public function view_layout()
    {
        View::RenderTemplate('head_view');
        View::RenderTemplate('header_view');
        View::Render('ornekler/basit_ornek_view');
        View::RenderTemplate('footer_view');
    }

}

  • View::RenderTemplate bu dosya Views altında templates klasorundeki dosyalardan ilgili olan dosyayı çağırır
  • View::Render bu dosya Views altında klasörlerden ilgili olan dosyayı çağırır
View'e veri akatarımı

Layout yapılarına diğer view dosyalarına controller içinden değer gönderilmesini sağlar.
Örneğin sitenin head kodlarının bulunacağı head alanı ,sitenin header kodlarının bulunacağı alanın içine controller içinden veri gonderilmesini sağlar


namespace Controllers;

// kontroller namespace'ini kullanacağımı bildirdim
use \Core\Controller as controller;

class OrnekController extends controller
{
    /**
     * Ornek 6 -- View dosyalarına veri gonderimi
     * view yapısının kullanımı
     */
    public function view_veri_aktarimi()
    {
        $data = array(
            "site_adi" => "Hakkımızda",
            "icerik" => "lorem ipsum ,lorem ipsum, lorem ipsum, lorem ipsum ,lorem ipsum "
        );
        
        $data_head['site_baslik']= "Hakkımızda";
        
        View::RenderTemplate('head_view',$data_head);
        View::RenderTemplate('header_view');
        View::Render('ornekler/data_aktarimi_view',$data);
        View::RenderTemplate('footer_view');
    }

}

Views/ornekler/data_aktarimi_view.php

echo $site_adi; echo "\n"; echo $icerik;
HATIRLATMA
  • View::RenderTemplate bu dosya Views altında templates klasorundeki dosyalardan ilgili olan dosyayı çağırır
  • View::Render bu dosya Views altında klasörlerden ilgili olan dosyayı çağırır