URI Kütüphanesi
"Theme::active() yöntemi ile görünümlerin içerisinde yer alan img, script, link gibi etiketlerin dosya yol bilgilerine dokunmadan otomatik olarak algılanmasını sağlayabilirsiniz."
Uri'nin bölümlerini (segment) kullanmak için geliştirilmiş bir sınıftır. Bölümler URL'deki kütüphanesi ifade eden ilk uri parametresi ile başlar yani zeroneed.php veya tr gibi dil ibareleri URI'ye eklense bile dikkate alınmazlar.
URL | URI | |||||||||
1 | 2 | 3 | 4 | -1 | ||||||
|
|
|
|
|
[controller/] |
[function/] |
[param1/] |
[param2/] |
... |
# Kurulum
ZN dağıtımları için kurulum gerekmez.
↓ composer require znframework/package-request
# Yöntemler
1.0.0 | String | get(Mixed $get = 1, Mixed $index = 1, Bool $while = false) |
3.0.0 | Int | getNameCount(String $get) |
3.0.0 | String | getNameAll(String $get) |
3.0.0 | String | getByIndex(Int $get = 1, Int $index = 1) |
3.0.0 | String | getByName(String $get, Scalar $index = NULL) |
1.0.0 | Array | segmentArray(Void) |
1.0.0 | Int | totalSegments(Void) |
1.0.0 | Int | segmentCount(Void) |
1.0.0 | String | segment(Int $seg = 1) |
2.0.0 | String | currentSegment(Void) |
3.1.3 | String | current(Bool $isPath = true) |
3.1.3 | String | base(String $uri = '', Int $index = 0) |
3.1.3 | String | prev(Bool $isPath = true) |
5.3.9 | String | manipulation(Array $data, String $fix = 'none') |
5.3.9 | String | buildQuery(Array $data, String $separator = '/', String $fix = 'none') |
5.4.5 | String | __call(String $segment, Array $parameters) |
# Get (ZN >= 1.0.0)
URI üzerinde herhangi bir segmenti elde etmek için kullanılan bir yöntemdir özellikle başka sayfalar URI üzerinden veri gönderiminde oldukça başarılıdır.
Uri bölüm adı kullanılarak kendinden sonraki bölüm değerine ulaşmak. Yani ilk bölüm anahtar kelimeyi ifade edeken kendinden sonraki bölüm değeri ifade etmektedir. Bu sayade uri üzerinden anahtar değer çiftleri gönderip kullanabilirsiniz.
Mixed | $get = 1 | Segment adı veya segment indis numarası. |
Mixed | $index = 1 | Kaçıncı segmentin alınacağı. |
Bool | $while = false | Aralık 1. ve 2. parametre arası da çıktıya dahil edilsin mi? |
Return | String |
echo URI::get('content');
echo URI::get('products');
detail
Bölüm adından sonra başlangıç indeks numarasına göre istenilen bölüm değerine ulaşmak.
echo URI::get('products', 2);
echo URI::get('products', 3);
scope
Bölüm adından sonraki kalan bölüm sayısını öğrenmek.
echo Uri::get('products', 'count');
Belirlenen bölümden itibaren diğer tüm bölümlere ulaşmak.
echo Uri::get('products', 'all');
Belirlenen bölümler dahil arasındaki diğer bölümlere ulaşmak. Bunu kullanabilmek için 3. parametrenin true olarak ayarlanması gereklidir.
echo Uri::get('products', 'content', true);
Başlangıç indeks numarasına göre uri bölümlerine ulaşmak. Bunu kullanabilmek için 3. parametrenin true olarak ayarlanması gereklidir.
echo Uri::get('products', 3, true);
Bölüm numarasına göre istenilen bölümleri almak.
echo Uri::get(1, 2);
echo Uri::get(2, -1);
echo Uri::get(2, 'all');
echo Uri::get(2, -2);
detail/page/scope/content/12
detail/page/scope/content/12
detail/page/scope/content
# GetNameCount (ZN >= 3.0.0)
Belirtilen segmentten sonra kaç segment olduğunu öğrenmek için kullanılır.
String | $get | Segment adı. |
Return | String |
echo URI::getNameCount('categories');
# GetNameAll (ZN >= 3.0.0)
Belirtilen segmentten sonra kalan bölümleri almak için kullanılır.
String | $get | Segment adı. |
Return | String |
echo URI::getNameAll('categories');
# GetByIndex (ZN >= 3.0.0)
Belirtilen segment indislerine göre aralık almak için kullanılır.
Int | $get = 1 | Başlangıç segmenti. |
Int | $index = 1 | Bitiş segmenti. |
Return | String |
echo URI::getByIndex(1, 3)
echo URI::getByIndex(1, -1)
categories/category/page
# GetByName (ZN >= 3.0.0)
Belirtilen segment isimlerine göre aralık almak için kullanılır.
String | $get | Başlangıç segmenti. |
String | $index = 1 | Bitiş segmenti. |
Return | String |
echo URI::getByName('categories', 'page');
# Segment (ZN >= 1.0.0)
URI üzerinde herhangi bir bölüme erişmek için kullanılır tek parametresi vardır. Bölüm İndeks
Int | $index = 1 | Segment indisi. |
Return | String |
echo Uri::segment(1); # Output: urunler
echo Uri::segment(2); # Output: detay
echo Uri::segment(-1); # Output: 12
# SegmentArray (ZN >= 1.0.0)
URI üzerindeki segmentleri dizi olarak döndürür.
Void | ||
Return | Array |
output(Uri::segmentArray());
'urunler',
'detay',
'sayfa',
'kapsam',
'icerik',
'12'
]
# TotalSegments (ZN >= 1.0.0)
URI üzerindeki segmentlerin toplam sayısını verir.
Void | ||
Return | Int |
output(Uri::totalSegments());
# CurrentSegment (ZN >= 2.0.0)
O an ki çalıştırılan sayfanın URI'deki bölüm adını verir.
Void | ||
Return | String |
echo Uri::currentSegment();
# Current (ZN >= 3.1.3)
Bu yöntem currentPath() fonksiyonu ile aynı işlevi gerçekleştirmektedir. Aktif sayfanın URI bilgisini öğrenmek için kullanılır.
Bool | $isPath = true | Tam yol mu göstersin? |
Return | String |
echo URI::current();
Parametrenin false olma durumunda çıktı aşağıda ki gibi olur.
echo URI::current(false);
# Prev (ZN >= 3.1.3)
Bu yöntem prevPath() fonksiyonu ile aynı işlevi gerçekleştirmektedir. Aktif sayfanın URI bilgisini öğrenmek için kullanılır.
Bool | $isPath = true | Tam yol mu göstersin? |
Return | String |
echo URI::prev(); # Output: home/test
Parametrenin false olma durumunda çıktı aşağıda ki gibi olur.
echo URI::prev(false); # Output: test
# Base (ZN >= 3.1.3)
Bu yöntem, baseUri() fonskiyonunun kullanımı ile aynıdır. Sitenin kök URI bilgisini verir.
String | $uri = '' | URI. |
Return | String |
echo URI::base(); # Output: develop/
echo URI::base('home/test'); # Output: develop/home/test
# Manipulation (ZN >= 5.3.9)
Bu yöntem URI'den gelen bölümleri manipüle etmek için kullanılır. Bunu yaparken URI'dizimini bozmadan manipüle etmek mümkündür.
Array | $data | URI söz dizimi. |
String | $fix = 'none' | Çıktının başında veya sonunda '/' sembolü olsun mu? |
Seçenekler | left, right, both | |
Return | String |
Yukarıdaki örnek url'de yer alan order ve column değerlerini değiştirelim.
echo URI::manipulation(['user', 'order' => 'desc', 'column' => 'name', 'page']);
Bölümlerin değeri dizide belirtilmezse ilgili bölümden sonraki ilk bölüm o bölümün değeri kabul edilir.
echo URI::manipulation(['user', 'limit' => 5, 'page']);
Çıktının başına, sonuna veya her iki tarafına / sembolü ekletebilirsiniz.
echo URI::manipulation(['user', 'limit' => 5, 'page'], 'both');
# BuildQuery (ZN >= 5.3.9)
URI oluşturmak için kullanılır.
Array | $data | URI söz dizimi. |
String | $separator = '/' | Ayırıcı. |
String | $fix = 'none' | Çıktının başında veya sonunda '/' sembolü olsun mu? |
Seçenekler | left, right, both | |
Return | String |
echo URI::buildQuery(['user' => 'list', 'order' => 'asc', 'limit', 'page']);
Dizi değerlerini / ile birleştirmek yerine başka bir sembol ile birleştirme yapabilirsiniz.
echo URI::buildQuery(['user' => 'list', 'order' => 'asc', 'limit', 'page'], '-');
Çıktının başına, sonuna veya her iki tarafına / sembolü ekletebilirsiniz.
echo URI::buildQuery(['user' => 'list', 'order' => 'asc', 'limit', 'page'], '-', 'both');
# __Call (ZN >= 5.4.5)
URI::get() yöntemini kullanılır. Sadece get()
yönteminin 1. parametresi yöntem adı olarak kullanılır. Diğer parametrelerin kullanımı aynıdır.
echo URI::product();
echo URI::price();
echo URI::product(2);
URI::segment() yöntemini kullanılır. 1. parametre yöntem adı olarak kullanılır. Diğer parametrelerin kullanımı aynıdır. 2 farklı kullanımı vardır.
Baştan Yakalama
Baştan başlayarak bölüm yakalamak için sx kullanılır.
echo URI::s1();
Sondan Yakalama
Sondan başlayarak bölüm yakalamak için ex kullanılır.
echo URI::e1();