PHP OOP Öğrenme

OOP ile ArrayObject'in ne alakası var ben bunu anlamış değilim. Sınıf ve Class'ı sağlıyor mu dil sana? Gerisi o kadarda önemli değil. Ayrıca ArrayObject PHP 5 ilk çıktığında OOP odaklı gelmedi. ArrayObject'in ne işe yaradığını biraz araştır bence.
PHP'de:

array, object degil.

Object olan ArrayObject, array degil.

Ayrica sinif ve class ayni sey.

Class in olmasi OOP yi destekledigini garanti etmez. OOP nin ne oldugu hakkinda bir fikrin var mi? "Class tanimlayabiliyorum, o halde gerisi onemli degil, OOP destegi var demektir" zihniyetiyle konusup, bir de bana arastirma tavsiyesi veriyorsun ; )

PL/SQL de de object tanimlarsin, o da Object Oriented o zaman.

isObject diye bir fonksiyona ihtiyac duyan dille OOP ogrenilmez. Adam variable'in object olup olmadigini anlayabilmen icin dile fonksiyon tanimlamak zorunda kalmis.


Goster bana, Object Oriented programlama yapabildigin kac tane dilde isObject() gibi bir fonksiyon var?

OOP dillerde getType() , typeOf() , type() tarzi fonksiyonlar olur. Primitif olmayan Her sey zaten bir objecttir, sen run-time'da tipini kontrol edersin. Primitif tiplerin de Object wrapper'lari olur. Ayrica isObject() gibi sacma bir seye ihtiyac duymazsin, cunku zaten primitif olmayan her sey objedir.

Java: getClass(), instance of
C# : getType()
python: type()

gibi.
 
Son düzenleme:
PHP'de:

array, object degil.

Object olan ArrayObject, array degil.

Ayrica sinif ve class ayni sey.

Class in olmasi OOP yi destekledigini garanti etmez. OOP nin ne oldugu hakkinda bir fikrin var mi? "Class tanimlayabiliyorum, o halde gerisi onemli degil, OOP destegi var demektir" zihniyetiyle konusup, bir de bana arastirma tavsiyesi veriyorsun ; )

PL/SQL de de object tanimlarsin, o da Object Oriented o zaman.

isObject diye bir fonksiyona ihtiyac duyan dille OOP ogrenilmez. Adam variable'in object olup olmadigini anlayabilmen icin dile fonksiyon tanimlamak zorunda kalmis.


Goster bana, Object Oriented programlama yapabildigin kac tane dilde isObject() gibi bir fonksiyon var?

OOP dillerde getType() , typeOf() , type() tarzi fonksiyonlar olur. Primitif olmayan Her sey zaten bir objecttir, sen run-time'da tipini kontrol edersin. Primitif tiplerin de Object wrapper'lari olur. Ayrica isObject() gibi sacma bir seye ihtiyac duymazsin, cunku zaten primitif olmayan her sey objedir.

Java: getClass(), instance of
C# : getType()
python: type()

gibi.
Sınıf, class olarak yanlış yazmışım fonksiyonlar ve sınıflar. Ayrıca isObject dilin çok yönlü olmasından dolayı kaynaklanıyor.
 
Bize OOP mantığını bu şekilde ögretiyorlar genellikle. Diliniz varsa izleyebilirsiniz. Ayrıca OOP mantığını istediğiniz dilde öğrenebilirsiniz , PHP falan yanlış değil.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Bize OOP mantığını bu şekilde ögretiyorlar genellikle. Diliniz varsa izleyebilirsiniz. Ayrıca OOP mantığını istediğiniz dilde öğrenebilirsiniz , PHP falan yanlış değil.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Verdigin linki kendin izledin mi? Ya izlememissin ya da dersini dinlememissin.

Adam state machine diyor, method diyor, class diyor. Bunun uzerine polymorphism ler abstraction lar gelecek.

Bu konseptleri icermeyen programlama diliyle nasil ogreneceksin?

Pure functional bir programlama diliyle nasil ogreneceksin?

Atip tutuyorsunuz bari dayanaginiz olsun, her dille ogrenirmissin : )

Bize Lisp ile yazilmis polymorphic bir class ornegi goster rica etsem, OOP ogrenmek isteyen insanlara Lisp diliyle de mumkun oldugunu gostermis olursun.
 
Verdigin linki kendin izledin mi? Ya izlememissin ya da dersini dinlememissin.

Adam state machine diyor, method diyor, class diyor. Bunun uzerine polymorphism ler abstraction lar gelecek.

Bu konseptleri icermeyen programlama diliyle nasil ogreneceksin?

Pure functional bir programlama diliyle nasil ogreneceksin?

Atip tutuyorsunuz bari dayanaginiz olsun, her dille ogrenirmissin : )

Bize Lisp ile yazilmis polymorphic bir class ornegi goster rica etsem, OOP ogrenmek isteyen insanlara Lisp diliyle de mumkun oldugunu gostermis olursun.
Dersimi gayet iyi dinledim sen o videoyu ne kadar acıp dinledin acaba? İstediğin dil derken abartmış olabilirim fakat bir çok dilde OOP oluyor , Py,Php,c ++ vs vs. Sen yukarıda gelmiş diyorsun ki PHP ile olmaz git başka dil ile öğren ben bunu ilk defa senden duyuyorum.
Object Oriented Programming öğrenebilirsin. Bu PHP için de geçerli JAVA için de geçerli. Hocanız size OOP sadece Java, C# ile yapılır falan mı dedi anlamadım. Neyse final haftam geçip tekrar ülkeme döndüğüm zaman senin uzun uzadıya tartışırız.
 
OOP öğrenmek için PHP doğru bir tercih değil (Nokta). Aksini söyleyen ya PHP'yi bilmiyor yada OOP'i PHP'de öğrendiği kadar sanıyordur.
 
Dersimi gayet iyi dinledim sen o videoyu ne kadar acıp dinledin acaba? İstediğin dil derken abartmış olabilirim fakat bir çok dilde OOP oluyor , Py,Php,c ++ vs vs. Sen yukarıda gelmiş diyorsun ki PHP ile olmaz git başka dil ile öğren ben bunu ilk defa senden duyuyorum.
Object Oriented Programming öğrenebilirsin. Bu PHP için de geçerli JAVA için de geçerli. Hocanız size OOP sadece Java, C# ile yapılır falan mı dedi anlamadım. Neyse final haftam geçip tekrar ülkeme döndüğüm zaman senin uzun uzadıya tartışırız.
PHP OO paradigmasinin uzrerine insa edilen bir dil degil.

Verdigin linkleri once kendin bir oku.

"Languages with oo features" ve PHP + 4 ten itibaren OO feature lar icermeye basliyor.

2 tane object yazinca dili OO hale getirmis olmuyorsun. Komple OO haline getirsan backward compatible olmayacak.

PHP zaten bence sacma sapan dizayn edilmis bir dil. Onu gectim, OO ogrenmek demek neden encapsulation yaptigini, neden polymorphism kullandigini anlamak demek. Bu ozelligin dilde olmasi yetmez, forse etmesi gerekir.

Ben master imi tamamlayali yillar oluyor, bizde OO diye bir ders yoktu. Programming Language adinda genel bir ders olur, paradigmalar ve programlama dillerinin farkli egilimleri tek course ta anlatilir. Programlama bilmeyen adama OO ogretemezsin. Araba surmeyi bilmeyen ve arabanin nasil calistigini bilmeyen adam manuel sanzima ile otomatik sanziman arasindaki farki bilemez.

OO ya gelene kadar theory of computation dan girip discrete matematikten cikacaksin ki neden state kavraminin encapsulate edilmesi gerektigini anlasin ogrenci. Ben 2 gunde OO dil yazarim. Bak kod yazarim demiyorum, direkt dil yazarim, eger mesele class keywordunu compiler a tanimlamak olsaydi cok basit olurdu her sey. Ayrica cogu CS programinda zaten lex. analiz yaparken kendi compiler ini ve dilini yazar ogrenciler. Class olmasi, 2 tane isObject metodunun olmasi dili OO yapmaz.

Zaten OO herkesin bilmesi gereken supersonik bir sey de degil. SmallTalk OO konusunda bugun her dilden daha iyi dizayn edilmis olmasina ragmen yuzune bakan yok. Isi halletmek onemli, paradigma savasi bir yere getirmez projeleri.

Amac OO ogremekse PHP cok kotu bir tercih. Daha once de dedim, isObject gibi bir fonksiyona ihtiyac duyan dil oo olamaz.
 
OOP için diğer arkadaşlarında dediği gibi C++ bende tavsiye ederim ancak, PHP'de bu kadar hafife almam. Bazı arkadaşlarda fiziksel mimariler ile oop kavramanı karşılaştırmışlar ilgisi yoktur, evet OOP metotlarını kullanmış olabiliriz ama mimari ile kavramsal hiç bir yakınlığı yoktur. Aramızda yazılım müh. veya bilgisayar mühendisi bir arkadaşımız var, mesleğini hissettiriyor, ancak OOP kavramı yine bu kadar karışık bir kavram değildir. Söyle basitçe açıklamak gerekirse aslında bizim bir kaç unsurumuz var koda görmek istediğimiz , nedir bunlar ? Esneklik, okunabilirlik, ölçeklendirebilirlik, güvenilirlik, taşınabilirlik, güvenlik, kullanılabilirlik gibi. Bunları sağlayan mekanizmalara OOP diyebiliriz. Data hiding ve Encapsulation hiç çekinden başlayabilirsiniz. Son olarakta, neden PHP'i degilde C++ tercih ediyorsam onun sebebi belli, Dynamic ve Static kavramlarının oturması, operatör overloading desteklemesi bunlar tercih sebebim yazılımla ilgili bir kavram anlatacaksam. PHP'de interpreted bir dile göre gayet başarılı bir dildir.
 
Bence de bitwise haklı, php'de oop öğrenmek/uygulamak işkence gibi oluyor zaten artık, yeni saçma sapan composerlar falan da çıktı adam en küçük işini o kadar namespace , use , :: ,-> lar ile hallediyor halbuki asıl gerçek php'de yapacağı şeyi daha az zaman ve daha az kodla halledecek...
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı