Controller ve View Yükleme | Default Controller | Codeigniter

Merhaba dostlar,
Mobilhanem.com’ da yayınladığımız Codeigniter Dersleri setimize 4. yazımızla devam et ediyoruz. Bu dersimizde Controller dosyasını çok yakından inceleyip Controller ve Controller’ a View Kurulum,  Default Controller sadece nasıl değiştirilir?, Codeigniter Url Yapsıcaklık, Controller’ a Action eklemek, .htaccess nedir? ve Url’ den Action’ a Parametre Gönderilmesi ve Url’ deki Parametrelerin Alınmasında sektör Metodu Kullanımı şeklinde konulardan bahsedeceğiz. Dolayısıyla bu dersimiz hem akademik hem işlevsel bilgiler içeren bir oturum, toplantı, celse kesinlikle olacak.

Geçtiğimiz yazıda bundan bundan sonra application klasörünü inceleyeceğimizi söylemiştik. Bu yazımız ile birlikte birbirleriyle kod yazarak Codeigniter’ ı daha da çok yakından tanımaya devam et edeceğiz. Konuya kapı aralığı yapmadan daha önce benim mevzuları anlatırken kullandığım bilgisayarda 80 port’ u tamamlandı olduğundan apache server 8080 port’ unu kullanacaktır. Bu mevzuyla içeren özetlenen olarak Codeigniter öğrenme setinin 2. Dersinde bahsetmiştik o yazıya buradan ulaşabilirsiniz. Bu açıklamayı yapma sebebim göstermek alıntılarında üstesinden gelmek çubuğundaki adresin farklı bir şekilde olmasının sizde oluşturabileceği kafa derisi karışıklığının önüne başarıyla geçti.

Controller ve Controller’ a View Kurulum

Önceki derste açmış olduğumuz Kurulum projesini text Yayımcı ya da ide’ mizde açarak dersimize başlamış olalım. Açtığımız projede application klasörünün altındaki controllers (proje_dizini/application/controllers) klasörünün içindeki welcome.php dosyasını açalım. Welcome.php klasörü içinde aşağıdaki koda özdeş bir kod görmüş olacaksınız.

Kodda da gördüğünüz suretiyle Welcome gerçekten temel bir php sınıfıdır. Fakat onu temel php sınıflardan belirgin kılan nokta CI_Controller sınıfından kalıtılmış olmasıdır.  CI_Controller sınıfından kalıtılmış olması onu temel bir php class’ ı olmaktan çıkarıp Controller haline getirmiştir. Controller içindeki metodlardan bahsederken action tabirini kullanacağım. Uzun değil actionlar kullanıcıdan gelen istemek doğrultusunda hangi işlemin yapılacağını belirten controller sınıfı içinde bulunan metodlardır. Yukarıdaki kod parçasında bulunan index metodundan bahsederken welcome controller’ ının içindeki index action’ u şeklide bahsedeceğim. Welcome Controller’ ının içindeki index action’ undan bahsedecek olursak, bu method dikkat çekici bir şekilde temel içinde basitçe bir View yükleme işlemi meydana getirilen bir action’ durdurmak. Index action’ u içinde kullanılan $this değişiklik sözcüğü öğe yönelimli dillerden de bilinmiş olduğu suretiyle sınıfa ilişik değiştirilebilir ya da methodlara Aralık için kullanılan bir değişiklik sözcüktür. Php’ de sınıflara ilişik değişkenlere ya da fonksiyonlara ‘->’ şeklinde ulaşılır. (Başka öğe yönelimli gösteriler dillerinde ‘.’ (faktör)  ile birlikte ulaşıldığı şeklinde) Index action’ unda kullanılan,

satırı ile birlikte meydana getirilen satın alma views klasöründe bulunan welcome_message.php adındaki View’ ın sayfada yüklenmesidir.

Yukarda bulunan hat bizlere application içindeki Views klasörünü tavsiye eder. İçine almış olduğu parametre ise Views klasörü aşağıda sayfaya yüklenmesini istediğimiz View’ ın yoludur. View metodu içinde welcome_message yazılıp welcome_message.php adındaki View’ ın yüklenmesi kafanızı karıştırmasın Codeigniterda meydana getirilen view yükleme işlemlerinde .php belgeler uzantısını yazmaya gerek kalmamıştır. (Uzantı yazılmasa sihirbaz Framework vasıtasıyla eklenmektedir.)

View Dosyasını Değiştirmek

Proje_dizini/application/Views/ dizini altındaki welcome_message.php adlı dosyayı açacak olursak Codeigniter ve böylece MVC yapısının gizemini çözmeye bir eylem yaklaşmış oluruz. Dosyayı açtığımızda belgeler içinde bulunan html ve css kodları sonucu karşılaştığımız Welcome to Codeigniter yazısını ve aşağıda devam et eden yazıların yüklendiğini anlamış oluruz. Bu sayfanın index action’ u ile birlikte yüklenen web sayfası olduğuna güvenilir aslında olmak için welcome_message.php adlı belgeler’ nın içeriğini Baştan sona sildikten bundan sonra aşağıdaki kodları welcome_message.php dosyasının içinde yapıştırarak tarama edebilirsiniz.

Bu kodu yapıştırıp kaydettikten bundan sonra sayfayı yenilediğinizde aşağıdaki resimde de görüldüğü şeklinde h1 etiketi seviyesinde Codeigniter Ders 4 | Mobilhanem yazdığını görmüş olacaksınız. Demek ki welcome_message View dosyasının sayfamıza yüklenmesini elde eden kesinlikle de index action’  umuzmuş.

view test resmi

Hemen şimdi ise aklınıza takılabilecek bir tane daha bir probleminin yanıtını size anlatacak olursam o da oluşturulan başlangıçta sayfanın sebep welcome controller’ ının index metodu olduğudur. Bunun sebebi Proje_dizini/application/config aşağıda bulunan routes.php dosyası içinde bulunan,

satırıdır. Bu hat ile birlikte default controller olarak welcome controller’ ı belirlenmiştir. Index action’ u ise bütün bütün controllerlarda default olarak yüklenen başlangıçta actiondur. Bu yüzden uzmanlarımız her görev dizinimize gittiğimizde oluşturulan web sayfası Welcome controller’ ının index action’ unun yüklediği View dosyasıdır.

Default Controller sadece nasıl değiştirilir?

Projenizin mevzusu’ na bağlı olarak Welcome adlı bir Controller projeniz için pekte ilgili olmayabilir ve bu yüzden default controller’ ınızı değişiklik yapmak isteyebilirsiniz. Bu Başlık aşağıda size default Controller’ ın sadece nasıl değiştirileceğini anlatmaya çalışacağım.

Proje_dizini/application/config aşağıda bulunan routes.php dosyası içinde bulunan

satırını

Şeklinde değiştirelim ve kaydedip dosyayı kapatmış olalım. Bu işlemden bundan sonra sayfamızı yüklediğimizde 404 Page Not Found hatasını alırız. Bu gözetim istemek meydana getirilen sayfanın bulunamadığı anlamına kar ve olması ihtiyaç duyulan de budur. Bu sebeple uzmanlarımız hala home isminde bir controller’ a Sahip olmak değiliz. Proje_dizini/application/controllers dizini aşağıda home isminde bir php dosyası oluşturalım. Bu dosyayı oluşturduktan bundan sonra içinde aşağıda listelenmiş bulunan kodu yapıştıralım.

Bu kodda bulunan index action’ unun welcome controller’ ındaki index actionundan hiçbir farkı yoktur, index action’ u gene application/views/ aşağıda bulunan welcome_message adlı .php uzantılı dosyayı yüklemektedir. Hemen şimdi sayfayı bir kez daha yenilediğimizde application/views/ aşağıda bulunan welcome_message.php dosyasında bulunan html web içeriği ile birlikte karşılaşırız. Artık default Controller Home Controller olmuştur.

Codigniter Url Yapsıcaklık

Proje dizinimize gittiğimizde http://localhost/Mobilhanem/Kurulum/ Böylece avlanmak çubuğumuzda bu yöntem bir url varken projemizin başlangıç sayfasının açıldığını gördünüz. Aklınıza şu endişe takılmış muhtemelen, hani bu url’ deki Controller ve Action? İşte aklınıza takılmış olabilecek bu probleminin cevabı gene yukarıda bahsettiğimiz default controller ve defaul action (index) sorusunun sonucunda gizlidir. Nasıl ki www.mobilhanem.com yazdığımızda direkt olarak bizi sunucunun içinde bulunan index.php sayfasına yönlendiriyorsa Codeigniterda da projemizin domaini olan (http://localhost:8080/Mobilhanem/Kurulum/) adrese gittiğimizde default Controller ve index action’ u application ile birlikte tamamen aynı dizinde bulunan index.php adlı php dosyasına parametre olarak gönderilir ve çalıştırılıp ekranımızda gösterilmiş meydana. Parametre gönderme işlemi Get ile birlikte (url) ile meydana.

Controller’ a Action Eklemek

Home sayfamıza about isminde son zamanlarda bir action ekleyelim. Bu action ekrana “Mobilhanem yaklaşık olarak“ yazısını bassın. Hemen şimdi uzmanlarımız bu Action’ un çalışıp çalışmayacağını tarama edelim.

Ekleme işleminden bundan sonra home controller’ ımızın içinde ne olduğu bu yöntem olmalıdır. Hemen şimdi about adındaki actionumuzu sadece nasıl çalıştıracağımız yaklaşık olarak düşünecek olursak about, home controller’ ına ilişik bir action’ durdurmak böylece http://localhost:8080/Mobilhanem/Kurulum/Home/about şeklinde çalıştırılacağını düşünebilirsiniz, şu anda mvc yapısında olması ihtiyaç duyulan url yapısı da budur. Bu url’ yi avlanmak çubuğunuzda arattığınızda ise aşağıdaki web sayfası ile birlikte karşı karşıya gelirsiniz.

object not found resim

Bu web sayfası ile birlikte deneyim sebebimiz projemizin application klasörü ile birlikte tamamen aynı dizinde bir .htaccess dosyasına Sahip olmak olmamasıdır. Peki .htaccess olmadan da about actionumuzu çalıştırabilir miyiz? Bu probleminin cevabı ise elbette çalıştırabiliriz. Nasıl çalıştırabileceğimize gelecek olursak size önceki yazımda application ile birlikte tamamen aynı dizinde bulunan index.php dosyasını silmemeniz gerektiğinden bahsetmiştim. İşte bir controller içindeki action’ nun çalıştırılmasında rol yer belgeler bu index.php dosyasıdır. Home controller’ ının about action’ unu application ile birlikte tamamen aynı dizinde bulunan index.php dosyasına GET ile birlikte parametre olarak göndererek about action’ unun çalışmasını sağlayabiliriz. Bunu gerçekleştirmek için temel url aşağıdaki gibidir.

http://localhost:8080/Mobilhanem/Kurulum/index.php/Home/about

Bu adresi üstesinden gelmek çubuğunuzda arattığınızda about action’ unuzun çalıştığını görmüş olacaksınız. Codeigniter’ da GET işlemi yaparken endişe işareti ve değişiklik=gerçekten değer ikilisi şeklinde bir url yapısı kullanmanıza gerek kalmamıştır. Yukardaki url’ den koşullar vericek olursak GET isteği ile birlikte gönderilen değerler (index.php dosyasına GET isteği yapıldığı için) Home ve about değerleridir. Index.php dosyasında bu isteği karşılayacak method, alacağı parametreler yardımıyla bizim isteğimize çözüm vermektedir.

Peki sizce bu stil bir url ne {kadar} düzenli ya da mvc mimarisini kullanan bir framework için ne {kadar} pozitif? Yazımızın başlangıcında da belirttiğimiz şeklinde mvc mimarisinde bir controller’ ın içindeki bir action’ u çalıştırmak için temel url www.mobilhanem.com/Controller_adi/Action_adi şeklinde olmalıdır. Url’ in bu yöntem olması için application ile birlikte tamamen aynı dizinde .htaccess (noktahtaccess) isminde bir belgeler oluşturalım. Oluşturduğumuz .htaccess dosyası ısmarlama bir dosyadır, bu dosyanın özelliklerinden yazının ilerleyen kısımlarında bahsedeceğim.

htaccess Dosyasının Düzenlenmesi

Hemen şimdi .htaccess dosyasını yönetmek için ide’ nizde ya da text editörünüzde açınız ve içinde aşağıda listelenmiş yazan kodları yapıştırınız.

  • 2. satırda : Gelen istemek bir dosyaya denk gelmiyorsa
  • 3. satırda : Gelen istemek bir klasöre denk gelmiyorsa
  • 4. satırda : Başında ve bir noktada önemli değil o verileri (parametreleri) elde index.php dosyasına parametre olarak göndermek. Sondaki [L] ise 2. ve 3. satırdaki koşullar sağlandığında çalışacak güncel politika bulunduğunu gösteriyor.

Bu kuralları yazdıktan bundan sonra dosyayı kaydederek kapatmamız gerekmektedir. Bu kuralı yazdıktan bundan sonra Controller’ larımızdaki Action’ larımıza http://localhost:8080/Mobilhanem/Kurulum/Controller_name/Action_name şeklinde istekte bulunabiliriz. Hemen şimdi http://localhost:8080/Mobilhanem/Kurulum/Home/about şeklinde istekte bulunduğumuzda karşılaşacağımız web sayfası aşağıdaki şeklinde olmalıdır.

htaccessten sonra istek resim

htaccess nedir?

.htaccess dosyasını şimdiye {kadar} MVC yapısına pozitif bağlantı üretme amacıyla kullandık. Ek olarak .htaccess dosyasının özelliklerine değinecek olursak,

  • SEO uyumlu bağlantı yapısı
  • Botları engellemek
  • Spam engellemek
  • Yetki sınırlandırması

… şeklinde çok özelliği bulunmaktadır.

Url’ den Action’ a Parametre Gönderilmesi

Bu yazımda .htaccess dosyasından bahsetmeden daha önce bir Controller’ ın Action’ una istemek yaparken gerçekten bu isteğin application ile birlikte tamamen aynı seviyede bulunan index.php dosyasına meydana getirilen bir GET isteği olduğundan bahsetmiştik. Hemen şimdi ise Home Controller’ ı içinde bir Action oluşturarak Url’ den gönderilen bu parametrelerin Action tarafında sadece nasıl karşılanacağına koşullar vereceğiz.

Home Controller’ ının içinde urldenParametreAl isminde bir action oluşturalım. Bu action $ad, ve $soyad şeklinde 2 tane parametre alsın ve almış olduğu bu değerleri ekrana bassın.

Eğer söylediğim adımları yaptıysanız Home Controller’ ınızın içinde ne olduğu bu yöntem olmalıdır. Hemen şimdi üstesinden gelmek çubuğundan bu Action’ a bir istekte bulunalım. İstek yaparken kullanacağımız url

http://localhost:8080/Mobilhanem/Kurulum/Home/urldenParametreAl/adiniz/soyadiniz

şeklinde olmalıdır. Bu isteği yaptıktan bundan sonra action’ dan size dönecek eylem aşağıdaki şeklinde olmalıdır.

urlden actiona parametre gönderilmesi resim

Parametreleri doldurulmamış başarıyla geçti istediğinizde gözetim ile birlikte karşılaşmmak için Action parametrelerine aşağıdaki şeklinde default değerler verebilirsiniz.

Bu işlemden bundan sonra parametreleri doldurulmamış geçmeniz durumunda bile gözetim ile birlikte karşılaşmazsınız.

Url’ deki Parametrelerin Alınmasında sektör Metodu Kullanımı

Url’ deki parametrelerin okunması için 2. Prosedür ise Codeigniter’ ın uri sınıfının sektör methodunu kullanmaktır. Segment method içinde almış olduğu parametreye bağlı olarak istenen segmenti geriye döndürür. Aşağıdaki urlden koşullar verecek olursak,

http://localhost:8080/Mobilhanem/Kurulum/Home/urldenParametreAl2/mobilhanem.com/codeigniter_dersleri

sektör metodu parametre olarak 1 kıymetini alırsa  geriye url’ de Controller hesap denk gelen kıymeti (Home) döndürür, eğer 2 kıymetini alırsa Action hesap denk gelen kıymeti (urldenParametreAl2) döndürür. Segment metodunda 2’ den bundan sonra kullanılan değerler ise url’ de var ise eğer parametrelerin değerlerini döndürür.

Bu işlemi Home Controller’ ı içindeki urldenParametreAl2 Action’ u içinde örnekleyecek olursak.Yapacağımız örnekte üstesinden gelmek çubuğundan yapacağımız istemek http://localhost:8080/Mobilhanem/Kurulum/Home/urldenParametreAl2/mobilhanem.com/codeigniter_dersleri kesinlikle olacak yazmamız ihtiyaç duyulan action ise

şeklinde olmalıdır. Bu isteği yaptıktan bundan sonra ise karşılaşacağımız web sayfasısegment metodu kullanımı resim

şeklinde olmalıdır…

Codeigniter Dersleri öğrenme setinin 4. yazısını aşağıda noktalıyorum. Konu ile birlikte içeren sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz. Bir başarılı derste serimize Controller ve View biri kayıtlar aktarımı ile birlikte devam et edeceğiz.

Tüm Codeigniter Dersleri‘ ne buradan ulaşabilirsiniz.

1

Gönderiyi görüyorsun: Controller ve View Yükleme | Default Controller | Codeigniter

Kaynak: https://lorenzolesite.com

Kategori: teknoloji

Leave a Reply