Öneri ve Hata Raporu



Günün Sözü Asla yalnız yürümeyeceksin

oylama 3/5 yorum 3 yorum yazar Hakan Taşan tarih 19 Haziran 2015

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 */

 

paylaş Paylaş
oylama yap Oyla

makale yorumları YORUMLAR

3 Yorum


yorum

cemslord

09 Kasım 2015 22:03


eline sağlık sayende anladım!

yorum

Meriç Devran

07 Temmuz 2016 18:23


Merhaba,
base_ur config dosyamda www şekliyle yazıyor. www.domain.com ancak ben siteye domain.com şeklinde ulaşırsam sitem sapıtıyor düzgün açılmıyor. bu sorunun önüne nasıl geçerim ? teşekkürler.

yorum

Admin

08 Temmuz 2016 04:33


Merhaba, .htaccess dosyanızı aşağıdaki şekilde, base_url'i http://siteadresiniz.com olarak ve config'den $config['uri_protocol'] = 'REQUEST_URI'; olarak düzenleyip dener misiniz.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]