= Pipernate ile servis sınıfları oluşturmak =
Pipernate yazarken aslında çektiğimiz sıkıntılarada biraz çözüm getirmek için bazı düşüncelerimiz vardı, yaptığımız sunum katmanındaki mesela haberler.php için olabildiğince php kodlarını dışarda bırakmak, iş gerektiren kısımları servis katmanına aktarmak ve kod karmaşıklığından uzaklaşmak idi. Bunun için pipernate altına services adı altında bir paket koyduk ve iş gerektiren tüm kodlarımızı bu katman altına aldığımız sınıflara yaptırmaya başladık. Artık sunum yapan sayfalarımız sadece servisteki classın içindeki methodlara ulaşıp doldur, boşalt yapmaktan başka bir iş yapmıyor. Böylece bakım ve yeni özelliklerde eklemek kolaylaştı
Şimdi bu sınıfları nasıl oluşturacağınızı anlatacağım bunun için size biraz DbService sınıfından bahsedeyim, bu sınıf sizle db arasında bir köprü, bunun içindeki methodların hepsi tüm işleriniz için yeterli olan methodlarınızı tutmakta.
*Bu makale güncellenmiştir.*
* Mevcut servisi interface ile desteklendi.
*INTERFACE*
< ?php
interface Ifmembers_service {
############## LIKE ENUMS #################
const modelName = "fusers";
const extendModelName = "ffollowers";
public function getUserProfil($finkUserID);
public function getUsers($limit, $orderBy);
public function getFollowers($finkUserID);
}
?>
*SERVICE CLASS*
< ?php
require_once '../system/DbService.php'; // ana service katmanı
require_once 'serviceInterfaces/Ifmembers.service.php'; //interface
require_once MODELPATH.'fusers.php'; // kendi servisimde kullanmak için
require_once MODELPATH.'ffollowers.php';
class fmembers_service extends DbService implements Ifmembers_service {
public function __construct(){
parent::__construct();
}
public function getUserProfil($finkUserID){
$this->criteria = new Criteria(Ifmembers_service::modelName);
$this->criteria->where("fid", $finkUserID);
$this->modelname = $this->uniqueResult($this->criteria);
return $this->modelname;
}
public function getUsers($limit, $orderBy){
$this->criteria = new Criteria(Ifmembers_service::modelName);
$this->criteria->orderBy("fid",$orderBy);
$this->criteria->limit(0,$limit);
$this->modelname = $this->select($this->criteria);
return $this->modelname;
}
public function getFollowers($finkUserID){
$this->criteria = new Criteria(Ifmembers_service::extendModelName);
$this->criteria->where("fiduser", $finkUserID);
$this->extendModelname = $this->select($this->criteria);
foreach ($this->extendModelname->asArray() as $data){
return $this->getUserProfil($data->fidfollower);
}
}
}
Şimdi gördüğünüz gibi – extends DbService – ile DbService extend ettik. bookmark_service sınıfına ait construct methodun içine parent::__construct(); ile extend ettiğimiz DbService ile gerekli konfigürasyonu yaptık.
Sırada çağırıp test etme işi kaldı. user.php sayfamıza gidiyoruz. Servisimizi include ediyoruz.
$service = new fmembers_service();
$data = $service->getUsers(10, "DESC");
if($data->size() == 0){
echo "There is no data!";
}
else{
print_r($data->asArray());
}
Sonuç olarak dönen değerimizinde boş olup olmadığını kontrol ettikten sonra işlerimizi bitiyoruz.
Kolay ve hızlı kodlamalar
Tags: php ile servis yazmak, php orm service, php service, pipernate service, pipernate service layer, pipernate servis katmanı
1 comment
Comments feed for this article
Trackback link: http://www.gokalpkuscu.com/pipernate-ile-servis-siniflari-olusturmak/trackback