Quantcast
Channel: Egolabs Blog
Viewing all articles
Browse latest Browse all 8

Papirus ve Veri Kaynakları

$
0
0

Sistemi geliştirmeye başlamadan önceki fikrim bir PHP framework kullanmak yönündeydi. Forumdaki görüşler ise daha çok kendi yapımızı oluşturmaktan yanaydı. Her ne kadar süreci uzatacak bir yol olsa da, Egolabs olarak bu yolu tercih ettik. “İyi” bir yazılım ortaya çıkartmak için, “sağlam” bir yapı geliştirmemiz gerekiyordu. Geliştiriciyi mümkün mertebe sınırlamayacak, kullanımı ve geliştirilmesi kolay bir yapı olmalıydı bu.

Papirus çekirdeğinin veritabanı ve model bileşenlerini geliştirdiğimiz bu günlerde yaptıklarımıza bakıp “Acaba amacımızı ne ölçüde gerçekleştirdik?” sorusunu cevaplayalım.

Papirus’un veri erişiminin en alt bileşeni olan veritabanı bileşenine (Papirus_DB) baktığımızda varsayılan olarak PDO sürücüsü ile geldiğini görüyoruz. Ancak buraya kendi sürücünüzü rahatlıkla ekleyip kullanabiliyorsunuz. Bildiğiniz gibi PDO PHP sürücüsü ile birçok veritabanı kaynağına bağlantı kurabilmemiz mümkün. Bunların listesine http://www.php.net/manual/en/pdo.drivers.php adresinden ulaşabilirsiniz. Her ne kadar PDO bunları desteklese de çoğu hosting firması konfigurasyonu PDO_MySQL ve PDO_Sqlite desteklemektedir. Papirus’u diğer veri ortamlarıyla veya kendi geliştirmiş olduğunuz veri ortamlarıyla (XML veya Text DB gibi) uygun bir Papirus veritabanı sürücüsü geliştirerek kullanabilirsiniz. Diğer bir güzel özellik ise, birden fazla veri kaynağını aynı anda kullanabiliyor olmanız. Örneğin Papirus çekirdeği için Sqlite, içerik modülü için MySQL veri kaynağı kullanabilirsiniz veya Papirus çekirdeği için MySQL’deki papirus_core veritabanını, içerik modülü için MySQL’deki papirus_content veritabanını kullanabilirsiniz.

Papirus’un veritabanı katmanını soyutlayan bir bileşen olan Papirus_Model’i ise, veritabanının sağladığı bu esnekliği destekleyecek şekilde tasarlamaya çalıştık. Papirus çekirdeği için kullanacağınız veri kaynağı otomatikman ilgili adaptöre yönlendirilmekte. Örneğin Papirus çekirdeği için MySQL veritabanı seçtiğinizde, MySQL Model Adaptörü çalışmakta. Şu anda sadece MySQL üzerine geliştirmelerimizi yapıyoruz, ancak bunları ihtiyaç ve isteklere göre kolaylıkla switch edilebilecek yapılar üzerinde de kafa yormaktayız.

Şimdi “Acaba amacımızı ne ölçüde gerçekleştirdik?” sorusunu cevaplayacak olursak, sanki iyi gidiyoruz :) Bu konuda sizin görüşleriniz nelerdir?


Viewing all articles
Browse latest Browse all 8

Latest Images