..:: Devamı ::..Semafor ve Shared Memory
§ Semafor kullanarak,
§ Paralel çalışacak olan scriptleriniz arasında zaman uyumlama yapabilir.
§ Eş zamanlı erişmemeleri gereken kaynakları kilitleyebilirsiniz.
§ Shared memory kullanarak,
§ Hafızada scriptlerinizin erişebileceği ortak alanlar tanımlayabilir,
§ Bu alanlara her scriptin başında atanması gereken değişken değerlerini veya arama sonucu gibi dinamik ürettiğiniz verilerinizi koyarak önbellek (cache) gibi kullanabilirsiniz
Yerleşik Oturum Desteği
Web için uygulama geliştirirken karşılaşılan en büyük sorun uygulamanın o anki durumunu (state) belirlemektir.
İstemci tarafına oturum bilgilerini atmak ve tekrar almak kolaydır. Çünkü PHP ile,
§ HTTP başlık (header) bilgilerine erişebilir,
§ Cookie'leri normal değişkenler gibi kullanabilir,
§ POST ve GET metodları ile gönderilmiş bilgileri değişkenler içinde hazırlanmış olarak kullanabilirsiniz.
Tüm bu işleri programcıya daha saydam hale getirmek için PHP'yle birlikte oturum fonksiyonları da geliyor. Böylece,
§ Programcı oturumları takip etmek için cookie'ler ile uğraşmak zorunda kalmıyor.
§ İstemci cookie desteği vermiyor ise oturum bilgisi otomatik olarak URL içinde taşınıyor.
Çıktı Yastıklama (Output Buffering)
§ Normalde echo() veya printf() ile oluşturulan çıktı hemen web sunucuya aktarılır.
§ Çıktı aktarıldıktan sonra PHP ile header() veya setcookie() gibi fonksionlar ile HTTP başlığına müdahale etmeye kalkışılırsa hata mesajı alınır.
§ Çıktı yastıklama kullanılarak scriptin çıkışına göndereceği veri bloke edilip silinebilir veya istendiği zaman gönderilebilir.
§ Böylece kodun herhangibir yerinde HTTP başlığına müdahale edileceği zaman önceden çıktı üretilip üretilmediği gibi kontrollere gerek kalmıyor.
§ 'Location' response headeri kullanarak sayfalar arası geçiş mekanizması kullanan programcıların iş akış mekanizması üzerine daha fazla yoğunlaşabilmelerine olanak sağlar.
§ Üretilen çıktının boyu gibi bilgileri kullanabilirsiniz. Sıkıştırılmış web sayfaları destekleyen tarayıcılara havada sıkıştırılmış çıktılar üretebilirisiniz
Serialization
§ serilize() ve unserialize() fonk4siyonları ile uygulamanız içindeki değişkenlerin ve değerlerinin, saklanabilir (storable) byte dizilerine dönüştürülmüş biçimini elde edebilirsiniz.
§ Uygulamanızda kullandığınız değişkenleri yapısallığını bozmadan dosyada, veritabanında, paylaşılabilir hafızada veya cookie olarak tarayıcıda saklayabilirsiniz.
§ Aynı veya farklı PHP uygulamaları arasında kolayca veri aktarabilirsiniz.
Java Desteği
§ PHP ile Java'da hazırlanmış programları kullanabilirsiniz.
§ API arabirimini bildiğiniz sürece javada yazılmış bir programın sınıflarına PHP içinden erişebilir ve PHP ile yaratılmış gibi kullanabilirsiniz.
public class Hello {
public Hello() {}
public String HelloStr(String name) {
return "Merhaba " + name;
}
}
Yukarıdaki java sınıfını derledikten sonra aşağıdaki gibi PHP scripti içinden kullanabiliyoruz:
<?
$myHello=new Java("Hello");
echo $myHello->HelloStr("Mustafa");
?>
§ PHP-Java ikilisini kullanarak RMI ve CORBA kullanan dağıtık uygulamalar geliştirmeniz de mümkün hale gelmiş oluyor.
Windows COM Desteği
§ PHP içinden Windows ortamında COM arabirimi olan nesnelere erişip normal PHP nesneleri üzerinde çalışıyormuş gibi kullanabilirsiniz.
<?
$word = new COM("word.application") or die ("word başlatılamadı");
$word->Visible=1;
$word->Documents->Add();
$word->Selection->TypeText("Deneme...");
$word->Documents[1]->SaveAs("deneme.doc");
$word->Quit;
?>
§ Örneğin Excel veya Word dökümanları üzerinde çalışabilir, Access veritabanlarına erişebilirsiniz.
§ COM ve DCOM arabirimi kullanan tüm Windows uygulamalarını kullanabilirsiniz
XML, XLST Desteği
§ XML büyük veri yığınları ile uğraşma ve uygulamalar arası veri aktarımı gibi konularda önümüzdeki günlerde daha çok duyacağımız bir teknoloji.
§ PHP ile XML (Extensible Markup Language) dökümanlarını çözümletebilirsiniz. XML kullanarak konu bazlı arama araçları tasarlanabilir.
§ XLST (Extensible Style Sheet) ve XML kullanarak, sunum bilgisi içermeyen XML dökümanlarınızın görünümünü esnek bir şekilde belirleyebilirsiniz. Bu web sitelerinde içerik ve sunumu birbirinden ayırmak için uygun bir altyapı sağlar.
§ XML-RPC türü uygulamalar geliştirebilirsiniz. Bu sayede dağıtık uygulamalar birbiriyle standart bir şekilde haberleşebilir.
Şifreleme ve OpenSSL
§ PHP ile tek yönlü şifreleme ve özet üretme fonksiyonları kullanabilirsiniz (MD5, Crypt, ... )
§ PHP simetrik çalışan pek çok şifreleme algoritmalarını da destekliyor (DES, DES3, Blowfish, IDEA, ...)
§ PHP 4.0 versiyonunda OpenSSL'i de dahil ederek asimetrik şifreleme (RSA, DSA) metodlarını da destekliyor.
§ Bu bağlamda X509 sertifikalarını da kullanabilirsiniz.
§ Böylece uzak noktalar arasında güvenli veri aktarımı gerçekleştirebilirsiniz
Ulakbim'de PHP
§ Site genelinde statik sayfalar için PHP ön işleyicisi (parser).
§ WebManager
§ Ulusal Belge Sağlama Projesi
§ Süreli Yayınlar Projesi ve diğerleri
PHP Ön İşleyicisi
§ Ulakbim sitesinde içerik ve görünümün birbirinden ayrılabilmesi,
§ Site genelinde, tek bir noktadan yönetilebilecek tutarlı bir görünüm elde etmek için geliştirildi.
§ Bunu yapabilmek için statik sayfalarda SSI benzeri kendimize özel taglar tanımladık.
§ Alt yapı olarak Apache sunucusu üzerinde, DSO modülü olarak yüklü PHP kullandık. Aynı makinada MySQL veritabanı sunucusu da bulunmakta ve herhangibir performans kaybı söz konusu olmamaktadır.
§ Sonuçta tüm Ulakbim sitesi arka tarafta dinamik olarak üretilmektedir.
§ Ayrıntılı bilgi için:
http://www.ulakbim.gov.tr/hakkimizda/site/ Ulusal Belge Sağlama Projesi
§ CABIM'in sunduğu belge sağlama hizmetinin internet ortamına aktarılmasını hedefleyen büyük çaplı bir proje denebilir.
§ Büyük bölümü PHP ile ve bazı batch işlemler Perl ve Shell Script kullanılarak yapıldı.
§ Kodlama aşaması az sayıda programcı tarfından 3 ay gibi bir sürede tamamlandı.
§ MySQL veritabanı kullanmakta ve veri güvenliği için her gün replication yapılıyor.
§ Internete açık tarafında müşteri modülü,
§ Intranet'imize bakan tarafında ise belge sağlama hizmeti veren görevliler için modül içeriyor.
§ Katalog taramalarında da PHP kullanılıyor.
§ Yakında güvenli bağlantı (HTTPS) kullanarak kredi kartı ile ödeme kabul eder hale getirilecek. Bu kısımda yine PHP-Perl ikilisi kullanılıyor.
§ Ayrıntılı bilgi: (http://www.ulakbim.gov.tr/servisler/belgesaglama/)
Süreli Yayınlar Projesi ve Diğerleri
§ Süreli Yayınlar Projesi, Ulakbim tarafından ısmarlanan süreli yayınların takibi için kütüphane otomasyon uygulamasıdır. Proje, kütüphane otomasyonu projesinden öteye götürülebilecek şekilde oluşturulmaya çalışılıyor. Henüz geliştirme aşamasında.
§ Ulakbim forumları için kullanıcı yönetim modülleri. Ücretsiz dağıtılan Phorum yazılımına bir eklenti olarak geliştirildi. Ulakbim'in kurumsal kullanıcılarıyla çalışma grupları çerçevesinde yakın çalışabilmesi için tasarlandı. Sadece üye kullanıcıların erişmesi sağlanıyor. Intranet tarafında moderatörler için yönetim ekranlarına da sahip. Kullanılıyor.
§ WebAccess projesi, Ulakbim'in ihtiyaç duyduğu veritabanı kullanan küçük çapta uygulamalar için otomatik veritabanı ve form üretmek/değiştirmek için geliştirildi. Microsoft Access benzeri bir uygulamanın Web versiyonuna da denebilir. Birden çok veritabanını kullanabilmek için class olarak bir soyutlama tabakası kullanıyor. Proje çeşitli sebeplerle tamamlanamamış olmasına rağmen şu an küçük çapta veritabanı uygulamaları için sorunsuz bir şekilde kullanılmakta.
§ Şu anda Ulakbim'de veritabanları, dosyalar ve LDAP sunucusu gibi kaynaklar üzerinde arama, listeleme ve değiştirme yapan türde pek çok uygulama PHP ile geliştirilmiş durumdadır.
Açık Kaynak Kodlu Projeler
PHP ile bir uygulama geliştirirken daha önce bu konuda açık kaynak kodlu bir çalışma olup olmadığına bakmalısınız. Yapacağınız iç çok özelleşmiş değilse var olan uygulama üzerinde ufak değişiklikler yapmak büyük zaman kazancı sağlayabilir.
§ Midgard. PHP uygulaması değil ancak PHP uygulamaları geliştirmek için framework sunan ileri bir içerik yönetim uygulaması. PHP'ye ve Apache'ye modül olarak ekleniyor. İleri düzeyde XML kullanıyor.
§ PHPlib. Oturum desteği, kullanıcı doğrulaması, templateler ve daha pekçok şey için hazır kütüphane (framework).
§ Phorum. Web forumları.
§ Horde-IMP. Web mail.
§ PHPNuke, eZ publish. Portal, içerik yönetimi.
§ The Exchange. E-commerce.
Bağlantılar
§ PHP (http://www.php.net/). PHP ekibi.
§ Apache (http://www.apache.org/). En çok kullanılan, saplamlık ve hızı kanıtlanmış web sunucusu.
§ MySQL (http://www.mysql.com/). Web için sağlam, hızlı veritabanı.
§ Zend (http://www.zend.com/). PHP 4.0 motorunu üreten şirket. Bu motoru ve Optimizer'ini ücretsiz dağıtıyor.
Sunumlar
§ LDAP Tabanlı Dizin Servisleri ve Akademik Uygulamaları
(Akademik Bilişim 2002 Konferansı, 6-8 Şubat 2002, Konya Selçuk Üniversitesi),
§ PDF sürümü (1,17 MB)
§ PHP'ye Genel Bakış (İnternet Haftası 19 Nisan 2001, Kayseri)
§ PHP ile Web Uygulamaları Geliştirme (Web Eğitim Kampı, 26-30 Haziran 2000, Kuşadası)
§ PHP ile Sunucu Tabanlı Uygulamalar (UKKT, 8-9 Şubat 2000, Isparta)
Çalışmalar
§ Java ile Nesneye Yönelik Programlama (2001)
Mustafa Hadi Dilek (hadi@ulakbim.gov.tr)
" Mustafa Hadi DİLEK " Örnek Programlar
Örnek ProgramlarÖdev, eğlence veya deneme amaçlı olarak yazdığım bazı programlar:§ Slide Puzzle § Karelerin yerini değiştirerek oynanan bir bulmaca oyunu § Dil: Java (applet olarak) § MusiPlay § Windows için midi çalıcısı § Geliştirme aracı: Delphi
Dökümanlar§ Programlama § PHP § PHP ile Web Uygulamaları Geliştirme (Mustafa Hadi Dilek, 2000, Kuşadası Web Eğitim Kampı) § PHP 4.x Manual § Java § Java ile Nesneye Yönelik Programlama (Mustafa Hadi Dilek, 2001) § Sun'dan Java Developer Kit 1.3 Dökümanları § Perl § Perl Dökümanı § JavaScript § JavaScript Guide for JavaScript 1.1 § Veritabanı Yönetim Sistemleri § MySQL § MySQL Reference Manual for version 3.23.39 § World Wide Web § HTTP § RFC 2616 - Hypertext Transfer Protocol, HTTP/1.1 § HTML § Hızlandırılmış HTML Kursu Notları (Cüneyt Yılmaz) § HTML 4.01 Specification § CSS § Cascading Style Sheets, level 2 (CSS2) Specification § FreeBSD § FreeBSD Handbook §
..:: Alıntıdır ::..