URI Kütüphanesi


    × Bunları biliyor muydunuz?
"Basit bir konsol komutu ile projenin orijinal haline dokunmadan restorasyon çalışması yapabilirsiniz."


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 4 -1

http[s]://

yourdomain.com/

zeroneed.php/

[project-name/]

[lang/]

[controller/]

[function/]

[param1/]

[param2/]

...

 

 

# Kurulum


ZN SE ve ZN CE dağıtımları için terminal kurulum komutu.

↓ 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.

Parametreler
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
Kullanımı
URL: localhost/products/detail/page/scope/content/12
echo URI::get('content'); 
echo URI::get('products');
12
detail
İsme ve Numaraya Göre Bölümler

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); 
page
scope
İsme Göre Bölüm Sayısı

Bölüm adından sonraki kalan bölüm sayısını öğrenmek.

echo Uri::get('products', 'count');
5
İsme Göre Tüm Bölümler

Belirlenen bölümden itibaren diğer tüm bölümlere ulaşmak.

echo Uri::get('products', 'all');
detail/page/scope/content/12
İsim Aralıklarına Göre Bölümler

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);
products/detail/page/scope/content
İsim ve Numara Aralığına Göre Bölümler

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);
detail/page/scope
Bölüm Numarasına Göre Bölümler

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);     
products/detail
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.

Parametreler
String $get Segment adı.
Return String
Kullanımı
URL: localhost/categories/category/content
echo URI::getNameCount('categories');
2

 

 

# GetNameAll (ZN >= 3.0.0)


Belirtilen segmentten sonra kalan bölümleri almak için kullanılır.

Parametreler
String $get Segment adı.
Return String
Kullanımı
URL: localhost/categories/category/content
echo URI::getNameAll('categories');
category/content

 

 

# GetByIndex (ZN >= 3.0.0)


Belirtilen segment indislerine göre aralık almak için kullanılır.

Parametreler
Int $get = 1 Başlangıç segmenti.
Int $index = 1 Bitiş segmenti.
Return String
Kullanımı
URL: localhost/categories/category/page
echo URI::getByIndex(1, 3)
echo URI::getByIndex(1, -1)
categories/category/page
categories/category/page

 

 

# GetByName (ZN >= 3.0.0)


Belirtilen segment isimlerine göre aralık almak için kullanılır.

Parametreler
String $get Başlangıç segmenti.
String $index = 1 Bitiş segmenti.
Return String
Kullanımı
URL: localhost/categories/category/page
echo URI::getByName('categories', 'page');
categories/category/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

Parametreler
Int $index = 1 Segment indisi.
Return String
Kullanımı
URL: localhost/urunler/detay/sayfa/kapsam/icerik/1
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.

Parametreler
Void
Return Array
Kullanımı
URL: localhost/urunler/detay/sayfa/kapsam/icerik/12
output(Uri::segmentArray()); 
[
    'urunler',
    'detay',
    'sayfa',
    'kapsam',
    'icerik',
    '12'
]   

 

 

# TotalSegments (ZN >= 1.0.0)


URI üzerindeki segmentlerin toplam sayısını verir.

Parametreler
Void
Return Int
Kullanımı
URL: localhost/products/detail/page/scope/content/12
output(Uri::totalSegments());
6

 

 

# CurrentSegment (ZN >= 2.0.0)


O an ki çalıştırılan sayfanın URI'deki bölüm adını verir.

Parametreler
Void
Return String
Kullanımı
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.

Parametreler
Bool $isPath = true Tam yol mu göstersin?
Return String
Kullanımı
URL: localhost/home/test
echo URI::current();
home/test

Parametrenin false olma durumunda çıktı aşağıda ki gibi olur.

echo URI::current(false);
test

 

 

# 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.

Parametreler
Bool $isPath = true Tam yol mu göstersin?
Return String
Kullanımı
URL: localhost/home/test
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.

Parametreler
String $uri = '' URI.
Return String
Kullanımı
URL: localhost/develop/
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.

Parametreler
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
Kullanımlar
URL: localhost/user/list/order/asc/column/id/page/10
Değer Değişimi

Yukarıdaki örnek url'de yer alan order ve column değerlerini değiştirelim.

echo URI::manipulation(['user', 'order' => 'desc', 'column' => 'name', 'page']);
user/list/order/desc/column/name/page/10
Varsayılan Değer

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']);
user/list/limit/5/page/10
Ön ve Son Ek Kullanımı

Çıktının başına, sonuna veya her iki tarafına / sembolü ekletebilirsiniz.

echo URI::manipulation(['user', 'limit' => 5, 'page'], 'both');
/user/list/limit/5/page/10/

 

 

# BuildQuery (ZN >= 5.3.9)


URI oluşturmak için kullanılır.

Parametreler
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
Kullanımlar
echo URI::buildQuery(['user' => 'list', 'order' => 'asc', 'limit', 'page']);
user/list/order/asc/limit/page
Ayraç Kullanımı

Dizi değerlerini / ile birleştirmek yerine başka bir sembol ile birleştirme yapabilirsiniz.

echo URI::buildQuery(['user' => 'list', 'order' => 'asc', 'limit', 'page'], '-');
user-list-order-asc-limit-page
Ön ve Son Ek Kullanımı

Çıktının başına, sonuna veya her iki tarafına / sembolü ekletebilirsiniz.

echo URI::buildQuery(['user' => 'list', 'order' => 'asc', 'limit', 'page'], '-', 'both');
/user-list-order-asc-limit-page/

 

 

# __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.

Kullanımı
URL: localhost/product/computer/price/100
echo URI::product();
computer
echo URI::price();
100
echo URI::product(2);
price
Segment Yönteminin Kullanımı

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();
product

Sondan Yakalama

Sondan başlayarak bölüm yakalamak için ex kullanılır.

echo URI::e1();
100