Php ile Nesnel Programlama – 1
Tarih: Şubat 24th, 2009 | Yazar: Ertuğrul Erkan | Kategori: Php | Etiketler: nesne tabanlı programlama, nesnel programlama, oop, Php, php derslerim, php ile fonksiyon, php ile nesne, php ile nesne tabanlı programlama, php oop | 13 Yorum »Merhaba arkadaşlar. Bundan sonra programlamanın en önemli konularından olan OOP yani Nesne Tabanlı Programlama konusuna gireceğiz. Eğer ki profesyonel bir programcı olmak istiyorsanız az satır yazmalısınız. Az satır yazmak için de nesnel programlama hakkında bilgilerinizin olması şart…
Arkadaşlar derslerimizi aynı blog sistemini gibi işleyeceğiz. Yani birlikte bir sınıf geliştireceğiz. Benim aklıma ilk önce Mysql sınıfları geldi ve bizde bir tane yapalım dedim. Sonuçta az trafik çok iş mantığı ile çalışacağız. İnanıyorum ki bu dersin sonunda nesnel programlama üzerine yeteri kadar bilgileriniz olacaktır…
Arkadaşlar öncelikle birkaç prensibi bilmek şart. Şimdi kesinlikle normal kodlarınız ile yarattığınız sınıfları aynı yerde bulundurmayın. Normalde As3 de sınıf yazsak bu daha da karmaşık bir durum olurdu. Fakat Php de bazı şeyler daha kolay. Mesela veri türleri gibi bir sorunumuz yok. Mesela hemen bir sınıf yaratalım;
<?php
class mysql_islem {
}
?>
Gördüğünüz gibi mysql_islem isimli bir sınıf yarattık. Buraya kadar hiçbir problem yok. Zaten asıl olayda bundan sonra başlıyor. Arkadaşlar sınıflarda istersek genel değişkenler tanımlayabiliriz. Aslında burada genelin ne anlamada olduğunu öğrenmeniz için class ların nasıl kullanıldığını da bilmelisiniz. Sınıfların içerisinde birçok fonksiyonlar bulunur. Bizim verdiğimiz verilere göre bu fonksiyonlar işlemler yaparlar. Mesela en basitinden sınıfımızı bir test edelim;
<?php
class mysql_islem {
function bilgiler($bilgi1,$bilgi2) {
echo $bilgi1;
}
}
?>
Normalde bu kod $bilgi1 isimindeki değişkeni yazdıracaktır. Fakat bu kodlar tek başına bir işe yaramaz. O yüzden bu kodları sinif.php adında kayıt edin. Sonra index.php diye bir dosya açıp içerisine şu kodları ekleyin;
<?php
include sinif.php;
$islem = new mysql_islem();
$islem -> bilgiler("deneme1","deneme2");
?>
İşte bu kodlar ekrana “deneme1″ yazdıracaktır. Şimdi burada neler yaptık? Öncelikle sınıfımızı dahil ettik. Ardından $islem adında bir değişken yarattık. Sonra dedik ki bu değişken veri döndürmeyecek fakat bir sınıfın elemanı olacak. Yani bir tür elçi ayarladık. Ardından mysql_islem isimli sınıfın altında bulunan bilgiler isimli sınıfa ulaştık. Sınıfın bir altındaki fonksiyona ulaşmak için -> kullanıyoruz. Yani elçiye yön belirttik ve fonksiyonun verileri aynen sırasıyla yerleştirdik… Buraya kadar herşey tamamsa;
Arkadaşlar Mysql sınıfı yapacağız demiştik. O zaman kodlarımız aynen şu şekilde olmak zorunda;
<?php
class mysql_islem {
function mysql_baglan($host_adresi,$kul_ad,$sifre,$db_adi) {
@$baglan=mysql_connect($hostadresi,$kul_ad,$sifre) or die ("Mysql");
@mysql_select_db($db_adi,$baglan) or die ("Db");
}
}
?>
Gördüğünüz gibi sınıfımızın altında Mysql e bağlanma kodları var. Yukarıdan da verileri alıyor. Demek ki index.php de bu kodlar olacak;
<?php
include sinif.php;
$islem = new mysql_islem();
$islem -> mysql_baglan("localhost","root","","class");
?>
Eğer ki veritabanı verilerini tam verirseniz fonksiyon birşey yazdırmayacaktır. Demek ki bağlantı sağlanmış durumda. Gördüğünüz gibi tek seferde çok az daha satırla veritabanına bağlantı sağladık. Peki direkt olarak veri vermek istersek? Demek istediğim new mysql_islem(“veriler”); şeklinde yapmak istersek? İşte o zaman ilk çalıştırmak istediğimiz fonksiyonu, sınıfımıza bağlıyoruz;
<?php
class mysql_islem {
function mysql_islem($host_adresi,$kul_ad,$sifre,$db_adi) {
@$baglan=mysql_connect($hostadresi,$kul_ad,$sifre) or die ("Mysql");
@mysql_select_db($db_adi,$baglan) or die ("Db");
}
}
?>
O zaman $islem = new mysql_islem(“localhost”,”root”,”",”class”); dediğimizde direkt veritabanına bağlanacaktır. İşte buraya kadar herşey basitti. Hepsini anladıysanız; Arkadaşlar işte genel veri tanımlaması burada işe yaracaktır. Diyelim ki iki adet fonksiyonumuz var. İlkini sınıfa bağladık ve direkt işleme geçirttik. Peki ikisini birden nasıl sağlayabiliriz? Normalde bir fonksiyona verdiğimiz veri diğerisinde işe yaramaz çünkü tanıyamaz. İşte genel veri tanımlarsak bir fonksiyona atanan veriyi tüm sınıf içerisinde kullanabiliriz;
<?php
class mysql_islem {
var $alinan_host_adresi;
function mysql_islem($host_adresi,$kul_ad,$sifre,$db_adi) {
$this->alinan_host_adresi = $host_adresi
@$baglan=mysql_connect($hostadresi,$kul_ad,$sifre) or die ("Mysql");
@mysql_select_db($db_adi,$baglan) or die ("Db");
}
function yazdir() {
echo $this->alinan_host_adresi;
}
}
?>
Gördüğünüz gibi en başta bir değişken tanımlıyoruz. Sonra ilk fonksiyondaki $host_adresini bu değişkene eşitliyoruz. Burada $this yani o yani genel değişkeninin yönünü $host_adresi olarak ayarlıyoruz ki ondaki verilerin tamamı genel değişkene geçsin. Sonra tekrar this diyerek ondan verileri alıyoruz ve ekrana yazdırıyoruz.
Şimdilik bu kadar. Diğer dersimizde hem sınıfımızı geliştiricez hemde yeni yeni tanımlamalar öğreneceğiz. Şimdilik herkese iyi günler, iyi çalışmalar…
Benzer Yazılar;
- OOP Nerede ve Ne Zaman Gereklidir?
- Fonksiyonlarda Return Komutu ve Kullanımı
- Video Ders: Php ile OOP Programlama Bölüm 1
- Php ile Nesnel Programlama - 2
- Php ile Nesnel Programlama - 3

Gayet güzel bir makale. Doğru bir noktaya değinmişsin. Belki örnek daha farklı olabilirdi. Daha sade bir şey. Örneğin bir toplama işlemi. Çünkü olaya veritabanını katınca asıl anlatacağın konu ikinci planda kalmış. Belki de bu nedenle sınıf içindeki globallere ve kurucu fonksiyona göstermen gereken özeni veritabanı işlemine vermişsin
Öyle ya da böyle, ellerine sağlık
Teşekkürler hocam. Bende ilk öğrenirken toplama işlemleri ile öğrenmiştim keşke öyle anlatsaydım ama yazıyı yazarken aklıma birşeyler yapalımda işe yarasın fikri geldi ondan mysql kullandım. Fakat birçok kişi hiçbir problem yaşamadan konuyu kavramış. İkincisini istiyorlar ve yolda…
Nesnel ismi hiç uymamış
Nesnel kelimesi ile adlandırılmıyor bu sistem.
Nesneye yönelik php programlama denir buna
Orjinal içerik farklı içerik olacak diye yanlış bilgilendirme yapmakta çok saçma
Sözlüğe bakarsan nesnel tamamıyla farklı anlamda bir kelimedir…
Bilgilendirmeniz için teşekkürler hocam. Kısa bir başlık seçmek istedim ondan nesnel dedim. Yoksa sizinde dediğiniz gibi nesne tabanlı programlama veya nesneye yönelik programlama olması gerek.
Tşkler bu iyi niyetli cevabın için
Sadece ilk kez nesneye yönelik programlama öğrenecek kişiler olursa yanılgıya düşmesinler diye dedim
Paylaşımın ve derslerin için tşkler
Burada bir bilgi sunana her zaman iyi niyetliyimdir hocam. Ufak tefek şeylere alınmam. Dediklerinize de aynen katılıyorum. En azından başlarken bir problem olmasın.
İyi günler, iyi çalışmalar…
şu sıralar öğrenmek istediğim tek şey şu sınıf yapısı, internette ise Türkçe kaynak yok, olsa bile buradaki gibi karmaşık, yani şöyle kısa ve öz kodlar ile anlatsan anlarımda arkadaşların dediği gibi, burada sadece mysql anlatılmış, mesela this-> nedir, function($degisken1,$degisken2) ler var, buraları anlayamıyorum işte, bazı fonksiyonlardada sadece fonksiyon var yukarıdaki gibi değişken yok, yani şöyle meyvalar olan, elma armut erik gibi, sınıfları bu şekilde anlatsanız bence daha anlaşılır olur.
@Koray;
Şu anda görsel derslerimiz başlamış durumda. Onları izleyebilirsin. Çok daha anlaşılır olur..
Gerçekten Güzel bir makale. TEBRİKLER!!!
new mysql_islem(”veriler”) gibi bir nesne oluşturmak için php __construct() fonksiyonunu sunmuştur, bunu yazmanız daha dogru olurdu.
Ayrıca var ifadesi yerini public access modifier’a bırakmıştır.
Son olarak include file.php gibi bir kullanım yoktur hata verir.
include(‘file.php’) olacaktır, biraz daha dikkatli olmanızı öneririm
Harika bir yazı dizisi tebrik ederim bu derslerin daha da çoğalmasını isterim 4 5 6 diyerek dahada ileri seviyelere kadar ilerlerse bence daha mantıklı olur bir yerden sonra yarım kalan yazıların üstüne farklı kaynaklar hem kafa karıştırıcı olmakta hemde hevesle başlayan kişilerin hevesinin kaçmasıyla son bulmakta (:
Harika Bir paylaşım teşekkürler….
[...] Php ile Nesnel Programlama – 1 [...]