Phalcon Framework Dersleri – 2 / Veritabanına Bağlanmak ve Model Oluşturmak

Bu yazı 2014 yılında yazıldı. Bazı bilgiler ve araçlar güncelliğini yitirmiş olabilir.

Merhabalar, bu dersimizde veritabanı bağlantısı gerçekleştirip model oluşturacağız ve insert işlemini gerçekleştireceğiz.

phalcon php

Uye isminde bir Controller oluşturalım:

<?php

class UyeController extends \Phalcon\Mvc\Controller
{

    public function indexAction()
    {

    }

    public function kayitAction()
    {

    }

}

Daha sonra tutorial/app/views klasoru altında uye isminde bir klasör ve uye klasörünün içinde de index.phtml dosyasını oluşturalım yani şu şekilde olacak tutorial/app/views/uye/index.phtml  dosyamınızın içine de form tanımlayalım :



Kayıt Ol !

Model Oluşturmak

Phalcon tamamen C dilinde yazılan güçlü bir ORM desteğini beraberinde getiriyor. İlk modelimizi oluşturmadan önce veritabanı tablomuzu oluşturalım. Oluşturacağımız tablo kayıt olan kullanıcıların bilgilerini saklayan bir tablo olacak.

CREATE TABLE `uye` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `adi` varchar(70) NOT NULL,
  `email` varchar(70) NOT NULL,
  PRIMARY KEY (`id`)
);

Daha sonra tutorial/app/models/ klasörü içerisinde Uye.php dosyası oluşturun. Modelimiz şu şekilde olmalı :


Veritabanı Bağlantısı Ayarlamak

Veritabanı bağlantısını bootstrap dosyasında tanımlayacağız :

// Veritabanı bağlantısını ayarlıyoruz
    $di->set('db', function(){
        return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
            "host" => "localhost",
            "username" => "root",
            "password" => "123456",
            "dbname" => "test_db"
        ));
    });

Boostrap dosyamızın son hali aşağıdaki gibi olacak :

<?php
try {
    // Autoloader ayarlanıyor ve set ettiğimiz dizinlerden class'lar otomatik olarak yüklenecek.
    $loader = new \Phalcon\Loader();
    $loader->registerDirs(array(
        '../app/controllers/',
        '../app/models/'
    ))->register();
   // Dependency Injection'a daha sonra değineceğiz
   $di = new Phalcon\DI\FactoryDefault();
  // Veritabanı bağlantısını ayarlıyoruz
    $di->set('db', function(){
        return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
            "host" => "localhost",
            "username" => "root",
            "password" => "secret",
            "dbname" => "test_db"
        ));
    });
   // view pathini set ediyoruz.
    $di->set('view', function(){
        $view = new \Phalcon\Mvc\View();
        $view->setViewsDir('../app/views/');
        return $view;
    });
    // uygulamamızın temel url'ini set ediyoruz. Uygulama içerisinde kullanacağımız Phalcon\Tag class'ında oldukça yararı dokunacaktır :)
    $di->set('url', function(){
        $url = new \Phalcon\Mvc\Url();
        $url->setBaseUri('/tutorial/');
        return $url;
    });
    // İçeriği alıyoruz. uygulamaladan gelen tüm verileri yazdırmasını söylüyoruz.
    $application = new \Phalcon\Mvc\Application($di);
    echo $application->handle()->getContent();
} catch(\Phalcon\Exception $e) {
     echo "PhalconException: ", $e->getMessage(); // Hata varsa hata mesajını yazdır.
}

Şimdi ki adımda form'dan aldığımız verileri veritabanına kaydediyoruz :


Gördüğünüz gibi Phalcon'da uygulama gerçekleştirmek oldukça kolay :) Bir sonraki derste Nginx üzerinde Phalcon ayarlarını gerçekleştirerek derslerimize devam edeceğiz :) CYA !

Mustafa Toker

Backend mühendisi ve ekip lideri. JVM, Spring Boot, Oracle ve yapay zekâ destekli yazılım geliştirme üzerine sahadan notlar yazıyorum.