Php Veritabanı Sınıfım
-
http://paste.org/pastebin/view/32472
Sınıflarla uğraşmaya başladım (feci zevkli öyle böyle değil), yorum öneri, geliştirmek isteyenlere kaynak, yenilere örnek amacıyla paylaşıyorum.Nasıl kullanılacağını göstereyim.İçinde zaten bol açıklama varda neyse.
Öncelikle server, suser, spass, db değişkenlerindeki mevzuyu kendinize göre ayarlayın
Başka sayfaya include ediyoruz;
require_once './vt.sinif.php';
$vt = new vt(); //vt sınıfını ekledik
$vt->db = 'veritabanı'; // eğer sonradan başka bir veritabanı seçmek isterseniz iş olmasın tekrar tekrar sınıfa ekle
$vt->baglan(); // bağlantık$vt->sql(); // bu kısımda bire bir update, insert, delete drop vs.. gibi sorguları yazıyoruz (şimdilik tamamlanırsa tamam gibi birşey çıkartmadım ama bi if-else bakar
$g = $vt->gor(); // burada ise sadece select diyerek seçip ekrana bastıracağımız işlemleri yapıyoruz, $g değişkenine atadık
echo '';print_r($g);echo '
'; // neler varmış içerde bakmak için genel gözlem
ister seniz şu şekilde kullanabilirsiniz $g[1]['nick'] // uyeler için tabi nick vs.. ordaki alan adı, 1 kısmı id değil, array'deki yeri
Yok ben böyle coklu kayıt istemiyorum tek kayıt seçicem derseniz ister gor('select * from uyeler where id=1') şeklinde yapabilirsiniz.yine $g[1]['alan'] işekli gerekir.
$vt->sonuc(); // hata olup olmadığını görebilirsiniz
?>
Saygılar sevgiler.Fikir öneri, yorum görüş vs..lerinize açıktır.2 günde yaptığım sınıf, fazlasıyla eğlendim geliştirmeye devam ediyorum.Eksikleri gidericem.MEsela;
- Hatları tam olarak net yakalayıp, kullanıcıya Türkçe mesaj verme (mysqli_errNo() ile)
- insert, delete, drop gibi işlemlerde onay (ki 134. satıra şunu ekleyebilirsini;else{
echo 'sql sorgunuz başarıyla çalıştı';
}------------
Başka neler olabilir, ne eksikler var, hatta nasıl olmuş bilen arkadaşlar yorumda bulunursa sevinirim.Yani şu an öyle çok profesyonelce falan durmuyor.Madem bu işleri sınıf kullanmadan da yapabilicez, neden yapalım gibi bir düşünceye kapıldım.
NEler eklenebilir ?
-
kullanım şekli ;
<?php
require_once './vt.php';
$vt = new vt; // ile $vt değişkenine sınıfımızı atadık.
/*
kodların içinde server, şifre vs. ve veritabanı seçme kısmı var fakat sorna başka veri tabanı isterseniz diye, ekstradan seçme işlemi verdim.İsterseniz bağlanmadan önce veritabanı seçebilirsiniz
*/
$vt->db = 'yeniveritabanı';
$vt->baglan(); //bağlanıyoruz
//Eğer update, delete, insert, drop gibi karşılığı olmayan işlemleri düşünüyorsanız ;
$vt->sql('sorgunuz'); // şeklinde kullanabilirsiniz.Fakat geri döndürmeli işleminiz varsa, yani sıralama , ekrana sonuçları bastırma
$vt->gor('select vs..');
// şeklinde kullanabilirsiniz.Bunun sonuçlar array olarak aktarılacağından şöyle bir kolaylık daha iyi olur
$g = $vt->gor('select vs..');
// daha sonra istediğinizi tek tek seçebiirsiniz ;
echo $g[1]['nick'];
// gibi.Dikkat ! burda 1 id değil arraydeki kısmıdır.id için $g[1]['id'] demelisiniz.Hepsini görmek için;
echo '<pre>';
print_r($g);
echo '</pre>';
// kullanmalısınız ve herşey bittiğinde hata varsa ekrana bastırması için ;
$vt->sonuc();
?> -
Bence kendin yazmak yerine yazılmış bir sınıfı geliştirmen daha iyi olur hocam, örneğin code igniter' ın vt sınıfına aklına gelen güzel fikirleri ekle. Onların akıllarına gelen fikirler de oldukça iyi. Yazılmış kodları tekrar yazmanın gereği yok bence, bir sürü vt sınıfı var ama hangisinin her özelliği kullanılıyor, her özelliğine hakim olabiliyoruz ki ?
-
DarkF4Te bunu yazdı:
-----------------------------
Bence kendin yazmak yerine yazılmış bir sınıfı geliştirmen daha iyi olur hocam, örneğin code igniterın vt sınıfına aklına gelen güzel fikirleri ekle. Onların akıllarına gelen fikirler de oldukça iyi yazılmış kodları tekrar yazmanın gereği yok bence bir sürü vt sınıfı var ama hangisinin her özelliği kullanılıyor ki ?
-----------------------------hocam her özelliği değil işte :) kendi sınıfımda kendi istediğim özellikleri.Bir sürü sınıf bir sürü yerde mevcutta nasıl diyim , elimde kendi veritabanı sınıfım olacak, her projemde aynı sınıfı kullanabilirim.TAbi ki bu basit haliyle kalmayacak, 2 günde yazılan basit birşey.
Fakat bir blog kodluyroum şu an.Modül modül olcak.Veritabanı sınıfı, sözlük modülü, foruum modülü, blog modülü, haber modülü, admin paneli modülü..Bunların sınıf kısımları olacak.Hepsi bir birinle uyumlu çalışıcak.
Yani adam gelip siteyi indircek.Boş, alışveriş sepeti gibi düşün.Ne istiyorsa içine atıcak.HE normalde bu modüller başka sitelerede eklenebilecek.Mesela adamın forum'u ayda blog'u var, oraya beğendiği modülü alıp ekleyecek.O şekilde.
İlerdeki projelerimde de bu sınıfları , modülleri kullanıcam.TAbi kod tecrübeside cabası :) geliştirmek için, önce o ünlü sınıfları yazıcak kapasiteye gelmem lazım.
Dediğim gibi 2 günlük, deneme işiydi.Hem yeni arkadaşlara yardımcı olurum, hemde kendimi geliştiririm.
-
wp ninde çekirdek yapısını oluşturan justin biraderin ezsql sınıfını bi kurcalamanı tavsiye ederim
-
Anladım hayırlısı hocam, dilediğin gibi olur her şey umarım. Bence dediğin yapıyı codeigniter yada başka bir framework altında geliştirirsen hem sana hemde seni takip edenlere daha çok katkısı olur. Mesela ben kendi sınıflarımla yazıcam dersen puremvc'ye bir bak, hazır yapılara bir şey katmak istiyorsan ileriye dönük ekiple çalışmayı düşünüyorsan bilinen fremaworklerden biri codeigniter ile yap. Elit olsun karizma olsun ingilizcem var benim büyük düşünüyorum dersen Zend Framework kullan. Bu saydığım frameworklerde Türkçe nitelikli, gelişmiş kaynak az deneyimlerini bir yerde yayınladınmıydı iyi katkı olur. ZF ile yapıp birde sertifika alırsın ZFnin sarı sayfalarına bir Türk daha eklersin vs. vs.
Uzun lafın kısası ticari amaç gütmüyorsun kendin bir yapı kurmak daha çok hoşuna gidiyorsa öyle yap tabi ki bu saydığım frameworklerin başlangıcı da senin benim gibi insanların fikirleriyle atıldı :D
-
Zumsukcum sana söyledigim yapıyı yaparsan çok daha iyi olur.
database1->insert(datalar) şeklinde kullanımı biraz stored procedure'u andırsada bence çok daha kullanışlı.Zend Frameworkün dökümanlarını incelersen daha iyi anlarsın. -
zumsuk bunu yazdı:
-----------------------------
DarkF4Te bunu yazdı:
-----------------------------
Bence kendin yazmak yerine yazılmış bir sınıfı geliştirmen daha iyi olur hocam, örneğin code igniterın vt sınıfına aklına gelen güzel fikirleri ekle. Onların akıllarına gelen fikirler de oldukça iyi yazılmış kodları tekrar yazmanın gereği yok bence bir sürü vt sınıfı var ama hangisinin her özelliği kullanılıyor ki ?
-----------------------------hocam her özelliği değil işte :) kendi sınıfımda kendi istediğim özellikleri.Bir sürü sınıf bir sürü yerde mevcutta nasıl diyim , elimde kendi veritabanı sınıfım olacak, her projemde aynı sınıfı kullanabilirim.TAbi ki bu basit haliyle kalmayacak, 2 günde yazılan basit birşey.
Fakat bir blog kodluyroum şu an.Modül modül olcak.Veritabanı sınıfı, sözlük modülü, foruum modülü, blog modülü, haber modülü, admin paneli modülü..Bunların sınıf kısımları olacak.Hepsi bir birinle uyumlu çalışıcak.
Yani adam gelip siteyi indircek.Boş, alışveriş sepeti gibi düşün.Ne istiyorsa içine atıcak.HE normalde bu modüller başka sitelerede eklenebilecek.Mesela adamın forum'u ayda blog'u var, oraya beğendiği modülü alıp ekleyecek.O şekilde.
İlerdeki projelerimde de bu sınıfları , modülleri kullanıcam.TAbi kod tecrübeside cabası :) geliştirmek için, önce o ünlü sınıfları yazıcak kapasiteye gelmem lazım.
Dediğim gibi 2 günlük, deneme işiydi.Hem yeni arkadaşlara yardımcı olurum, hemde kendimi geliştiririm.
-----------------------------güzel ama bitaraflarını çok fazla sıkacak uzun soluklu bi olay :)
ama yapabilirsen taibki neden olmasın yapanın bi eksiği fazlası yok
kolay gelsin der başarılarının devamını dilerim
-
snnyk: aynen başladım bir iki sınıfa bakmaya
Darkf4te: aynen hoca öyle bir düşüncem vardı.zend'e bakayım.
sandman : hemen inceliyorum ve versiyon v 0.02 'yi kodlamaya bşalıyorum :D
iLLuMiNaTi : sağol.MEcburen sıkıcam, bi kaç senelik güzel birşeyler düşünüyorum.Daha doğrusu adım adım.Mesela dediğim modüllü site için yaz sonuna doğru örnek bir durum oluşturacağım.Yani bu veritabanı, 2-3 modül falan oluşacak.Sonra onların üstünde biraz çalışırım.
Hepsi bitince ordaki ajax, sınıf, modül , framework(gerekirse) bilgilerini başka bir projede kullanıcam üniversite ve kıbrısla alakalı.İşte esas projenin çekirdeği bu.1-2 sene sonrada bu projenin gelişmiş halini açacağım.
Tabi bu en az 3-4 sürelik süreçte sınıfları, eski projeleri geliştirerek gelicem.O yüzden oturup adam gibi birşeyler yapmam lazım.İleride kullanacağım birşey olacak :) Güzel ve tutacağına inandığım projem var.