class functionun gelismis hali diyebiliriz. classlarla methodlar olusturarak ve isine yaracak diger classlari ic ice gecirerek nesne yapisi elde edersin.
ornegin database classi olusturabilirsin.
bu class icinde construct methodunu 1 kez cagirarak ve buraya database verilerini parametre olarak gonderdiginde veritabanina baglanirsin.
sonrasinda insert update where delete ve grud islemlerinde kullandigin bir cok seyi methodlara ayirarak her seferinde tonlarca kod yazmaktan kurtulursun.
ornegin database classini init edip parametrelerini gonderidgini ve databaseye baglandigini varsayiyorum. icinde insert methoduna data ve tablo adi parametrelerini gondererek gonderdigin datayi direk ekletirsin.
database classini init edip $db degiskenine ekledigini varsayalim
$sql = "UPDATE users SET name='John', lastname='Doe', status=1, birthday='1985-03-02' WHERE id=2";
$result = $conn->query($sql);
mysqli ile bu sekilde yapiyorken
classin icindeki update methodunda gerekli islemleri yapinca
$data = array(
'name' => 'John',
'lastname' => 'Doe',
'birthday' => '1985-03-02',
'status' => 1
);
$db->where('id', 2);
$db->update('users', $data);
bu sekilde yapabilirsin.
ne kazandik?
update users set vs bir daha yazmayacagiz => zaman
update users set vs yazmayacagimiz icin yazim hatasi olasiligimiz olmayacak => zaman
peki bunu ben direk update diye bir fonksiyon olusturayim classa hic girmeyeyim diyeceksindir. olusturabilirsin classa girene kadar bunu yapabilirsin.
bunlarin hepsini bir durum olarak varsayarsak mesela veritabaninda guncelleme durumunu yada baska bir durumu yada durumlari fonksiyon ile gruplamanin cok isine yaradigini soyledin. class ise fonksiyonlari grupluyor. mesela database fonksiyonlarini tamamini database classin altinda tutarsin ve database ile ilgili bir isin oldugunda o classa gidersin ve isini gorursun.
ayrica fonksiyonlari ayni isimde kullanamazsin. class adi function adinin soyadi olarak dusunebilirsin ve farkli classlar adi altinda ayni isimde fonksiyon olusturabilirsin. hatta ve hatta classlarida ayni isimde kullabilirsin. namespace diyoruz buna. isim soyisme bir de tc kimlik numarasi veriyorsun. her sey daha anlasilir oluyor.
buradaki kazanimin ise erisebilirlik takip edilebilirlik ve en ama en onemlisi olceklendirilebilirlik olacaktir.
https://stackoverflow.com/questions/20649820/what-is-the-difference-between-class-and-function-in-phpclass ve function karsilastirmasi. ingilizcen yoksa yapistir google ceviriye gitsin. mutlaka bir seyleri aradan alip mantik kurup genel olarak bahsettigi sey anlayacaksin.