8000 karakter limiti varmış, iki sayfa halinde yayınlıyorum: 2. Bölüm
Başlamadan Önce
FileMaker CWP için FileMaker Server kurulu olan ve web yayını yapabileceğiniz (Mac'te Apachee, Windows'ta IIS ile) bir sunucuya ihtiyacanız var. FM Server deployment sırasında CWP yapacağınızı belirtirseniz FileMaker sizin için IIS/Apachee ayarlarını yapıyor.
PHP ile CWP
FileMaker'ın sunduğu FileMaker.php veya Mehmet Bey'in bahsettiği FX.php ile file maker'a bağlanıp web sitesi oluşturmaya hazırız.
1. Veritbanına bağlantı
FileMaker'la herhangi bir işlem yapmadan (her veritabanında olduğu gibi) bir kullanıcı adı ve şifre ile bağlanmamız gerekiyor.
require_once ('Filemaker/Filemaker.php');
$fm = new FileMaker(Veritabani.fp7', Sunucu_IP_Adresi, 'kullanici_adi', 'parola');
Buradaki önemli bir husus veritabanına ulaşacak kullanıcının "extended priveledges" bölümünde Access via FileMaker Web Publisging ... seçili olması gerekir. Bir diğer önemli konu güvenlikle ilgili. Webden erişecek kullanıcılara yeni bir kullanıcı hesabı oluşturup sadece ihtiyacı olan tabloları görmesi, düzenlemesi vb. güvenlik ayarlarını özel olarak belirlemenizde fayda var.
2. Sorgumuzu oluşturyoruz
Veritabanına bağlandık artık FileMaker'dan veri çekebiliriz. Bunun için bir kaç fonksiyon yeterli.
$request = $fm->newFindCommand('arama_yapilacak_yerlesim_adi');
$request->addFindCriterion('Sorgulanacak_alan', 'Sorgu_degeri');
$result = $request->execute();
$records = $result->getRecords();
Yukarıdaki kodlarda;
2.1 Öncelikle "newFindCommand " ile bir arama komutu oluşturyoruz. (FileMaker'cada Enter Find Mode).
2.2 Ardından "addFindCriterion" ile (FileMaker'cada Set Field diyebiliriz) arayacağımız alana değeri giriyoruz.
2.3 Kriterlerimizi yazdıktan sonra Execute() ile sorgumuzu çalışıtırıyoruz (FileMaker'cadaki Perform Find)
2.4 Son olarak arama sonuçlarını $records adlı bir diziye çekiyoruz.
Bu kayıtları listelemek PHP'ye kalıyor. foreach ($records as $record)
3. Hata ayıklama
Sorgumuz her zaman istediğimiz sonucu vermeyebilir (bknz: Murphy Kanunları: Madde 1). Bir hata oluştuğunda kullanıcının karşına garip yazılar çıkmasını istemiyorsak, FileMaker'ca söylemek gerekirse Set Error Capture [On] dememiz gerekiyor. Neyse ki FileMaker.php'de bunu da düşünmüşer. Execute ile sorgularımızı çalıştırdıktan sonra aşağıdaki kodlarla hata kontrolü yapabiliyoruz.
if (FileMaker::isError($result)) {
echo 'Üzgünüm, hata oluştu. (Hata Kodu: '.$result->code.')';
}
4. Gerisi size kalmış :)
FileMaker ile yaptığınız her işlemi genel olarak sorgu olarak adlandırabiliriz. Bunlardan ilk aklıma gelenler;
- Arama/Bulma
- Kayıt Ekleme/Silme
- Kayıt Değiştirme
- Script Çalıştırma (Bu gerçekten hoş bir detay, doğrudan FileMaker scriptini PHP ile tetikleyebiliyorsunuz.)
FileMaker CWP ilgilnenler için önerebileceğim kaynaklar;
FileMaker API for PHP Documentation (jonathanstark.com/fm/filemaker-api-for-php-documentation.php)
Web Publishing with FileMaker and PHP (jonathanstark.com/fm/web-publishing-with-filemaker-and-php.php)
FileMaker & PHP için El Kitabı (jonathanstark.com/php-book)
CWP with PHP Resmi FMI Dökümanı (fmhelp.filemaker.com/docs/13/en/fms13_cwp_php.pdf)
F 'n' web : CWP ile ilgili hoş bir blog (blog.jsfmp.com)