Merhaba,
Mantık;
Şöyle düşünün, bir cms yazdınız ve bu cms'in ISYSTEM.php diye interface'i ve ondan türemiş SYSTEM.php class'ı var. Şimdi bunları PHP ile class ve interface olarak yazdınız diyelim. Proje bitti. System class'ı içerisinde web app. ile ilgili önemli işlemleri yapıyorsunuz örneğin DB'ye kaydedeceğiniz şifreleri burada özel bir salting yöntemi ile hashleyip kaydediyorsunuz diyelim. En basitinden sizin yazdığınız System class'ı olmadan ne uygulamaya user login olabilir ne register olabilir. Çünkü, System class'ı password'leri hashliyor. Şimdi biz class'ı uygulamanın içerisinden sildik ve C++ ile PHP'ye extension olarak geliştirdik. Örneğin: php_mysql.dll veya php_curl.so gibi. Şimdi hepimiz MySQL kullanıyoruz peki kullandığımız metodların içerisinin nasıl yazıldığını biliyor muyuz? Mesela; mysql_query(); metoduna biz SQL sorgularımızı gönderiyoruz. Peki, içeride nasıl bir işlem oluyor? Sadece bu extension'ı geliştiren kişi biliyor.
Genişletilebilirlik;
Bunun gibi bizde uygulama için önemli olan class'ları ve gerekiyorsa interface'leri PHP Extension olarak yazarsak kullanıcılar göremeyeceklerdir. İçerisinede bir JSON Web Servisi kodu ekleyin, gidip sizin sunucuzdan arada bir lisans denetimi yapsın, böylece lisanslama işinide çözmüş olacaksınız. Kullanıcı hangi adrese nasıl bir istekte bulunup lisansı check ettiğini bilmediğinden bunu önlemeside mümkün olmayacaktır.
Kaynaklar;
* e-Book:
http://www.phpclasses.org/reviews/id/1411601882.html
* C++:
http://www.devarticles.com/c/a/Cplus...nsions-Part-1/
* Zend:
http://devzone.zend.com/article/1021
Zaman ayarlamasını yaptığında Türkçe olarak blogumda anlatacağım bu konuyu.
İyi Çalışmalar.