• 01-04-2010, 12:42:52
    #10
    Merhaba ,

    Bu konularda fazla kasmaya gerek yok tabiri caizse daldan dala yapmak gereksiz ve anlamsız önce bi düz php ile kavrulun sonradan herşey kendiliğinden oluyor.

    ya şu işe bu işe yararrı bi kenara bırakalım tek farkı şudur

    sınıflarda global değişken tanımlarsın istediğin methodda değeri verir istediğin methodda o değeri verdiği değişkeni çagırırsın gerisi teferruat.
  • 01-04-2010, 14:36:18
    #11
    Üyeliği durduruldu
    Örneğin bir sınıf yazarken . O sınıfın fonksiyon topluluğu olmadığını düşünerekten yazmaya başlamalısın. Yani bütün değişken ve fonksiyonlar birbiri ile senkron halde hareket etmeli. Ayrıca bir sınıfa, sınıf veya OO diyebilmek için onu sadece bir projeye özgü değil, bütün projelerde kullanılabilcek nitelikte olması ve tasarlanması gerekir.
    bkz : https://www.r10.net/php/592602-kiwisq...ni-sinifi.html
    Redz'in sınıfı her projede kullanılabilcek kolaylıkta ve geçerlilikte.
    Ayrıca bu konuyu baştan sona okumanı tavsiye ederim
  • 01-04-2010, 14:57:57
    #12
    Üyeliği durduruldu
    obje tabanli yazilim basli basina bir deryadir. sahsen ozellikle yazilim tecrübesi olmayanlar icin su adimlari oneriyorum

    - ilk basta normal php kodlari ile html ve php iç içe girmiş halde kod yazin. zaten bu aşamada yeterince yazinca acaba heryerde aynı kodları yazmaktan nasıl kurtulabilirim diyeceksiniz.
    - ikinci adim fonksiyon yazmaya başlayın. artık tasarım içinde yazdığınız kod oranları düşmeye baslayacaktir. bu aşamada ise nasıl daha derli toplu ve daha çok ilişkisel işlemler yapabilirim diye düşündügünüz anda zaten obje tabanlı yazilimin ihtiyacini hissedersiniz.
    - üçüncü adim obje tabanlı tasarim ve tasarım şablonlarına geçiş (MVC dedigimiz yapıda zaten bir tasarım şablonudur) burdan sonra nirvana var zaten :P

    bu adımları geçmeden zaten ne objeden birşey anlarsiniz ne fonksiyondan.

    mesela şu aşağıdaki fonksiyonu hakkıyla anlamıyorsaniz daha fonksiyonları imkan ve kabiliyetlerini kavrayamadan oop ile ilgileniyorsunuz demektir

    function denemeFonksiyonu($sayi1, $sayi2 ,$carpan = 10){}
    genel olarak obje tabanlı yazılım bir kültürdür.
    artıları
    - derli toplu kod yazarsınız
    - artık hersey nesnedir, nesneler arasında ilişki kurarak gidersiniz.
    - objeleri serialize etmek kolaydir.
    - başka bir dile (örnegin java yada c#) geçmeniz kolaylaşır

    zira php5 ile özellikle 5.3 ile tam java tadında oop oldu php

    eksi sayılamayacak eksiler;
    - oop yazmanız daha fazla zaman alır ama oran olarak ilk birşeylerin ortaya çıkma süreci yavaş daha sonraki süreç hızlıdır.
    - herşey ve her iş oop yazılmaz.
    - hakkıyla oop yazmak için öğrenme süreci ve alışme süreci geçirmeniz gerekir

    gibi gibi
  • 01-04-2010, 15:39:59
    #13
    İlginenen herkese çok teşekkürler, vakit ayırıp açıkladıkları için

    @PHPci ceviz.net'ten verdiğin linkteki konu daha açıklayıcı duruyor, yarısını okudum, diğer yarısını okumak için sık kullanılanlara ekledim.

    @sdemirkeser ben de o belirttiğiniz üç aşamada 2. aşama ile 3. aşamanın arasındayım sanırım. İstediğim scripti yazabiliyorum, ancak oop konusunda çok fazla bilgim yok. İşte daha önce oop ile ilgilenmemiş birisinin seviye geçişi de böyle sanıcılı oluyor sanırım

    Özellikle PHPci'nin verdiği ceviz.net linkindeki konu kafamda olayın biraz şekillenmesine oldukça yardımcı oldu.

    Herkese teşekkürler
  • 01-04-2010, 17:14:16
    #14
    Eposta Aktivasyonu Gerekmekte
    Bende oop neymiş falan baktım pek anlamadım bence kısaca fonksiyonların bir araya konulup belli bir konuda bişey yapmak için o konudaki bir sınıfı kullanıp kolaycana gerekli olan şeyi almak gibi saçma bi şekilde tanımlıyorum.OOP u aktif olarak kullanmıyorum ama yavaş yavaş geçmeye çalışıyorum.Yukarda dediklerime bakma aktif olarak kullanmasam da gerçekten güzel bi yapısı var.Mesala resim işleme sınıfı kullanıyorsun.
    Sınıfta bi fonksiyon resmi açar.Diğer bir fonksiyon resme yazı yazar.Başka bir fonksiyon kaydeder başkası gösterir başkası resmi negatif renklerine çevirir.Biri kırpar biri boyutlandırır.

    Sınıftan bi kere resim yolunu tanımlayınca tüm fonksiyonlar açılan resmin fonksiyonundan resmi alır sende ne yapmak istiyorsan o fonksiyon ile işlemlerini yaparsın.

    Çok karışık oldu bende tam olarak alışamadım ama hoş bişey.
  • 01-04-2010, 18:26:23
    #15
    Üyeliği durduruldu
    düz yazmayı ögrenin bence öncelikle.düz yazmanında bir mantığı çalışma şekli var oop da da aynı.
    o yüzden iyice ögren sonra yavaş yavaş geçersin.
    ben nice insan gördüm oop yazıyorum diyor ama die ile exit arasındaki farkı bilmiyor şimdi bu ikisininn arasındaki farkı bilmeyenle hemen bakacaklar
  • 01-04-2010, 18:33:00
    #16
    Aynen bende senin gibi düşünüyordum önceden sdemirkeser falan bilir ancak oop a geçiş yaptım büyük bir proje gerekçesiyle,orda farkını anladım işte herşey net,okuması kolay,kullanması kolay,karmaşık değil,birşey eklemek/çıkarmak/değiştirmek çok basit tek bir sınıf içinden çat çat hallediyorsun,özellike ekip çalışmasında çok daha rahat oluyor zaten ekipler genelde oop kullanırlar
  • 01-04-2010, 20:17:19
    #17
    Kimlik doğrulama veya yönetimden onay bekliyor.
    OOP yi yeni öğreniyorum öğrendikçe neden daha kullanışlı olduğunu anlıyorum.
    Özellik büyük işlere kalkışırsanız OOP olmadan işin içinden çıkamazsınız.Bir kaç kişi birden proje yazmak için OOP çok avantajlı çünkü class yapısı sayesinde verilecekler ve karşılığında alınacaklar tanımlandıktan sonra içinde ne olduğunun diğer geliştiriciler için önemi kalmıyor.Hatalar ise bu sayede daha rahat düzenlenebiliyor.Bunun gibi bir çok avantajı var o yüzden yazması uzun ve zahmetli gibi gelsede bu sisteme geçmek şart.
  • 02-04-2010, 20:29:40
    #18
    Eposta Aktivasyonu Gerekmekte
    Ek olarak Memik YANIK'ın C# pdf'sinden classlar hakkında bir alıntı

    --------------------------------------------------------------
    Konu .NET uyumlu programlama dilleri ve özellikle C# olduğunda ilk
    karsılasmamız gereken kavram Class kavramıdır. C# programları Class
    seklinde düzenlendiği için en basından Class kavramından söz etmek
    gerekmektedir. Programları Class’lar halinde düzenlemenin sayısız yararları
    vardır. Ancak bunları burada anlatmayacağım. Class’lar hakkında bilgi sahibi
    olmadan Visual Basic 6 ve Delphi gibi programlama dilleri ile program
    gelistirmek mümkün iken C++, C# ve Java gibi diller Class’lar hakkında
    bilgi sahibi olmanızı zorunlu kılmaktadır. Kaygılanmanıza gerek yok; bu
    dersi sonuna kadar okuduğunuzda bir de bakarsınız ki Class'lar hakkında
    temel bilgilere sahip olmussunuz. Yoksa diğer kitaplarda yapıldığı gibi sizlere
    Class’lar hakkında teorik bilgi vermeyi düsünmüyorum.
    Quick Basic, Pascal ve C gibi klasik programlama dillerinde kod dosyaları
    içinde fonksiyonlar ve procedure’ler bulunuyordu. Hatta C’de fonksiyon
    procedure ayrımı da yoktur. Baska bir deyisle programcılar yapmak
    istedikleri islemlere uygun fonksiyonlar yazıp gerek duydukça bunları
    çağırırlardı.
    Zamanla programlar büyüyüp karmasıklastıkça paketlenmesi ihtiyacı doğdu.
    Fonksiyon ve metotların Class’lar halinde paketlenmesi ile birlikte Class
    içinde bulunan fonksiyonların kullanılması, organize edilmesi ihtiyacı doğdu.
    Günümüzde yaygın olarak kullanılan programlama dillerinde Class’lar
    metotlardan baska Interface’leri, Olayları, Özellikleri, Delegate’leri ve Yapıcı
    metotları içerebilmektedir.
    ----------------------------------------------------------------------