Bu makalede öncelikle Codeigniter'da site_url() ile base_url() fonksiyonlarının kullanımını daha sonra ise aralarındaki farkı anlatacağım. Codeigniter'da bu 2 fonksiyonda tanımlıdır ama site_url() fonksiyonunu kullanmak için "url" helper'ını çağırmamız gerekiyor. Aksi takdirde hata ile karşılaşırız.
Değiştireceğimiz dosya: application\config\autoload.php
$autoload['helper'] = array(); değerini $autoload['helper'] = array('url'); olarak değiştirin.
$autoload['helper'] = array();
$autoload['helper'] = array('url');
site_url() Kullanımı
Esasen sitenizin bağlantı adresini döndürür. Eğer site adresinizden index.php yazısını kaldırmadıysanız veya değiştirmediyseniz index.php ile birlikte döndürür. Eğer site adresinizie url_suffix eklediyseniz bu adresi de birlikte döndürür. Ayrıca oluşturduğunuz bir fonksiyona gerekli değerleri (string, int ya da array) gönderebilirsiniz. Bu şekilde sayfa içerisinden bir değeri, get veya post metodundan ayrı olarak bir link ile controller içerisindeki bir fonksiyona göndermeniz mümkündür.
Örnek
echo site_url(); /* Normal kullanımı Çıktı: http://siteadresiniz.com/index.php */
echo site_url("kategoriler"); /* url_suffix ile kullanımı Çıktı: http://siteadresiniz.com/index.php/kategoriler.html */
echo site_url("kategoriler/araba/145"); /* Fonksiyona değer gönderim kullanımı Çıktı: http://siteadresiniz.com/index.php/kategoriler/araba/145 */
base_url() Kullanımı
Temel bağlantı adresinizi döndürür. Bu adresi değiştirmeniz mümkündür (eğer değiştirirseniz site_url() fonksiyonunun temel adreside değişir). Adresi index.php ya da url_suffix ile döndürmez. Sayfa içerisinden herhangi bir veriyi (string, int ya da array) controller içerisinde oluşturduğunuz bir fonksiyona gönderebilirsiniz. Resim, javascript ya da css dosyasını sayfanıza dahil edebilirsiniz.
Temel bağlantı adresini değiştirmek için: application\config\config.php
$config['base_url'] = ''; değerini $config['base_url'] = 'istenilen_adres'; olarak değiştirin.
$config['base_url'] = '';
$config['base_url'] = 'istenilen_adres';
Örnek
echo base_url(); /* Normal kullanımı Çıktı: http://siteadresiniz.com/ */
echo base_url("kategoriler/araba/145"); /* Fonksiyona değer gönderim kullanımı Çıktı: http://siteadresiniz.com/kategoriler/araba/145 */
echo base_url("javascripts/dosya.js"); /* Javascript dosyasını dahil eder */
echo base_url("resimler/site.ico"); /* Resim dosyasını dahil eder */
site_url() ve base_url() Farkı
Aslında 2 fonksiyonu da incelediğinizde birbirinden çok da farklı olmadığını göreceksiniz. Yine de 2 tane farkı yazmak istiyorum.
1. Fark
site_url: base_url + index_page + uri_string + url_suffix (uri_string örneği: kategoriler/araba/145)
base_url: base_url + uri_string (uri_string örneği: kategoriler/araba/145)
site_url: http://siteadresiniz.com/index.php(varsa)/kategoriler/araba/145.url_suffix(varsa)
base_url: http://siteadresiniz.com/kategoriler/araba/145
2. Fark
site_url() ile sayfanıza herhangi bir resim, dosya, javascript ya da css dosyası dahil edemezsiniz ancak base_url() ile bunu yapabilirsiniz.
echo base_url("javascripts/dosya.js"); /* Javascript dosyasını dahil eder */
echo base_url("resimler/site.ico"); /* Resim dosyasını dahil eder */
YORUMLAR