Symfony Framework

Symfony'de Web Sayfası Ekleme

Halen, uygulamamızda sadece index.html.twig adlı tek bir sayfamız var. İkinci bir sayfa eklemek için:

1. C:\wamp\www\mysym\app\Resources\views\myview dizini altında bulunan index.html.twig dosyasının içeriğini, açtığınız yeni bir dosya içine kopyalayın ve dosyayı urunler.html.twig adı ile kaydedin.

{# app/Resources/views/myview/urunler.html.twig #}
{% extends 'main.html.twig' %}
{% block body %}
<h1>Ürünler sayfası</h1>
{% endblock %}

2. urunler.html.twig sayfasını ekranda göstermek için kullanılacak bir Route oluşturmak için MainController.php dosyasını aşağıdaki hale getirerek kaydedin.

// src/AppBundle/Controller/MainController.php
namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class MainController extends Controller
{
    /**
    * @Route("/", name="homepage")
    */
    public function mainAction(Request $request)
    {
        return $this->render('myview/index.html.twig');
    }
	
    /**
     * @Route("/urunler", name="Ürünler")
     */
    public function productsAction(Request $request)
    {
        return $this->render('myview/urunler.html.twig');
    }		
}

3. Tarayıcınızın adres çubuğundan http://localhost:8000/urunler ifadesini girerek uygulamaya erişim sağladığınızda, karşınıza aşağıdakine benzer bir ekran görüntüsü gelecektir:

Her web sayfası için Controller'dan türetilen sınıf içinde bir Action fonksiyonu tanımlamak gerekiyor. Action başındaki @Route() metodunun ilk parametresi sayfaya giriş için adres çubuğunda kullanılacak değeri gösteriyor ve adres çubuğunda ana dizin yanına yazılarak (http://localhost:8000/urunler) giriş sağlanıyor.

render() metodunda parametre olarak kullanılmak üzere her web sayfası için bir şablon adı tanımlamak ve oluşturmak gerekiyor.