• 27-10-2012, 01:21:55
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Ci öğrenmeye karar verdim.Sağolsun OfisSoft'un anlatımı olan derslerden ve phpacademy den epey bir şey öğrendim.Küçük bir script yazarakda pekiştirmek istiyorum ama başlayamadım.
    Çünkü nasıl başlayacağımı bilemedim Fazladan kod yazcakmışım gibi geliyor.Dosyaları nasıl ayıracağımı bilemedim.Ben normal olarak kodlarken aşağıdaki yapıyı kullanıyordum.

    include('sayfalar/header.php');
    
    
    
    	function gpc($val = null)
    	{
    		return (get_magic_quotes_gpc() ? $val : mysql_real_escape_string($val));
    	}
    	
    	$sayfa = $_GET['sayfa'];
    	$yol   = 'sayfalar/' . $sayfa . '.php';
    		
    	if($sayfa && file_exists($yol)){
    		require ($yol);
    	}else{
    		require ('sayfalar/anasayfa.php');
    	}
    
    include("sayfalar/footer.php");
    Codeigniter'da

    dosyaları neye göre açacağım.Mesala bir tane controllers dosyası yetermi yada model dosyası.Buna karar veremiyorum birde yukarıdaki yapıyı kuramadım.Bir sitede header ve footer sabit ise ben bunu nerede nasıl tanımlarım çözemedim.Yardımcı olursanız sevinirim.
  • 21-08-2015, 00:12:02
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Anasayfamız için footer, header ve sidebar 'ı ekrana yazdırmak istiyoruz diyelim.
    sayfalar klasörü yerine halihazırda var olan \application\controllers dosya yoluna anasayfa.php controller ını oluşturduğumuzu düşünelim.
    \config\router.php dosyasından
    $route['default_controller'] = 'anasayfa'; olarak ayarladığınızda index sayfanızda anasayfa controllerı default olarak yüklenecektir.
    controller içinde index() fonksiyonunda header, footer, sidebar vs. viewer dosyalarından çekmeniz gerekir.
     public function index()
            {
                    $this->load->view('header');
    				$this->load->view('sidebar');
    				$this->load->view('footer');
            }
    Bu örnekte database işlemi yapmadığımızı farzederek, model dosyası kullanmadık.
    $_GET kullanımı yerine codeigniter input class'ı incelemenizi tavsiye ederim.
  • 21-08-2015, 00:15:21
    #3
    1 tane controller 1 tane model 1 tane view kullanacaksanız spagetti yazmaya devam edin.

    Parçalara ayırmanız gerekli herşeyi. Parçalara ayırın ki geliştirmesi daha kolay olsun.
  • 21-08-2015, 00:35:58
    #4
    Bende şu sıralar Codeİgniter ile ilgileniyorum, hali hazırda var olan scriptleri editleyerek/kurcalayarak yapıyı öğrenmeye çalışıyorum.

    Benim gördüğüm sistemlerde header,php, footer,php, sidebar,php gibi bileşeneler application/view/klasör oluştur buraya at.

    Tabi yukarda arkadaşların dediği gibi sisteme entegre etmen lazım.
  • 21-08-2015, 11:12:35
    #5
    framework kullanmak önemli ve güzel bir yaklaşım.
    ancak framwork kullanmadan önce neden framework kullanıldığının ve bunların nasıl ortaya çıktığı anlaşılmalıdır.
    session, cart vs gibi hazır sınıflar yüzünden kullanılmıyor frameworkler.

    mvc yapı nedir? mvc yapısı neden kullanılır? avantajı nedir?
    bunların araştırılıp, sonra framework kullanılması gerekir.


    sorunuza cevap verecek olursak da, her url tabanı için 1 adet controller yazmalı, bunların devamı için alt fonksiyonlar ve bu alt fonksiyonların basit olarak çalışması için de private alt fonksiyonlar (methodlar) yazmalısınız. her controller için ayrı bir model dosyası ve bunun içinde de yine onlarda method yazmalı mümkün olduğunca modüler tutmalısınız. view dosyaları zaten template dosyalarıdır, kaç tane gerekiyorsa diyerek sonlandırıyorum.

    not: template dosyalarında include kullanmamanızı, header ve footer dosyalarınızı da controllerdan çekmenizi tavsiye ederim. ancak bu sayede sayede sayfa başlığı, keyword vb gönderebilirsiniz.
  • 21-08-2015, 13:23:43
    #6
    Misafir;

    Benim gibi bu kavramları pek bilmeyen, yeni başlayan insanlar için daha basit anlatırmısınız, Ben bir sistemde yeni bir url tabanı oluşturamadım. Acaba biraz daha basit anlatırmısınız.

    Yaptıklarım ;

    application/controllers : Yeni bir control dosyası hazırladım
    application/models : Yeni bir models dosyası hazırladım
    application/view/yenisayfa : Yeni bir klasör içinde sayfanı oluşturan teme dosyası hazırladım
    application/config/autoload.php : Dosyasında gerekli düzeltmeleri yaptım

    ancak yinede başarıya ulaşamadım. Acaba nerede hata yapıyorum ?
  • 21-08-2015, 17:25:52
    #7
    mersinstyle adlı üyeden alıntı: mesajı görüntüle
    Misafir;

    Benim gibi bu kavramları pek bilmeyen, yeni başlayan insanlar için daha basit anlatırmısınız, Ben bir sistemde yeni bir url tabanı oluşturamadım. Acaba biraz daha basit anlatırmısınız.

    Yaptıklarım ;

    application/controllers : Yeni bir control dosyası hazırladım
    application/models : Yeni bir models dosyası hazırladım
    application/view/yenisayfa : Yeni bir klasör içinde sayfanı oluşturan teme dosyası hazırladım
    application/config/autoload.php : Dosyasında gerekli düzeltmeleri yaptım

    ancak yinede başarıya ulaşamadım. Acaba nerede hata yapıyorum ?

    Şimdi mesaideyim o yüzden detaylı anlatamıyorum ancak müsait olunca görsel bir şablon ile seve seve anlatırım.

    Ancak şimdilik basitçe söylemek gerekirse;

    farzedelik ogrenci adında bir controller açtık.
    siteadresi.com/ogrenci linkine gidildiğinde bu controller çağırılmış olur.
    application/controllers altına Ogrenci adında bir controller yazıp, index() fonksiyonuna da echo 'ogrenci controlleri girisi'; yazarsanız ekrana bunu yazacaktır. Hayırlı olsun ilk controller dosyanızı yazmış oldunuz.

    ingilizceniz varsa http://www.codeigniter.com/user_guide/ bu adreste her şeyi çok detaylı şekilde açıklıyorlar.
    ingilizceniz yoksa da codeigniter.gen.tr adresinde çok daha detaylı açıklamalar mevcut Türkçe olarak.
    • ErkanAranci
    ErkanAranci bunu beğendi.
    1 kişi bunu beğendi.
  • 21-08-2015, 18:50:28
    #8
    Üyeliği durduruldu
    Misafir adlı üyeden alıntı: mesajı görüntüle
    framework kullanmak önemli ve güzel bir yaklaşım.
    ancak framwork kullanmadan önce neden framework kullanıldığının ve bunların nasıl ortaya çıktığı anlaşılmalıdır.
    session, cart vs gibi hazır sınıflar yüzünden kullanılmıyor frameworkler.

    mvc yapı nedir? mvc yapısı neden kullanılır? avantajı nedir?
    bunların araştırılıp, sonra framework kullanılması gerekir.


    sorunuza cevap verecek olursak da, her url tabanı için 1 adet controller yazmalı, bunların devamı için alt fonksiyonlar ve bu alt fonksiyonların basit olarak çalışması için de private alt fonksiyonlar (methodlar) yazmalısınız. her controller için ayrı bir model dosyası ve bunun içinde de yine onlarda method yazmalı mümkün olduğunca modüler tutmalısınız. view dosyaları zaten template dosyalarıdır, kaç tane gerekiyorsa diyerek sonlandırıyorum.

    not: template dosyalarında include kullanmamanızı, header ve footer dosyalarınızı da controllerdan çekmenizi tavsiye ederim. ancak bu sayede sayede sayfa başlığı, keyword vb gönderebilirsiniz.
    niye kulanmıyor include ? string sadece controlden çekincemi yollanıyor


    en basit fonksiyonel kullanım budur, bunun haricinde daha farklı bir class yazılabilir.

    framework iş kolaylaştırmak içindir, öyle olacak diye bir kural yok, yeri geliyor modeli viewe yazabiliyoruz

    <?php $this->load->view('theme/header.php');?>
    
    // index page code
    
    <?php $this->load->view('theme/footer.php');?>
  • 21-08-2015, 19:09:14
    #9
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Şimdi mesaideyim o yüzden detaylı anlatamıyorum ancak müsait olunca görsel bir şablon ile seve seve anlatırım.

    Ancak şimdilik basitçe söylemek gerekirse;

    farzedelik ogrenci adında bir controller açtık.
    siteadresi.com/ogrenci linkine gidildiğinde bu controller çağırılmış olur.
    application/controllers altına Ogrenci adında bir controller yazıp, index() fonksiyonuna da echo 'ogrenci controlleri girisi'; yazarsanız ekrana bunu yazacaktır. Hayırlı olsun ilk controller dosyanızı yazmış oldunuz.

    ingilizceniz varsa http://www.codeigniter.com/user_guide/ bu adreste her şeyi çok detaylı şekilde açıklıyorlar.
    ingilizceniz yoksa da codeigniter.gen.tr adresinde çok daha detaylı açıklamalar mevcut Türkçe olarak.
    Yardımlarınız için teşekkürler, ancak dediğiniz gibi yaptım ve olmadı. verdiğiniz siteyi inceleyeceğim. Musait bir zamanda team vb birşey ile bağlanıp gösterme şansınız varmı ?