Method Kütüphanesi


    × Bunları biliyor muydunuz?
"Libraries/ dizini içine taşınan veya bu dizinde oluşturulan kütüphaneler hiç bir tanımlama gerektirmeden kullanılabilir. "


Post, get, request veya files verileri kullanmak için oluşturulmuş sınıftır. Standart küreseller güvenlik süzgecinden geçmediği için bu verilerin güvenliğini  tesis etmek üzerine yani XSS ataklarını engellemek için oluşturulmuş kütüphanedir.

 

 

# Kurulum


ZN dağıtımları için kurulum gerekmez.

↓ composer require znframework/package-request

 

 

# Yöntemler


Post::__callStatic(mixed $value = NULL) : mixed
Get::__callStatic(mixed $value = NULL) : mixed
Request::__callStatic(mixed $value = NULL) : mixed
Env::__callStatic(mixed $value = NULL) : mixed
Server::__callStatic(string $key) : mixed
Method::files(string $fileName, string $type) : mixed
Method::delete(string $input, string $name) : bool

 

 

# Post


$_POST dizisi ile gelen verileri almak için kullanılır. Bu kullanım standart kullanımdan farklı olarak değerler üzerinde html karakterleri (<, >, ", ') dönüştürme işlemi uygular.

mixed $value İlgili anahtara eklenecek değer.
return mixed

Kullanımlar

Post yönteminden gelen veri dizisinin anahtarları yöntem adı olarak kullanılırsa o anahtara ait veri elde edilir.

Post::example('Example Value');

echo Post::example();
Example Value

Html Karakterlerini Dönüştürme

Bu kullanımda html karakterleri üzerinde dönüştürme işlemi yapılır. Dönüştürme uygulanan karakterler ve karşılıkları aşağıdaki tabloda gösterilmiştir.

" &quot;
' &#039;
< &lt;
> &gt;
Post::xss('<script>alert("1")</alert>');

echo Post::xss();
&lt;script&gt;alert(&quot;1&quot;)&lt;/script&gt;

Çok Boyutlu Diziler [6.22.0][2021-07-29]

Daha önce çok boyutlu dizi içeren anahtarlara filtre uygulaması yapılamazken artık yapılabilmektedir.

Post::example(['cities' => ['London', 'Istanbul', 'Paris', '<script>alert("Rome")</script>']]);

output( Post::example() );
cities => 
[
        0 => string 'London'
        1 => string 'Istanbul'
        2 => string 'Paris'
        3 => string '&lt;script&gt;alert(&quot;Rome&quot;)&lt;/script&gt;'
]

Bu kullanım Get:: ve Request:: sınıfları içinde geçerlidir.

All

Tüm postları almak için all() yöntemi kullanılır.

output( Post::all() );
Dikkat: Bu kullanımda gelen veriler doğrudan alındığı için üzerinde herhangi bir dönüştürme işlemi uygulanmaz.

Bu bağlamda validasyon filtresi kullanılmadan DB::insert('post:users') veya DB::update('post:users') gibi otomatik eşleşme kullanımlarında ilgili veriler üzerinde hiç bir html dönüştürme işlemi yapılmadan veritabanına işleneceğini bilmenizde fayda var. 

Böyle bir kullanımda < ve > karakterlerinin dönüştürülmesi için Validation::html() yönteminden yararlanabilirsiniz.

Not: Html dönüştürme işlemi aşağıdaki diğer yöntemler içinde geçerlidir.

 

 

# Get


$_GET Yöntemiyle gelen verileri almak için kullanılır.

mixed $value İlgili anahtara eklenecek değer.
return mixed

Kullanımlar

Get yönteminden gelen veri dizisinin anahtarları yöntem adı olarak kullanılırsa o anahtara ait veri elde edilir.

Get::example('Example Value');

echo Get::example();
Example Value
All

Tüm getleri almak için;

output( Get::all() );

 

 

# Request


$_POST ve $_GET yöntemleriyle gelen verileri almak için kullanılır.

mixed $value İlgili anahtara eklenecek değer.
return mixed

Kullanımlar

Post ve get yönteminden gelen veri dizisinin anahtarları yöntem adı olarak kullanılırsa o anahtara ait veri elde edilir.

Request::example('Example Value');

echo Request::example();
Example Value
IPv4

İstek yapılan IP adresi bilgisini verir.

return string
echo Request::ipv4();
127.0.0.1
Method

İstek yapılan method bilgisini verir.

string $casing = 'upper' Çıktının harf türü.
return string
echo Request::method();
POST

 

 

# Env


$_ENV yöntemleriyle gelen verileri almak için kullanılır.

mixed $value İlgili anahtara eklenecek değer.
return mixed

Kullanımlar

Gelen veri dizisinin anahtarları yöntem adı olarak kullanılırsa o anahtara ait veri elde edilir.

Env::example('Example');

echo Env::example();

 

 

# Server


Hem $_SERVER dizisinin hem de Server::all() yönteminin çıktıladığı özel dizide yer alan anahtarlara yöntem adıyla erişim sağlayabilirsiniz.

string $key ilgili anahtar.
return mixed

Kullanımlar

output(Server::host());
Data

Parametreye göre server bilgisini verir. Bu parametrenin boş bırakılması durumunda dizi türünden $_SERVER verileri döner. 

string $key = NULL ilgili anahtar.
return mixed

Kullanımlar

output( Server::data() );

[$key]

Server::all() veya Server::data() yöntemlerinin döndürdüğü dizi anahtarlarına yöntem adı ile erişebilirsiniz.

echo Server::data('software');
Apache/2.2.22 (Win64) PHP/5.3.13
All

Bu yöntem $_SERVER dizisinin özelleştirilmiş bir halini çıktılar.

output(Server::all());
OS

Mevcut işletim sistemi türünü verir.

return string Döndürebilir Değerler: WIN, MAC, LINUX, UNIX ve UNKNOWN

Kullanımlar

echo Server::os();
WIN

 

 

# Files


$_FILES yöntemleriyle gelen verileri almak için kullanılır.

string $name $_FILES dizisine ait anahtarlardan biri.
mixed $key  = 'name' İç dizi anahtarı.
return mixed

Kullanımlar

Method::files('example');

 

 

# Delete 


İlgili metotla oluşturulmuş veriyi silmek için kullanılır

string $method Verinin silineceği metot.
mixed $key O metoda ait anahtar.
return bool

Kullanımlar

Method::delete('post', 'example');

Yukarıdaki örnekte Post::example() verisi silinmiştir.