Method Kütüphanesi


    × Bunları biliyor muydunuz?
"Başlangıç kontrolcüsü üzerinden $this nesnesini data olarak göndererek statik olmayan sınıflara ilgili data üzerinden erişebilirsiniz."


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.