
Merhabalar, Bu video da PHP Faces Uygulama geliştirme çatısı üzerinde veritabanı işlemlerini anlatmaya çalışacağım. Öncelikle tablolarımı oluşturuyorum.
Sayfa adında bir tablom var Id niteliği birincil ve auto increment durumunda. sayfa için içerik ve birde sayfa için başlık alanım var. Sayfa tablomuz hazır
Sayfalara yorum yapılabilsin diye birde yorum tablosu oluşturuyorum. Sayfa ile ilişkilendireceğim alan sayfaid yabancı anahtar (foreign key) olacak biraz sonra. Şimdi yabancı anahtarımı ekliyorum.
Key Name: FK_Yorum1
Ref. Table: sayfa
Column : sayfaid
Reference column : id
On Delete : cascade
On Update : Restrict
Evet yorum tablomda hazır
Şimdi bilgisayarımıza daha önce indirdiğimiz generator programı ile varlık sınıflarımı oluşturacağım. Veritabanı adım, varsa kullanıcı adı ve şifrenizi yazın
JDBC URL: jdbc:mysql://localhost:3306/
Driver Class: com.mysql.jdbc.Driver
DataBase: benimdb
Username : root
Password:
Aşağıdan "Inner manager Style" i işaretliyoruz ve Generate butonuna basıyoruz. Framework ün bulunduğu dizine doğru ilerleyeceğim. Burada applications da Geçerli uygulamanın bulunduğu models klasörü içerisine oluşturmasını söylüyorum. Evet 2 adet sınıf oluşturuldu.
Şimdi bu sınıfların içeriğine baktığımız zaman Sayfa.php nin içeriğine bakalım. Tablo ismimiz ile aynı isimde bir sınıf OneToMany bir ilişkimiz var Bire çok yani bir sayfada birden fazla yorum bulunabilir. ve yorum alanı ArrayObject olarak tanımlanmış save ve delete metodlarımız var Yorum sınıfına baktığımız zamanda Yorumla ilişki many to one olarak tanımlanmış. Yani sadece bir sayfa id si barındırabilir Yine save, delete, get ve set metodlarımız burada tanımlı Ben önceden kolaylık olsun diye üç tane view dosyası hazırladım. Ekle, güncelle, listele şeklinde. Hemen kontrolcümüzü yazmaya başlayalım.
Sayfalar adında bir kontrolcüye sahibiz. Kullanacağımız sınıfları import edelim. Veritabanı işlemlerini yapmam için gerekli olan sınıfları import ettim.
<?php
import("phpf.controllers.facete");
import("dbf.persistence.");
import("models.*",true);
import("io.urim");
class sayfalar extend Facete{
public function sayfalar(){
parent::Facete();
}
}
?>
Az önce oluşturduğumu varlık sınıflarını import ediyorum. True değerini vererek bu sınıfların mevcut uygulama dizininde bulunduğunu belirtmiş oldum.
Birde url satırından gelen parametreleri metod olarak çalıştırabileceğim bir sınıf kullanacağım. Urim sınıfı sayesinde paremetre olarak gelen satırları metoda dönüştürebileceğim örnek olarak şuraya sss yazdığım zaman sss adında bir metodu çalıştırabileceğim. Nesnelerimizi tanımlayalım.
<?php
import("phpf.controllers.facete");
import("dbf.persistence.");
import("models.*",true);
import("io.urim");
class sayfalar extend Facete{
protected $sayfa;
protected $sayfalar;
public function sayfalar(){
parent::Facete();
}
}
?>
$sayfa nesnemiz, $sayfalar, sayfaların listesi için .Metodları çağırmam için bununda kısaltması $vm olacak Varlık yöneticim için entity manager $em olsun. Evet şimdi ilk başta web