Arkadaşlar merhaba. Konuyu doğru yere mi açtım bilmiyorum. Yanlış açtıysam kusura bakmayın. Yetiştirmem gereken bir proje var ve çok bir araştırma yapamadan fonksiyonlarımı class olarak toparlamam gerekiyor. Daha önce sadece fonksiyonlar ile çalışıyordum ancak bu projede class olarak toparlamam gerekti. Aşağıdaki yazacağım sınıf yapısı muhtemelen bir çok eleştiriye sebep olacak çünkü ilk denemem diyebilirim. Düzgün çalışmıyor zaten. Bir arkadaş hatalarımı belirterek kodları düzeltirse çok sevinirim. Hataları fark ettikten sonra diğer fonksiyonlarımı sınıflar halinde toparlamak daha kolay olacak zaten. Şimdiden çok teşekkür ederim.
class icerikler{
private $islem;
private $durum;
private $sinirla;
private $icerik;
private $sutunlar;
private $get_ara;
private $get_durum;
private $get_tip;
private $get_kategori;
private $get_yetki;
private $get_islem_tip;
private $get_hesap_id;
private $get_icerik_tip;
private $get_s;
public function __construct($islem, $durum, $sinirla, $icerik, $sutunlar){
global $get_ara;
$this->get_ara = $get_ara;
$this->get_durum = $_GET['durum'];
$this->get_tip = $_GET['tip'];
$this->get_kategori = $_GET['kategori'];
$this->get_yetki = $_GET['yetki'];
$this->get_islem_tip = $_GET['islem_tip'];
$this->get_hesap_id = $_GET['hesap_id'];
$this->get_icerik_tip = $_GET['icerik_tip'];
$this->get_s = $_GET['s'];
$this->islem = $islem;
$this->durum = $durum;
$this->sinirla = $sinirla;
$this->icerik = $icerik;
$this->sutunlar = ($sutunlar ? $sutunlar : '*');
}
public function getir(){
$secenekler = [
'islem' => $this->islem,
'durum' => $this->durum,
'sinirla' => $this->sinirla,
'icerik' => $this->icerik,
'sutunlar' => $this->sutunlar
];
return $this->icerik_getir($secenekler);
}
public function icerik_getir($secenekler){
global $vt;
if(is_array($secenekler)){
$islem = ($secenekler['islem'] ? $secenekler['islem'] : $this->islem);
$durum = ($secenekler['durum'] ? $secenekler['durum'] : $this->durum);
$sinirla = ($secenekler['sinirla'] ? $secenekler['sinirla'] : $this->sinirla);
$icerik = ($secenekler['icerik'] ? $secenekler['icerik'] : $this->icerik);
$tablo = icerik_tablo($icerik);
$sutunlar = ($secenekler['sutunlar'] ? $secenekler['sutunlar'] : $this->sutunlar);
}else{
return false;
}
if($tablo){
$sorgu = $vt->select($sutunlar)->table($tablo);
}else{
return 'false';
}
switch($icerik){
default:
return false;
break;
case'birim':
case'yetki':
$sorgu = $sorgu->where('tip', '=', $icerik);
if($durum=='0'){
$sorgu = $sorgu->where('durum', '=', '0');
}else{
$sorgu = $sorgu->where('durum', '=', '3');
}
if(!bosmu($this->get_ara)){
$sorgu = $sorgu->like('baslik', '%'.$this->get_ara.'%');
}
break;
case'eklenti':
case'gereksinim':
$sorgu = $sorgu->where('tip', '=', $icerik);
if($durum=='0'){
$sorgu = $sorgu->where('durum', '=', '0');
}else{
if(!bosmu($this->get_durum)){
$sorgu = $sorgu->where('durum', '=', $this->get_durum);
}else{
$sorgu = $sorgu->where('durum', '!=', '0');
}
}
if(!bosmu($this->get_ara)){
$sorgu = $sorgu->like('baslik', '%'.$this->get_ara.'%');
}
if(!bosmu($this->get_tip)){
$sorgu = $sorgu->where('kategori', '=', $this->get_tip);
}
$sorgu = $sorgu->orderBy('tarih_saat', 'desc');
break;
case'haber':
case'hizmet':
case'sayfa':
case'sozlesme':
case'slider':
$sorgu = $sorgu->where('tip', '=', $icerik);
if($durum=='0'){
$sorgu = $sorgu->where('durum', '=', '0');
}else{
if(!bosmu($this->get_durum)){
$sorgu = $sorgu->where('durum', '=', $this->get_durum);
}else{
$sorgu = $sorgu->where('durum', '!=', '0');
}
}
if(!bosmu($this->get_ara)){
$sorgu = $sorgu->like('baslik', '%'.$this->get_ara.'%');
}
$sorgu = $sorgu->orderBy('tarih_saat', 'desc');
break;
case'kategori':
if($durum=='0'){
$sorgu = $sorgu->where('durum', '=', '0');
}else{
if(!bosmu($this->get_durum)){
$sorgu = $sorgu->where('durum', '=', $this->get_durum);
}else{
$sorgu = $sorgu->where('durum', '!=', '0');
}
}
if(!bosmu($this->get_ara)){
$sorgu = $sorgu->like('baslik', '%'.$this->get_ara.'%');
}
if(!bosmu($this->get_tip)){
$sorgu = $sorgu->where('tip', '=', $this->get_tip);
}
$sorgu = $sorgu->orderBy('tarih_saat', 'desc');
break;
case'kupon':
if($durum=='0'){
$sorgu = $sorgu->where('durum', '=', '0');
}else{
if(!bosmu($this->get_durum)){
$sorgu = $sorgu->where('durum', '=', $this->get_durum);
}else{
$sorgu = $sorgu->where('durum', '!=', '0');
}
}
if(!bosmu($this->get_ara)){
$sorgu = $sorgu->like('baslik', '%'.$this->get_ara.'%');
}
$sorgu = $sorgu->orderBy('tarih_saat', 'desc');
break;
case'yazilim':
$sorgu = $sorgu->where('tip', '=', $icerik);
if($durum=='0'){
$sorgu = $sorgu->where('durum', '=', '0');
}else{
if(!bosmu($this->get_durum)){
$sorgu = $sorgu->where('durum', '=', $this->get_durum);
}else{
$sorgu = $sorgu->where('durum', '!=', '0');
}
}
if(!bosmu($this->get_kategori)){
$sorgu = $sorgu->where('kategori', '=', $this->get_kategori);
}
if(!bosmu($this->get_ara)){
$sorgu = $sorgu->like('baslik', '%'.$this->get_ara.'%');
}
$sorgu = $sorgu->orderBy('tarih_saat', 'desc');
break;
case'yonetici':
$sorgu = $sorgu->where('tip', '=', $icerik);
if($durum=='0'){
$sorgu = $sorgu->where('durum', '=', '0');
}else{
if(!bosmu($this->get_durum)){
$sorgu = $sorgu->where('durum', '=', $this->get_durum);
}else{
$sorgu = $sorgu->where('durum', '!=', '0');
}
}
if(!bosmu($this->get_yetki)){
$sorgu = $sorgu->where('yetki', '=', $this->get_yetki);
}
if(!bosmu($this->get_ara)){
$sorgu = $sorgu->like('isim', '%'.$this->get_ara.'%');
}
$sorgu = $sorgu->orderBy('isim', 'asc');
break;
case'musteri':
$sorgu = $sorgu->where('tip', '=', $icerik);
if($durum=='0'){
$sorgu = $sorgu->where('durum', '=', '0');
}else{
if(!bosmu($this->get_durum)){
$sorgu = $sorgu->where('durum', '=', $this->get_durum);
}else{
$sorgu = $sorgu->where('durum', '!=', '0');
}
}
if(!bosmu($this->get_ara)){
$sorgu = $sorgu->like('isim', '%'.$this->get_ara.'%');
}
$sorgu = $sorgu->orderBy('isim', 'asc');
break;
case'kayit':
if(!bosmu($this->get_durum)){
$sorgu = $sorgu->where('durum', '=', $this->get_durum);
}
if(!bosmu($this->get_islem_tip)){
$sorgu = $sorgu->where('islem_tip', '=', $this->get_islem_tip);
}
if(!bosmu($this->get_hesap_id)){
$sorgu = $sorgu->where('hesap_id', '=', $this->get_hesap_id);
}
if(!bosmu($this->get_icerik_tip)){
$sorgu = $sorgu->where('icerik_tip', '=', $this->get_icerik_tip);
}
if(!bosmu($this->get_ara)){
$sorgu = $sorgu->like('sonuc', '%'.$this->get_ara.'%');
}
$sorgu = $sorgu->orderBy('tarih_saat', 'desc');
break;
}
if($sinirla==true){
$sinir = [0, 25];//$this->kactane();
$sorgu = $sorgu->limit($sinir[0], $sinir[1]);
}
if($islem=='liste'){
$sonuc = $sorgu->getAll();
}elseif($islem=='say'){
$sonuc = $sorgu->getAll('count');
}
return $sonuc;
}
private function kactane(){
$secenekler = [
'islem' => 'say',
'sinirla' => false,
'sutunlar' => 'id'
];
$toplam_icerik = $this->icerik_getir($secenekler);
if($toplam_icerik){
$toplam_sayfa = ceil($toplam_icerik / panel_icerik_say);
$get_sayfa = isset($this->get_s) ? (int) $this->get_s : 1;
$sayfa = ($get_sayfa < 1 ? 1 : $get_sayfa);
if($sayfa > $toplam_sayfa){
$sayfa = $toplam_sayfa;
}
$baslangic = ($sayfa - 1) * panel_icerik_say;
$bitis = panel_icerik_say;
return[$baslangic, $bitis];
}else{
return false;
}
}
}NOT: Sınıfı en hızlı ve temiz çalışacak şekilde nasıl düzenleyebilirim? Ayrıca PDOx sınıfını kullanıyorum.