PHP Class Yapısını Anlamak (İletişim Formu)

PHP Class

PHP Class yapısını anlamak için basit bir iletişim formu üzerinden örnekleme ile sınıfın nasıl çalıştığını görelim.

PHP’de Class (Sınıf) kullanımı anlayabilmek için anlatımı aynı işi yapan iki farklı örnek üzerinden göstermek istiyorum. İlk olarak Class kullanmadan, diğeri ise Class kullanarak.

Örnek dosyaları indirmek için => PHP iletişim Formu

Bu örnekte basit bir iletişim formunun class kullanmadan php ile nasıl hazırladığımıza bir bakalım.

form.php

<?php

// Eğer post edilmiş ise
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    // Form değerlerini değişkenlere al
    $gonderen = $_POST['gonderen'];
    $isim = $_POST['isim'];
    $konu = $_POST['konu'];
    $mesaj = "Gönderi Sahibi: ".$isim."<br />".$_POST['mesaj'];

    // mail fonksiyonu için header tanımlamaları
    $headers = 'From: '.$gonderen. PHP_EOL;
    $headers .= 'Reply-To: '.$gonderen. PHP_EOL;
    $headers .= 'Return-Path: '.$gonderen. PHP_EOL;
    $headers .= 'MIME-Version: 1.0'.PHP_EOL;
    $headers .= 'Content-type: text/html; charset=utf-8'.PHP_EOL ;

    // mail fonksiyonunu kullanarak gönderiyi yap
    $mail = mail("info@mail.com", $konu, $mesaj, $headers);

    if($mail){
        echo "İleti Gönderildi";
    }else{
        echo "Gönderi Yapılamadı";
    }

}
?>

<html>
<head>
    <meta charset="utf-8">
    <title>İletişim Formu</title>
</head>
<body>

<form action="" method="post">
    <label for="gonderen">E-Posta: </label><input id="gonderen" type="text" name="gonderen"><br/>
    <label for="isim">Adınız: </label><input id="isim" type="text" name="isim"><br/>
    <label for="konu">Konu: </label><input id="konu" type="text" name="konu"><br/>
    <label for="mesaj">Mesajınız: </label><textarea id="mesaj" name="mesaj"></textarea><br/>
    <input type="submit" value="Gönder">
</form>

</body>
</html>

Şimdi ise bu işlemin aynısı gerçekleştirmek için bir class yazalım.

iletisim.php

class iletisim
{
        // Sınıf içinde kullanacağımız public değerleri tanımlayalım
        public $gonderen;
	public $alici;
	public $konu;
	public $mesaj;

	function gonder()// Gönderiyi yapacak fonksiyon
	{

        /*
         * $this değişkeni bir çeşit global değişken gibi düşünün
         * aslında $this classın kendisidir.
         * $this = iletisim
         *
         * #this->konu
         * yukarıdaki örnek şunu yapar iletişim classı içindeki
         * $konu değişkenin değeri
         *
         */
        $headers = 'From: '.$this->gonderen. PHP_EOL;
        $headers .= 'Reply-To: '.$this->gonderen. PHP_EOL;
        $headers .= 'Return-Path: '.$this->gonderen. PHP_EOL;
        $headers .= 'MIME-Version: 1.0'.PHP_EOL;
        $headers .= 'Content-type: text/html; charset=utf-8'.PHP_EOL ;

	//PHP Mail Fonksiyonu ile iletiyi gönder.
	mail("info@mail.com", $this->konu, $this->mesaj, $headers);

        return true;
	}
}

Şimdide gelelim sınıfımızı çalıştıracak dosyaya

form_class.php

<?php
// Eğer post edilmiş ise
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    // Sınıf dosyasını çağır
    require 'iletisim.php';

    // Sınıfı Başlat
    $posta = new iletisim();
    /*
    Burda $posta değişkeni sınıfı sahiplenir.
    Bundan sonraki işlemler $posta değişkeni üzerinden gidecek bir nevi değerlerimizi sınıfa taşıyacak
    */

    // Sınıfa gönderilen değerler
    $posta->gonderen = $_POST['gonderen'];
    $posta->konu = $_POST['konu'];
    $posta->mesaj = "Gönderi Sahibi: " . $_POST['isim'] . "<br />" . $_POST['mesaj'];

    // Gönderiyi gerçekleştir
    $posta->gonder();
}
?>

<html>
<head>
    <meta charset="utf-8">
    <title>İletişim Formu</title>
</head>
<body>

<form action="" method="post">
    <label for="gonderen">E-Posta: </label><input id="gonderen" type="text" name="gonderen"><br/>
    <label for="isim">Adınız: </label><input id="isim" type="text" name="isim"><br/>
    <label for="konu">Konu: </label><input id="konu" type="text" name="konu"><br/>
    <label for="mesaj">Mesajınız: </label><textarea id="mesaj" name="mesaj"></textarea><br/>
    <input type="submit" value="Gönder">
</form>

</body>
</html>

Umarım anlaşılır olmuştur.

“PHP Class Yapısını Anlamak (İletişim Formu)” için bir yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir