PHP’de fonksiyon ve sınıfları ne zaman kullanmalı
|
Sınıflarla çalışmak her zaman ileri programcılık olarak görülür. Sınıf tasarımı, nesne oluşturması zordur ama daha sonra kullanımı çok kolaydır, hızlıdır. Elbette kendi sitemizde sınıflar kullanırsak nesnelerle içerik yönetimi kolaylaşacaktır. Ancak önce şuna karar vermeliyiz. Yapacağımız iş için sınıf tasarlamaya gerek var mı? Direk yapsak daha mı kısa olur; Hangi durumlarda direk kodlama, hangi durumlarda fonksiyon, hangi durumlarda sınıf kullanalım?Açıkça görülecektir ki, sadece bir kez kullanacağımız bir kod kümesi varsa fonksiyonla sınıfla uğraşmaya gerek yoktur. Buna aslında statik PHP gibi düşünebiliriz. Nasıl statik sitelerde sabit HTML varsa, dinamik sitelerde PHP varsa, işte burada da her zaman aynı işi yapan bir PHP kod parçacığı olacak, sınıf veya fonksiyon tasarlamaya gerek kalmayacaktır. Örneğin, bir sitede dinamik bir hakkımızda sayfası olsun. İçeriğini sadece hakkımızda sayfasında yazdıracağız ve başka yerde kullanmayacağız. Veri tabanından içeriği çekip ekrana basarız direk. Bu durumda fonksiyona da sınıfa da ihtiyaç yoktur. Peki fonksiyonları ne zaman kullanalım; Birçok yerde kullanılan ve sabit iş yapan kod parçacıklarını direk fonksiyon içine atabiliriz. Örneğin her sayfada yazılması gereken bir üst menümüz var. Ayrı ayrı yapacağımıza bir fonksiyon hazırlayalım;
Bu şekilde fonksiyonumuzu tanımlayıp daha sonra istediğimiz yerde Gelelim sınıflara; Sınıflar kendilerine ait değişkenleri ve alt fonksiyonları olan fonksiyonlardır gibi bir tanım yapabiliriz belki. Yapılacak bir iş vardır, birçok yerde aynı yöntemle farklı şekillerde yapılacaktır, bu durumda sınıflar kullanabiliriz. Örnek verelim. Veritabanımızda ‘hakkimizda’, ‘iletisim’, ‘katalog’, ’siparis’ … gibi düz yazılar barındıran alanlar olsun. Bunların aynı şekilde yazdırılması gerekiyor. Şu haliyle fonksiyonla yapılabilir. Yapalım;
Bu şekilde işimiz kolaylaştı. 10 tane farklı sayfa hazıladık diyelim. Sonra şöyle birşey istedik; başlık <h1> ile olmasın da başlık isminde bir div içinde olsun. Böylece 10 tane sayfayı tek tek değiştirmek zorunda kaldık. Peki sınıfla yapsaydık nasıl olurdu;
Şeklinde sınıfımızı tanımladık. Ve şöyle kullanıyoruz; Sayfa içlerinde de bu şekilde kullandığımızda eğer birşeyi değiştirmek istersek direk sınıf tanımından değiştirebileceğiz. Tabi aslında bu da sınıflar için çok iyi bir örnek olmadı. Hala sınıfı hazırlayıp kullanması tek tek yapmasından daha yavaş. Normalde daha karmaşık yapılarda kullanmalı sınıfları. İyi sınıflar. |
English Articles
Emrah Üstün
16 Ocak, 2009 saat 10:37
kodları kendimce düzenledim lakin bir problem var cözemedim…
baslik = $gelenbaslik;
}
function yazdir(){
echo “”.$this -> baslik.”";
$this -> donus = mysql_query(”select “.$this -> $sayfaadi.” from veriler”);
$this -> veri = mysql_fetch_array($this -> donus);
echo $this -> veri;
}
}
?>
sayfaadi = “isim”;
$yazi -> yazdir();
?>
verdiği hata ise
Parse error: parse error, expecting `T_OLD_FUNCTION’ or `T_FUNCTION’ or `T_VAR’ or `’}” in c:\program files\easyphp1-8\www\sistem\yazilar.php on line 5
yardımını bekliyorum emrah kardeş.
16 Ocak, 2009 saat 16:27
Güzel bir makale olmuş fakat kafama takılan birşey var.
function icerikbas($sayfaadi)
{
$donus=mysql_query(”select “.$sayfaadi.” from sayfalar”);
$veri=mysql_fetch_array($donus);
echo “”.$veri.”";
}
fonksiyonda da sadece echo kısmına ekleme yaparak(echo “”.$veri.”";). tek işlemle olayı sonlandıramaz mıyız? bu durum benim kafamı karıştırdı açıkçası.