• 29-11-2013, 13:20:48
    #1
    Merhabalar, şunu belirtmek istiyorum ki mvc ve framework yapısına daha yeni başladım.

    example.com/username şeklinde bağlantı yapısı için Codeigniter'da şöyle bir şey yaptım.

    routes.php'ye şunları ekledim.

    $route['anasayfa'] = "anasayfa";
    $route['anasayfa/(:any)'] = "anasayfa/$1";
    
    $route['(:any)'] = "profil/$1";
    profile control dosyam da şu kelinde;

    class Profil extends Admin_Controller{
    	public function __construct(){
    		parent::__construct();
    	}
    
    	public function _remap($method = false) {
    		$this->profilGoruntule($method); 
    	}	
    
    	private function profilGoruntule($profil = false){
    		if($profil == false){
    			echo 'Profil bulunamadı!';
    		}else{
    			echo $profil;
    		}
    	}
    }
    Şuan için bir adet anasayfa controlüm var ve altında methodlar türetiyorum. Bunu routes.php'de belirttim. İlerleyen dönemde farklı her oluşturduğum control'ü routes.php'de belirtmek zorundayım.

    Örneğin;
    $route['portal'] = "portal";
    $route['portal/(:any)'] = "portal/$1";
    Bu şekilde bir yöntem izledim, şuan çalışıyor fakat sizce sağlıklı bir yöntem mi bu? Daha farklı bir yolu var mıdır?

    Teşekkürler.
  • 18-12-2013, 03:49:23
    #2
    şuan için en sağlıklı yöntemin bu olduğunu düşünüyorum.Sonuçta sonradan ekleyeceğin controller sonsuz nitelikte değil.Tek tek elle girmek sıkıntı olur diyorsan modüllerin adını veritabanına kaydedip döngü ile route tanıtabilirsin bunları.Veritabanı ile ilgili olmasada config dosyası örneğini veriyorum daha terli toplu olması acısından.
    //config.php
    
    $config['my_controller_list'] = array(
                                              'portal'     => '(:any)',
                                              'profil'      => '(:any'),
                                              'anasayfa' => '(:any)' );
    
    //routes.php
    
    global $CFG;
    foreach($CFG->item('my_controller_list') as $name => $rule){
    
    $route[$name] = $name; 
    $route[$name.'/'.$rule] = $name."/$1";  
    
    }
  • 18-12-2013, 10:50:20
    #3
    arasdizayn adlı üyeden alıntı: mesajı görüntüle
    şuan için en sağlıklı yöntemin bu olduğunu düşünüyorum.Sonuçta sonradan ekleyeceğin controller sonsuz nitelikte değil.Tek tek elle girmek sıkıntı olur diyorsan modüllerin adını veritabanına kaydedip döngü ile route tanıtabilirsin bunları.Veritabanı ile ilgili olmasada config dosyası örneğini veriyorum daha terli toplu olması acısından.
    //config.php
    
    $config['my_controller_list'] = array(
                                              'portal'     => '(:any)',
                                              'profil'      => '(:any'),
                                              'anasayfa' => '(:any)' );
    
    //routes.php
    
    global $CFG;
    foreach($CFG->item('my_controller_list') as $name => $rule){
    
    $route[$name] = $name; 
    $route[$name.'/'.$rule] = $name."/$1";  
    
    }
    Cevabınız için teşekkür ederim.