Laravel 5.2 Controller

Merhaba arkadaşlar öncelikle hayırlı bayramlar dilerim. Hemen dersimize geçelim :) Laravel ile birlikte kütüphanelerin ortak özelliği olan MVC (Model View Controller) Yapısına artık bu dersimiz ile başlıyoruz. Bu da demek oluyor ki artık 2.adımdayız :) 

 

Öncelikle Model , View ve Controller'ın ne olduğunu öğrenelim ki terimler yabancı gelmesin ve bu terimleri en sade hali ile açıklayacağım zaten kullandıkça herşeyi daha iyi anlayacaksınız.

 

Model kısmı veritabanı işlemlerinin yapıldığı yerdir.

 

View kısmı projenin tasarım kodlarının bulunduğu yerdir. HTML sayfalar gibi de düşünebiliriz.

 

Controller kısmı hazırladığımız PHP işlemleri yerine getirir ve bunları Viewe gönderir. Kısacası Model ile View arasındaki köprü görevide görür.

 

MVC Terimleri en sade haliyle böyle isterseniz kullandıkça bu terimlerin anlamlarını kendiniz kavrarsınız isterseniz ayrıyeten internetten araştırırsınız size kalmış bu kısım. Kullanım kılavuzu okumadan elektronik parçayı öğrenmek gibi :)

 

MVC Yapısını temel olarak öğrendiğimize göre ilk olarak Controller ile başlayacağız. Bir önceki derste Route yapısını öğrenmiştik ve yazılan Rotayı uygun Controller dosyasına göndermiştik. Şimdi bu derste Route yapısını değiştireceğiz 

 

Route::get('/', 'LaravelCont@anasayfa');

Route::get('/hakkimizda', 'LaravelCont@hakkimizda');

Route::get('/iletisim', 'LaravelCont@iletisim');

Route::get('/parametreDenemesi/{id?}', 'LaravelCont@parametreDenemesi');

Route::get('/digerParametreDenemesi/{id?}', 'LaravelCont@digerParametreDenemesi');

 

Standart kurumsal site gibi bir route belirledik ve bir süre bu şekilde devam edeceğiz.

 

Controller dersimiz ile PHP Artisan komutlarını kullanmaya başlayacağız. Bu Komutlar linux komutları olduğu için Git yüklememiz gerektiğini söylemiştik. Git programının kurulu olduğunu varsayarak (Kurulumla ilgili sorularınız olursa sorabilirsiniz) Laraveli kurduktan sonra projenin bulunduğu yere gidip proje klasörünün içine girdikten sonra sağ tıklayıp Git Bash Here kısmına tıklıyoruz. Açılan pencere siyah console ekranı yani terminal ekranıdır (Windowsda ki "çalıştır" ekranının linuxda ki karşılığı) ve bulunduğunuz dizin gözüküyor zaten. PHP Artisan komutları ile Laravel içerisinde bazı dosyaları (Model , Controller , Middleware vs..) komut ile oluşturabilir ve bir çok işlemi komut ile yapabiliriz.Terminal ekranına

 

php artisan list

 

yazarak tüm komutların listesini görebiliriz. Eğer komutlar listelenmiyorsa ya git kurulumunda bir sorun vardır yada yanlış dizinde bulunuyorsunuzdur. Çözemezseniz bana ulaşabilirsiniz. Terminal ile ilk olarak controller dosyası oluşturacağız. Bunun için

 

php artisan make:controller LaravelCont

 

kodunu terminal penceremize giriyoruz. LaravelCont yazan yer oluşturduğumuz Controller dosyasının adı olacaktır. Controller dosyalarının bulunduğu dizin ise

 

app \ Http \ Controllers 

 

LaravelCont adında oluşturduğumuz Controller dosyamızın içine girelim. İlk olarak en yukarıda bulunan namespace komutunu görüyoruz. Namespace o dosyanın bulunduğu dizindir.Controller dosyasında

 

namespace App\Http\Controllers;

 

şeklinde yer almaktadır. Klasör yapısını değiştirmediğiniz sürece bizim burayla bir işimiz yoktur sadece bilgi açısından makale içerisinde yer verdim. Onun altında ise Use komutlarının yer aldıklarını görüyoruz. Use ile gerekli dosyaları controller dosyamıza dahil ediyoruz gerektiğinde kullandığımızda çok daha iyi anlayacaksınız. Use altında ise LaravelCont adındaki Classın oluşturulduğunu görüyoruz fonksiyonlarımızı bu classın içerisinde oluşturacağız.

 

Bu dersimizde Controllerdan Viewe veri göndermeyeceğiz. Zaten ders içerisinde MVC Yapısı ve Php Artisan Komutlarını da gördüğümüz için daha fazla uzatmayıp View dersini de yayınladıktan sonra ayrıyeten Controller ve View bağlantısını farklı derste anlatacağım. Böylece kafanız karışmadan daha rahat kavrayacaksınız.

 

Şimdi hazırladığımız route yapısına göre Controller dosyamızı hazırlayalım

 

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class LaravelCont extends Controller
{
    public function anasayfa(){
        return 'Ana Sayfa';
    }

    public function hakkimizda(){
        return 'Hakkımızda Sayfası';
    }

    public function iletisim(){
        return 'İletişim Sayfası';
    }

    public function parametreDenemesi($id){
        return 'Parametre değerimiz : ' . $id ;
    }

    public function digerParametreDenemesi($id=null){

        if($id)
        {
            return 'Diğer Parametre değerimiz : ' . $id ;
        }else{
            return 'Parametre Değeri Bulunmamaktadır';
        }

    }
}

 

Controllar sayfamızın tamamı bu şekildedir. Yukarıda Route yönlendirmelerimizi zaten Controller dosyamızda ki belli fonksiyonlarımıza ilettik. anasayfa , hakkimizda , iletisim fonksiyonları aynı zaten. Projeyi ilk açtığımızda Route ile LaravelCont Controller Dosyamızdaki anasayfa fonksiyonuna gitmesini söyledik. Bu Fonksiyon içerisinde ise Ana Sayfa değerini return etmesini belirttik. Aynı şekilde hakkimizda ve iletisim kısmını da yaptık. Bunun yanında ise birde parametre denemesi yaptık. Eğer URL parametreDenemesi/5 şeklinde olursa parametreDenemesi fonksiyonuna yönlendirmesini belirledik. Bu Fonksiyon içerisinde parametre değerini $id değişkenine eşitledik ve bu değişkeni return ettik.

 

Bunların yanında ise son olarak digerParametreDenemesi diye bir fonksiyonumuz bulunmakta. Bazı durumlarda sayfamızın parametre değerini alsa da almasa da işlem yapması gerekir. Bunun için fonksiyon içerisinde değeri $id değişkenine eşitlerken eğer parametre yoksa boş değerini almasını belirtmemiz gerekir. Yani fonksiyon içerisinde $id=null şeklinde belirtmemiz gerekir. İf ile kontrol sağlayarak eğer parametre varsa parametreyi return etmesini yoksa ise olmadığını sayfaya return etmesini belirttik.

 

Controller sayfamızın temel kullanım hali bu şekildedir. Daha öncede söylediğim gibi Laravel içerisinde bazı işlemler uğraştırıcı gelebilir mesela bu dersteki PHP Artisan komutları gibi fakat kullandıkça el alışkanlığı oldukça bunlar herşeyi daha eğlenceli ve kolay hale getiriyor bana inanın :)

 

Bir önceki Route dersinde de belirttiğim gibi bu dersler temel seviye ilerlemektedir. Dersler ilerledikçe Route içinde Controller içinde sonraki dersler içinde kullandıkça daha kolay ve daha olması gerektiği gibi kullanımlara başlayacağız. Mesela ileriki derslerde artık controller içerisinde yazıyı return etmek değilde yazıyı değişkene aktarıp bu değişkeni viewe gönderip viewde yazdıracağız. Sorunuz olursa sormaktan çekinmeyin lütfen :) 


Yorumlar

Bu makaleye ait yorum bulunmamaktadır. İlk yorumu sen yapmalısın :)

Düşünceni Bizimle Paylaş