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.
Nesne yönelimli PHP hakkında 1-2 soru
17
●1.748
- 01-04-2010, 14:36:18Ü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Üyeliği durdurulduobje 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İ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:16Eposta Aktivasyonu GerekmekteBende 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Üyeliği durduruldudü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:00Aynen 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:19Kimlik 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:40Eposta Aktivasyonu GerekmekteEk 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.
----------------------------------------------------------------------

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