Sayfa Reklamı

Browsing Tag

oop

OOP, PHP

OOP Başlangıç Rehberi (Object Orient Programming)

Merhaba Arkadarşlar,

Yeni bir eğitim setine başlıyorum, hayırlısıyla bununda altından kalkabiliriz sanırsam 🙂 Beni şimdiden takip edecek ve bilgilerini paylaşacak kişilere şimdiden teşekkürlerimi borç bilirim. İYİ SEYİRLER.

cPanel

onFramework! Hakkında

Merhaba Arkadaşlar,

Sizlerle bu sefer yaptıklarım hakkında bilgi paylaşacağım son zamanlarda fonksiyonel PHP çok zoruma gidiyor kod yazmaktan sıkılıyorum buna bir çözüm yolu aramaya çalışıyordum ve kendimi hem geliştirmek adına Laravel’e başladım. Bunun üzerine fazla gitmedim açıkçası o yüzden tam olarak öğrenmişte değilim onun yerine MVC yapısını tam olarak kavramaya çalıştım ve orta seviye’de felan OOP bilgim mevcuttu yani temel olarak herşeyi yapabiliyordum OOP’de bende kendi projelerimde kullanabileceğim ve kendi Class’larımı yazabileceğim kendi kullanımıma ve rahatlığıma göre bir framework yazma kararı aldım kısa sürdü açıkçası fakat daha tam olarak stabil hale getiremedim sanıyorsam hataları görmek için bir proje üzerinde deneyeceğim ve bittiğinde zaten neleri daha kolay kullanabilirim nelerde zorluk çektim gibi sorunlara daha net bir çözüm bulmuş olacağım.

Her framework’te olduğu gibi bir Router’ım mevcut MVC yapısına göre bir link yapım mevcut ve dosya yapımda MVC ile uyumlu olarak çalışmaktadır.

+ app
– config (Uygulamamın ayar dosyaları burada yer almaktadır.)
– controllers (Tüm şartlarımı, kontrollerimi vb. sağladığım kısım)
– models (Veritabanı işlemlerini yaptığım kısım)
– views (Front kısımlarım burada yer almaktadır.)
– classes (Uygulamama özgün olarak hazırlanmış classlarım)
+ system
– libs (Sistem’e ait classlarımın olduğu bölüm.)
+ public (Tema ile ilgili kısımları barındırıyorum.)

Kurduğum yapı tam olarak şuanda bu tabi henüz tam olarak bitmiş değil paylaşmaya gelirse tam olarak emin değilim şuanda zaten piyasada yeterince framework mevcut projelerimin gizliliği adına dağıtım konusunda pek rahat değilim açıkçası kullanılacak mı onada emin değilim performans konusunda şuanda gayet güzel duruyor. MySQL bağlantısı yaptığım bir PDO class’ım mevcut system içerisinde ve tüm SQL işlemlerimi onun aracılığıyla gerçekleştiriyorum. Projeyi github üzerinden takip edebilirsiniz yayınlar isem bu linkten yayınlamış olurum. PHP’de yaklaşık olarak 7 senelik bir tecrübem var fakat bu 7 sene içerisinde henüz bir projede framework kullanmışlığım yok fakat bu zamana kadar gerek duyduğumu pek hissetmedim sadece son zamanlarda aşırı kod yazdığım için sıkılmaya başladım bunada bu şekilde bi çözüm yolu buldum dilerseniz framework’ü geliştirmemde yardımcı olabilirsiniz belkide bu şekilde paylaşımını sağlayabilirim tam olarak güvenlik konusunda emin olmadığımı söyleyebilirim aynı zamanda cache olarakta eksiğim mevcut bununla ilgili olarakta çalışma yürütüyorum.

Şimdilik hoşçakalın genel durum hakkında sizleri devamlı olarak bilgilendireceğim.

CodeIgniter, HTML, HTML5, MySQL, OOP, PDO, PHP

CodeIgniter UTF-8 Charset Tanımlama

Merhaba Arkadaşlar,

CodeIgniter üzerinde sıkça karşılaşılan problemlerden biride charset nasıl tanımlarız global olarak yeni başlayanlar için açıklıyorum tabi views içerisinde yani temamızda diyelim head tagları arasına

Ekleyek problemi gidermiş olacağız. Takipte Kalın…

Genel, Kodlar, Library (lab), MySQL, OOP, PHP

PHP MySQL Classes – OrhanBHR

PHP MySQL Classes
===========

Dosyamıza Class’ımızı çağırmak için require_once fonksiyonunu kullanıyoruz.
require_once("class.sql.php");

Class’ı çağırmak için aşağıdaki kod parçacığını kullanıyoruz.

$SQL = new SQL();

Select Kullanımı :

print_r( $SQL->Select('odds') );

Select Kullanarak Listelemek

Insert Kullanımı :

Delete Kullanımı :

Update Kullanımı :

Şuanda gördüğünüz class’ın ilk versiyonudur gelişim süreçleri olacaktır.

Genel, Günlük Rutinler, OOP, PHP

PHP OOP Dersleri #2

Merhaba Arkadaşlar,

OOP Kategorisi için hazırlamış olduğum OOP Dersleri eğitim setinin ikinci kısmını yüklemiş bulunmaktayım devamı gelecektir. Hepinize destekleri için teşekkür ederim…

Genel, Kodlar, Library (lab), OOP, PHP

DB Bağlantı Class’ı (OOP)

Merhaba Arkadaşlar,

Sizler için ufak birşey hazırladım kullanımı basit olur CLASS kodlama yapan arkadaşlara güzel bir class olacağını düşünüyorum…

OOP, PHP

Final Deyimi – OOP

Kalıtım yoluyla birçok sınıfı birbirinden türetebilirsiniz. Eğer takım çalışması içinde çalışıyorsanız; sonu olmayan durumlar, çalışmaları çözümsüzlüğe itebilir. Oyunu kurallarına göre oynamak ve deyimleri, komutları doğru ve olması gerektiği gibi kullanmak işlerinizi daha kolay ve daha az zahmetle tamamlamanıza fayda sağlar.

Yukarıdaki örnekte 3 adet sınıf tanımlanmış. Öncelikle ulke isimli sınıf tanımlanıyor ve daha sonra sehir isimli sınıf ulke isimli sınıftan kalıtım yoluyla türetilmiş. Son olarak ise final anahtar sözcüğü ile birlikte sehir sınıfından kasaba sınıfı türetilmiş. Burada final deyimi kullanılarak kasaba sınıfının son nokta olduğunu belirtiyoruz.

Yani, takım çalışmasında sizin oluşturduğunuz bu sınıf yapısını kullanan bir ekip üyesi, kasaba sınıfından yeni bir sınıf türetilmeyeceğini anlayacaktır. Anlamayıp tanımlamaya çalıştığında zaten PHP motoru bu arkadaşa hata yaptığını bildiricektir.

Takipte Kalın : orhanbhr.com

OOP, PHP

Kalıtım (Miras) Yoluyla Sınıfları Genişletme (Inheritance)

Kalıtım konusu; nesne yönelimli programlamanın en önemli konularından birisidir. Kalıtım yoluyla bir nesneden başka nesneler türetilebilir. Türeyen sınıflar, türedikleri sınıfların özelliklerini ve metotlarını kullanabilir. Yalnız bir şartla, gizliliğin private olmaması gerekmektedir. Bu sınıftan kalıtım yoluyla özellik ve metotları kullanmak için extends deyimi kullanılır.

Yukarıdaki örnekte isimler isimli bir sınıf oluşturuldu ve public anahtar sözcüğü ile ad, soyad özelliklerine ve Yaz metoduna sahip. Bu sınıftan extends anahtar sözcüğü ile notlar sınıfı türetilmiş. notlar sınıfı isimler sınıfında var olan özellik ve metotları kullanabilme hakkına sahiptir.

Ayrıca notlar sınıfı içinde bir başka özellik ve metod daha tanımladık. Böylece notlar sınıfının ad, soyad ve not isimli 3 adet özelliği, Yaz ve NotYaz isimli 2 adet metodu olmuştur. Ekrana çıktı verdiğimizde ise şöyle bir çıktı alacağız.

Beni takip ettiğiniz için teşekkür ederim.

OOP, PHP

Görünürlük (Encapsulation) – OOP

Merhaba Arkadaşlar,

Nesne yönelimli programlamanın sağladığı en önemli avantaj ise; gizleme yani erişim haklarıdır. Bir özelliğin veya metodun görünürlüğü, bildirim esnasında hemen önüne tanımlanır.

PHP ile kullanabileceğiniz 3 tür gizlilik türü vardır. Bunlar public, private ve protected. PHP4 ile uyumluluğun sağlanabilmesi için, eğer bir özellik veya yöntem için hiçbir görünürlük tanımı yapılmamışsa, public olarak tanımlanmış varsayılır.

public olarak belirlenmiş özellik ya da metotlara herkes, her yerden erişebilir.

private olarak belirlenmiş özellik ya da metotlara sadece sınıfın kendisi erişebilir.

protected olarak belirlenen özellik ya da metotlara ise; sınıf içinden ve bu sınıftan türetilen diğer sınıflardan erişilebilir. Aşağıda gizlilik erişim haklarını temsil eden kısmı dikkatlice okuyunuz.

public – Sınıfa Dışardan Erişim Var – Sınıf İçinden Erişim Var – Türemiş Sınıflardan Erişim Var
private – Sınıfa Dışardan Erişim Yok – Sınıf İçinden Erişim Var – Türemiş Sınıflardan Erişim Yok
protected – Sınıfa Dışardan Erişim Yok – Sınıf İçinden Erişim Var – Türemiş Sınıflardan Erişim Var

Aşağıdaki örneği incelediğinizde sınıfın dışından sadece public olarak belirtilen özellikler kullanılabilmektedir. Diğer kullanımların olduğu satırlar için PHP yorumlayıcısının hata mesajı oluşturulduğunu fark edebilirsiniz.

Yukardaki örneği çalıştırdığımızda ise sadece ekrana Orhan yazacak ve soyad değişkeni için erişim izniniz olmadığı için Fatal Error (Ölümcül Hata) oluşturulacaktır. Ölümcül hata oluştuğundan dolayı betğin çalışması durdurulacaktır.

Benzer şekilde görünürlük anahtar sözcükleri özelliklerde olduğu gibi metotlarda da kullanılarak, hangi seviyede kullanım izni olduğu belirlenebilir.

OOP, PHP

Parametreli Kurucu Metotlar – OOP

Sınıf özelliklerine ilk değer verebiliyoruz. Ama öyle bir an gelir ki bu ilk değer yerine başka bir değeri alarak sınıfın başlatılmasını isteyebilirsiniz. Bu durumda kurucu metotlara bir takım parametreler vererek özelliklerin değerlerini değiştirebilirsiniz.

Yukarıdaki sınıf, iki adet ilk değerleri verilmiş özelliğe sahiptir. $ad isimli özelliğin değeri Orhan ve $soyad isimli özelliğin değeri ise Bahar olarak belirtilmiş. Kurucu fonksiyon ise bir adet parametre alıyor. Eğer bu parametre değeri boş geçilmemiş ise, sınıfa ait ad isimli özelliğin değeri değiştiriliyor.

 

Sınıfı örneklerken dikkat ederseniz OrhanBHR değerini de gönderdik. Böylece kurucu fonksiyon içinde bir özelliğin değeri değiştirilecek. Test etmek için ekranaYaz() metodu çalıştırıldığında, gerçekten de ekrana Orhan Bahar yerine OrhanBHR Bahar yazdığını göreceksiniz.