Modeller veritabanınızla bilgi alışverişi sağlamak üzere tasarlanmış PHP sınıflarıdır.
Örneğin, diyelim ki STNC FW kullanarak bir blog yönetiyorsunuz.
Blog bilgilerinizi ekleme, yenileme ve çekme fonksiyonlarına sahip bir model sınıfınız olmalıdır.
Model sınıfları app/models/ dizini altına depolanmıştır.
Eğer isterseniz alt-dizinlere de yerleştirebilirsiniz.
Burada bir örnekle model sınıfını görelim:
Router::any('model_ornegi', '\Controllers\ornekController@model_ornegi');
//http://cms.dev/model_ornegi
controller dosyası: app\Controllers\OrnekController.php
//kontroller dosyası
namespace Controllers;
// controller namespace ini kullanacağımı bildirdim
use \Core\Controller as controller;
class Ornek extends controller
{
/**
* Ornek 6 - modellerle çalışmak
* modellerle çalışmak ornek bir
*/
public function model_ornegi()
{
$sayfa_Model = new \Models\ornekController_Model();
$veri = $sayfa_Model->data();
echo $veri['site_adi'];
echo '
';
echo $veri['icerik'];
}
}
model dosyası :\app\Models\ornekController_Model.php
namespace Models;
class Anasayfa_Model extends \Core\Model
{
public function icerik() {
$data=array(
"site_adi"=>"hakkımızda",
"icerik"=>"lorem ipsum ,lorem ipsum, lorem ipsum, lorem ipsum ,lorem ipsum "
)
return $data;
}
}
Şimdi test edelim http://cms.dev/model_ornegi
Bu örneğimizde modelden gelen veriyi view dosyasına gondermeyi test edeceğiz.
Router dosyası içine eklenecek olan
Router::any('model_ornegi', '\Controllers\ornekController@model_ornegi');
// linki http://cms.dev/model_ornegi
controller dosyası: app\Controllers\OrnekController.php
//kontroller dosyası
namespace Controllers;
// controller namespace'ini kullanacağımı bildirdim
use \Core\Controller as controller;
class Ornek extends controller
{
/**
* Ornek 7 - modellerle çalışmak
* modellerle çalışmak ornek bir
*/
public function model_ornegi_view_aktarimi()
{
$sayfa_Model = new \Models\ornekController_Model();
$data = $sayfa_Model->data();
$data_head['site_baslik'] = "Sağdıçlar Balıkçılık";
View::RenderTemplate('head_view', $data_head);
View::RenderTemplate('header_view');
View::Render('ornekler/data_aktarimi_view', $data);
View::RenderTemplate('footer_view');
}
}
model dosyası :\app\Models\ornekController_Model.php
namespace Models;
class Anasayfa_Model extends \Core\Model
{
public function icerik() {
$data=array(
"site_adi"=>"hakkımızda",
"icerik"=>"lorem ipsum ,lorem ipsum, lorem ipsum, lorem ipsum ,lorem ipsum "
)
return $data;
}
}
view dosyası :\app\Views\ornekler\data_aktarimi_view.php
echo $site_adi;
echo '\n';
echo $icerik;