• 01-04-2010, 10:25:32
    #1
    Merhaba,
    PHP programlama ile uğraşıyorum, ancak daha önce ciddi anlamda nesne yönelimli programlama ile ilgilenmedim. Ufak araştırmalarım oldu bu konuda ancak tatmin edici bilgilere ulaşamadım. O yüzden cevap bulamadığım soruları buraya yöneltmek istedim.
    -Nesne yönelimli PHP'nin nesne yönelimli olmayandan farkı nedir?
    -Tanımlanan class ve objelerin avantajları/dezavantajları nelerdir? Ben bu işte öğrendiğim kadarıyla nesne yönelimli programlama yerine fonksiyonlarla da aynı şeyler yapılabilir gibi geliyor, o yüzden avantaj/dezavantajlarını soruyorum.
    -Nesne yönelimi bir projede ne gibi fayda sağlayabilir?
    -Son olarak class ve nesne nedir yani bunları tanımlayıp içlerine fonksiyonlar yerleştiriyoruz falan filan ama neticede yaradıkları iş nedir?

    Yani kısacası işin mantığını anlatan bir yer bulamadım, ve dolayısıyla kendi kendime mantığını çözemedim. Kısaca bahsedebilecek birisi beni çok memnun eder.
    Şimdiden teşekkürler.
  • 01-04-2010, 10:34:35
    #2
    http://www.ysbostan.com/nesne-yoneli...t-oriented-php

    Burada güzel bir yazı var.
  • 01-04-2010, 10:49:11
    #3
    Hocam öncelikle ilgilendiğin için teşekkür ederim, ancak bu makalede anlatılan zaten her yerde anlatılan şey ve işin hikaye kısmı. Ben işin mantığı nedir onu çözemedim yani Burada soyut örneklerle "şöyle iyidir, böyle iyidir, daha büyük projelerde çok güzeldir, ekleme çıkarma çok basit yapılır" şeklinde her yerde olan yuvarlak cümleler var. Daha niteliksel şeyler arıyorum
  • 01-04-2010, 10:57:21
    #4
    ZorbAA adlı üyeden alıntı: mesajı görüntüle
    Hocam öncelikle ilgilendiğin için teşekkür ederim, ancak bu makalede anlatılan zaten her yerde anlatılan şey ve işin hikaye kısmı. Ben işin mantığı nedir onu çözemedim yani Burada soyut örneklerle "şöyle iyidir, böyle iyidir, daha büyük projelerde çok güzeldir, ekleme çıkarma çok basit yapılır" şeklinde her yerde olan yuvarlak cümleler var. Daha niteliksel şeyler arıyorum
    O zaman teorik bilgiye ihtiyacınız yoksa direk uygulamaya geçip OOP ile bir proje üretmeye başlamalısınız bence. OOP ile proje yazmaya başladığında avantajlarını görüp kavrayabilirsiniz.
  • 01-04-2010, 11:07:14
    #5
    İşte denedim ama bir avantajını göremedim, o yüzden soruyorum zaten Yani yuvarlak cümlelerle anlatılan faydasını ben göremediğim için bundan daha özel cümlelerle bahsedebilecek olan var mı diye. Belki olay benim nesne konusundaki acemiliğimden dolayı avantajsız gibi gelmiş olabilir bana, onu aydınlatmak için soruyorum zaten
  • 01-04-2010, 11:23:34
    #6
    Bende php de yeni sayılırım. Ama nesnel tabanlı programlamanın faydası. Oluşturduğunuz sınıfı birden çok benzer projelerde tekrar kullanabilmenizi sağlıyor. Yani sadece projeye özel değil çoğul sistem olarak kullanabiliyorsunuz.

    Henüz bende denemedim. Fonksiyonlarla bile yeni çalışmaya başladım. Ama oop ile dediğim gibi işi biraz daha basitleştirebiliyorsunuz.
  • 01-04-2010, 11:28:09
    #7
    Aynı şeyi fonksiyon şeklinde tanımlayarak da yapabiliriz, tanımlanan bir class'ın fonksiyondan üstün yanı nedir ki? Yani fonksiyonları da tekrar tekrar kullanabiliriz
  • 01-04-2010, 11:52:15
    #8
    Prosedürel veya fonksiyonel programa ile oop yi karşılaştıralım.

    İlk cümle "OOP ile yapılan herşeyi fonsiyonlara zaten yaptırıyorum. Niye oop kullanayımki o zaman ?"

    * : Bu cümleyi kuran biri %99 oop bilmiyordur veya öğrenmeye çalışmış fakat öğrenememiş zor gelmiş bırakmıştır.

    Bende aynı cümleyi kurdum çünkü php yazarken oop yi anlamak çok çok zor. Çünkü phpnin debug (debug = yazdığınız kodları satır satır atlarak çalıştırmak) yapabileceğimiz bir editörü yok. (phped debug yapabiliyor ama anlamak için yetersiz. Zend i denemedim)

    Benim şansım bir şekilde C# a geçiş yapmam ve asp.net yazmak zorunda kalmamla oldu. Visual Studio Ide si sağlam debug özellikleri ile bana oop nin tam olarak mantığını çözdürdü.

    Bende aldım php mi oturdum C# daki bilgilerimi aynısını uyguladım. Bakın birebir aynısını aldım ve kullandım. Bu sayede php de oop nasıl yazılır öğrendim.

    Şimdi Oop nin yararlarına gelelim.
    1) Kod yapınız bir düzen kazanır. Sonradan yapacağınız değişikler çok basit olur.
    2) Aradınız kodu bulmak dert olmaz. Mantık oturdunuzda aradığın kod bloguna ulaşmak enfazla 2 tık zaman alır.
    3) Kodlarınız okunabilir olur. Sizden sonrakide baksa o kodu anlar.
    4) Yazdığınız nesneleri başka projelerinizde kullanabilirsiniz.

    Şimdi Zararlarına Gelelim
    1) OOP ile yaptığınız işlemler fonksiyonlara göre daha yavaştır.(milisaniye oynar)
    2) OOP nin ilk yazılımı çok uzun sürer (bunu iş veren istemez, işin hızlı bitmesi daha önemlidir onun için)
    3) OOP başlangıç gerçekten zordur. Çünkü bugune kadar hep fonksiyonlarla yazmışsınızdır.

    Dahada sıralayabiliriz...

    Şimdi ben ne mi yapıyorum. İş yerinde oop kullanmıyorum. Evde kendi projelerimde zamanım varsa oturup zevk için oop yazıyorum.
  • 01-04-2010, 12:05:48
    #9
    Açıklanam için çok teşekkürler üstadım, "Bu cümleyi kuran biri %99 oop bilmiyordur veya öğrenmeye çalışmış fakat öğrenememiş zor gelmiş bırakmıştır." demişsin ya işte ben de olayı tam kavrayamadım, o yüzden sordum Daha hala avantajlarını kafamda kavrayamadım, dediğim gibi aynı işi yapan bir fonksiyon da tasarlayabilirim ve bunu da farklı projelerde kullanabilirim, yazımı daha kolay, yine tek merkezden kontrol edilebiliyor, yani oop için bahsedilen vasıfların hepsini ben fonksiyonlarda da bulabildiğim için henüz herhangi bir artısını göremedim, belki de dediğiniz gibi php yüzünden belki de pek oop bilmediğim için, sebebini bilmiyorum ancak artısı yok gibi geliyor hala