Symfony Framework

Symfony İlk Uygulama

View oluşturma

Öncelikle, verilerimizi ekranda göstermenizi sağlayacak olan dosyaları oluşturmak için:

1. C:\wamp\www\mysym\app\Resources\views dizini altında myview (istediğiniz adı verebilirsiniz) adlı yeni bir dizin oluşturun.

2. myview dizininin altında index.html.twig (index yerine istediğiniz adı verebilirsiniz) adlı bir dosya oluşturun ve metin editörünüzde açın.

3. Dosyanın içine aşağıdaki ifadeleri yazarak kaydedin:

<h1>Ana sayfa içeriği</h1>

Controller oluşturma

Tüm istemcilerden gelecek olan taleplere gerekli işlemleri yapacak olan bir ana kontrol dosyası oluşturmak için:

1. C:\wamp\www\mysym\src\AppBundle\Controller dizini altında bulunan DefaultController.php dosyasının içeriğini, açtığınız yeni bir dosya içine kopyalayın ve dosyayı MainController.php adı ile 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 DefaultController extends Controller
{
    /**
    * @Route("/", name="homepage")
    */
    public function indexAction(Request $request)
    {
        // replace this example code with whatever you need
        return $this->render('default/index.html.twig', [
            'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
        ]);
    }
}

2. MainController.php dosyası içinde:

a. 'default/index.html.twig' ifadesini 'myview/index.html.twig' olarak değiştirin.

b. Aşağıdaki ifadeyi komple silin.

, [
            'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
        ]

c. DefaultController ifadesi yerine MainController ifadesini yazın.

d. indexAction ifadesi yerine mainAction ifadesini yazın.

e. Sonuç olarak, MainController.php dosyasının son hali aşağıdaki gibi olacaktır:

// 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');
    }
}

f. MainController.php dosyasını kaydedin.

Artık, web sitenize gelen istekler, ana Controller dosyası olan MainController.php tarafından ana sayfa olan index.html.twig içeriği gösterilecek şekilde yönlendirilecektir.

3. Komut istemi penceresinde ve Symfony projenizin dizini içinde iken, php bin/console server:run komutunu çalıştırdıktan sonra, tarayıcınızın adres çubuğundan http://localhost:8000 ifadesini girerek uygulamaya erişim sağladığınızda, karşınıza aşağıdakine benzer bir ekran görüntüsü gelecektir: