>> PHP ORM (Object Relational Mapping)

29 Mart 2011 Salı

PHP ORM (Object Relational Mapping)

Programlama alanında yeni fikirler ve teknolojik  gelişmeler ile birlikte her türlü yardımcı kütüphane bulmak mümkün , bugün anlatacağımız konu PHP ORM (Object Relational Mapping)
ORM ile ilgili kısa bir alıntı ile makalemize başlayalım ;
ORM Nedir ?

ORM, Object Relational Mapping anlamına gelmektedir.  O/R Mapping olarakta yazılabilir.  ORM nedir diye bir soru soracak olursak şöyle bir cevap verebiliriz: “İlişkisel veritabanı (RDBMS) ile nesneye yönelik programlanın (OO) arasında bir tür köprü özelliği gören ve ilişkisel veritabanındaki bilgilerimizi yönetmek için, nesne modellerimizi kullandığımız bir tekniktir/metodtur”.

Kısaca ORM veritabanını Haritalama görevi görür diyebiliriz.
Çok kısa kodlar ile uzun uzun SQL kodları yazmadan projelerinizi yapılandırma aşamasında zamandan oldukça kazanmanızı sağlar.

Diğer programlama dillerinde olduğu gibi PHP içinde birçok ORM kütüphanesi bulunmaktadır , bunlardan bazıları ;

Wiki sayfasından daha fazlasına ulaşabilirsiniz.

Makalemizde anlatacağımız kütüphane php-activerecord dur, öncelikle Download sayfasından kütüphaneyi indiriyoruz

Minimum sistem gereksinimleri

  • PHP 5.3+

  • PDO drivers for the database you are using


Ayarlarınızı buna göre yapabilirsiniz , hızlı bir şekilde örneklerimize geçelim.



[cc lang="php"]
require_once 'php-activerecord/ActiveRecord.php';
ActiveRecord\Config::initialize(function($cfg)
{
$cfg->set_model_directory('models');
$cfg->set_connections(array(
'development' => 'mysql://username:password@localhost/database_name'));
});[/cc]

Çalıştığımız sayfaya yukarıdaki kodumuzu dahil ediyor , veritabanı bilgilerimizi ve model dosyalarımızın yolunu belirtiyoruz.

models/Post.php
[cc lang="php"]
class Post extends ActiveRecord\Model
{
}
[/cc]

Post classımızı kütüphanemize extends ediyoruz.

Veri ekleyelim

[cc lang="php"]$Post = Post::create(array('title' => 'title'));[/cc]

Veri okuma

[cc lang="php"]$Post = Post::find_by_title('title');
[/cc]

Veri güncelleme

[cc lang="php"]$Post->title = 'New title';
$Post->save();[/cc]

Veri silme

[cc lang="php"]$Post->delete();[/cc]

Gördüğünüz gibi çok kısa kodlar daha hızlı çalışma imkanı sağlıyor.

PHP activerecord sitesinden daha fazla örnek ve dökümanlara ulaşabilirsiniz , veya farklı ORM kütüphanelerini deneyebilirsiniz.

Çalışmalarınızda başarılar
Oğuz KOÇ

Bu İçeriğe Ulaşmak için Arama Motorlarında Şu Şekilde Arama Yapıyorlar :
PHP ORM (Object Relational Mapping),

5 Oğuz KOÇ: PHP ORM (Object Relational Mapping) Programlama alanında yeni fikirler ve teknolojik  gelişmeler ile birlikte her türlü yardımcı kütüphane bulmak mümkün , bugün anlatacağımız k...

7 yorum:

  1. Her ne kadar çok işe yarıyor gibi görünse de bence bir yazılımcı sql'den kopmamalı. MVC ve OOP mantığını kullanan programcılar için kendi özgün modellerini yazmak zor değildir. ORM kullandım ve beğenmedim açıkçası.

    YanıtlaSil
  2. Çok işime yarayacağa benziyor; deneyip, görmek lazım. Teşekkürler anlatım için.

    YanıtlaSil
  3. Yazılımcı için en önemli yönü verimlilik-hız orantısıdır.ORM'lar basitçe en performanslı şekilde yazabileceğimiz SQL'leri özellikle 'veri çekme' konusunda karmaşıklaştırıp performansı düşürüyor.
    Ben kayıtlarla ilgili ekleme,çıkarma,birleştirme,escape etme gibi özelliklerini kısmen olumlu buluyorum fakat iş veri okumaya gelince bunu söylemek yanlış olur.

    YanıtlaSil
  4. doctrini taniyordum ama bu cok daha kolaymis

    YanıtlaSil
  5. Her nekadar doctrin kullansamda Performanslar konusunda ORM lere fazla sıcak bakmıyorum. Kodları olabildiğince salt yazmaya çalışıyorum. bu tür teknolojileri, ikâmeleriyle test eden bir kaynak biliyor musunuz? Performanslar konusunda birçok yerde soru işareti var.

    YanıtlaSil
  6. Active Record'u Yii Framework ile tanıma fırsatı buldum.Açıkcası bu tür ORM teknikleri kullanıp projelerin hızlı ve karşık olmadan bitirilmesi için istifade etmeliyiz.Bence beğenmeyenler ya tam anlayamadılar ya da eski alışkanlıklarını bırakmak istemiyorlar.Sonuç olarak şunu demek isterim ki bu tür teknoloji ve teknikler hız ve güvenlik açısından baya tatmin edici.Teknolojiyi takip etmeliyiz.Ayrıca web dünyasında 1 sayfa da olsa doyurucu makale yazan ya da bilgilendirici yorumlarını bırakanlara sonsuz teşekkürler.

    YanıtlaSil

< >