281 lines
6.5 KiB
Markdown
Executable File
281 lines
6.5 KiB
Markdown
Executable File
# microargist framework
|
||
|
||
## Rotaları belirlemek (Route)
|
||
|
||
|
||
```php
|
||
|
||
// '/' rotasına girildiğinde "hi" mesajı gösterir
|
||
Route::get("/", function($request){
|
||
Response::text("hi");
|
||
});
|
||
|
||
// '/' rotasına post gönderildiğinde "hi" mesajı gösterir
|
||
Route::post("/", function($request){
|
||
Response::text("hi");
|
||
});
|
||
|
||
// girilen sayfada "get" metoduna ait bir rota bulunmaz ise Page not found yazısı gösterir
|
||
Route::error("get",404, function(){
|
||
Response::text("Page not found");
|
||
});
|
||
|
||
// girilen sayfada "post" metoduna ait bir rota hata verirse Server eror yazısını gösteri
|
||
Route::error("post",500, function(){
|
||
Response::text("Server error !");
|
||
});
|
||
|
||
// Her hangi bir method ile any-request rotasına ulaşılırsa hi mesajı gösterir
|
||
Route::any("/any-request", function($request){
|
||
Response::text("hi");
|
||
});
|
||
|
||
|
||
/**
|
||
* /content/
|
||
* Rotasından sonra gelen tüm dosya istekleri için public klasöründe dosyayı gönderir
|
||
* /content/image.jpg dosyası istendiğnide (varsa) /public/image.jpg dosyasını verecektir
|
||
**/
|
||
Route::public("/content/",__DIR__."/public");
|
||
|
||
|
||
/**
|
||
* İsteği işler ve kaydedilen rotalardan birini seçer ve çalıştırır
|
||
*
|
||
* */
|
||
Route::Execute();
|
||
|
||
```
|
||
|
||
## İstekleri işlemek (Request)
|
||
|
||
```php
|
||
/**
|
||
* isteğin hangi method ile geldiğini söyler
|
||
* get, post, head gibi
|
||
**/
|
||
Request::method(); //--> get
|
||
|
||
|
||
/**
|
||
* URL içerisinde gelen verileri almak için get metodu kullanılır
|
||
**/
|
||
Request::get("redir"); //--> /login
|
||
|
||
/**
|
||
* post veri içerisindeki veriyi almak için post metodu kullanılır
|
||
**/
|
||
Request::post("username"); //--> john
|
||
|
||
/**
|
||
* get veya post veri içerisindeki veriyi almak için input metodu kullanılır
|
||
**/
|
||
Request::input("username"); //--> john
|
||
|
||
/**
|
||
* İsteklerin http başlık değerlerini almak için headers() metodu kullanılabilir
|
||
* Bu nginx, apache vs. sağlanılan tüm http başlıklarını verir
|
||
* */
|
||
Request::headers();
|
||
|
||
/**
|
||
* Request üzerinden oturum işlemleri yapılması gereken durumlarda session() methodu çağrılabilir bkz. Oturum işlemleri
|
||
* */
|
||
Request::session();
|
||
|
||
/**
|
||
* Request üzerinden çerez işlemleri yapılması gereken durumlarda cookie() methodu çağrılabilir bkz. Çerez işlemleri
|
||
* */
|
||
Request::cookie();
|
||
|
||
|
||
|
||
/**
|
||
* Ayrıca get veya post verilerine $request içerisinden direkt ulaşılabilir
|
||
* */
|
||
$request = new Request();
|
||
|
||
$request->no_data // null
|
||
$request->username // john
|
||
$request->password // Password
|
||
|
||
// Gönderilen verinin içerik tipini almak için contentType kullanılabilir
|
||
$request->contentType();
|
||
|
||
```
|
||
|
||
## İsteklere cevap vermek (Response)
|
||
|
||
```php
|
||
/**
|
||
* Dosya gönderme
|
||
**/
|
||
Response::File(__DIR__."/storage/input.xlsx");
|
||
|
||
/**
|
||
* Dosya gönderme (mimetype ile)
|
||
**/
|
||
Response::File(__DIR__."/storage/image.jpg","image/jpg");
|
||
|
||
/**
|
||
* Dosya indirmeye zorlama
|
||
**/
|
||
Response::Download(__DIR__."/storage/image.jpg");
|
||
|
||
/**
|
||
* Yazı iletme
|
||
**/
|
||
Response::Text("Hello !");
|
||
|
||
/**
|
||
* JSON veri iletme
|
||
**/
|
||
Response::Json([
|
||
"status" => "success",
|
||
"data" => []
|
||
]);
|
||
|
||
/**
|
||
* html formatında veri iletme
|
||
**/
|
||
Response::html("
|
||
<h2>Page title</h2>
|
||
");
|
||
|
||
/**
|
||
* Response code belirleme
|
||
**/
|
||
Response::Code(404);
|
||
Response::html("
|
||
<h2>Page not found</h2>
|
||
");
|
||
|
||
/**
|
||
* Blade işleyip html veri göndermek için
|
||
**/
|
||
Response::view("auth.register");
|
||
Response::view("auth.login",[
|
||
"status" => "Success !"
|
||
]);
|
||
|
||
/**
|
||
* Send işlevi verilen verinin türüne göre json veya text göndermenin kısayolunu sağlar
|
||
**/
|
||
Response::send("Merhaba !"); // text
|
||
Response::send(["data" => []]); // json
|
||
|
||
/**
|
||
* Kullanıcıyı farklı bir sayfaya yönlendirmek için Redirect kullanılabilir
|
||
**/
|
||
Response::Redirect("/");
|
||
Response::Redirect("/", 304);
|
||
|
||
|
||
```
|
||
|
||
## http başlıklarını işleme (RequestHeader)
|
||
|
||
```php
|
||
/**
|
||
* HTTP başlık verilerini alma
|
||
**/
|
||
Request::$header->get("accept"); // --> image/jpg,*/*
|
||
Request::$header->accept; // --> image/jpg,*/*
|
||
// veya aynı şekilde
|
||
$requestHeader = new RequestHeader();
|
||
$requestHeader->get("accept");
|
||
$requestHeader->accept;
|
||
|
||
|
||
/**
|
||
* Request HTTP başlık verilerini ayarlama
|
||
**/
|
||
Request::$header->set("content-type","text/plain; charset=utf8");
|
||
Request::$header->{"content-type"} = "text/plain; charset=utf8";
|
||
// veya aynı şekilde
|
||
$requestHeader = new RequestHeader();
|
||
$requestHeader->set("content-type","text/plain; charset=utf8");
|
||
$requestHeader->{"content-type"} = "text/plain; charset=utf8";
|
||
|
||
```
|
||
|
||
## Çerezleri işleme (RequestCookie)
|
||
|
||
```php
|
||
//Cookie ayarlama ve değiştirme
|
||
Request::$cookie->setAttribute("lang","tr");
|
||
Request::$cookie->lang = "tr";
|
||
|
||
//Cookie değerini ayarlama
|
||
$lang = Request::$cookie->getAttribute("lang");
|
||
$lang = Request::$cookie->lang;
|
||
|
||
//Cookie değerini ayarlama
|
||
Request::$cookie->removeAttribute("lang");
|
||
unset(Request::$cookie->lang);
|
||
|
||
//veya şe şekilde de kullanılabilir
|
||
|
||
$cookie = new RequestCookie();
|
||
$cookie->lang = "tr";
|
||
```
|
||
|
||
## Upload edilen dosyaları işleme (RequestFile)
|
||
|
||
```php
|
||
/**
|
||
* Upload edilen dosyayı kontrol etme
|
||
*/
|
||
Request::$file->hasFile("avatar"); // 1,2,3 or false
|
||
/**
|
||
* Kaç tane dosya olduğunu sorgulama
|
||
*/
|
||
Request::$file->count("avatar"); // 2
|
||
/**
|
||
* Dosyaları alma
|
||
*/
|
||
Request::$file->getFile("avatar"); // ["name","path","mime","error","size",...]
|
||
|
||
/**
|
||
* Dosyaları diske kaydetme
|
||
*/
|
||
Request::$file->save("avatar",__DIR__."/uploads/");
|
||
Request::$file->save("avatar",__DIR__."/uploads/", "hashfilename.jpg", 1); // avatar ismiyle gelen 2. dosyayı kaydet
|
||
Request::$file->getFile("avatar")[0]->save("avatar",__DIR__."/uploads/")
|
||
|
||
/**
|
||
* Tüm dosyaları diske kaydetme
|
||
*
|
||
* Aşağıdaki saveAll metodu avatar ismiyle gelen maximum 4 dosyayı uploads içerisine kaydeder
|
||
**/
|
||
Request::$file->saveAll("avatar",__DIR__."/uploads/", null, 4);
|
||
|
||
```
|
||
|
||
## Oturum kayıtları (Session)
|
||
|
||
```php
|
||
// Oturum için tutulacak dosuyaların diskteki yerini belirleme
|
||
// init işlevinden önce kullanılmalıdır
|
||
Session::path("./session");
|
||
// Oturum işlemleri için oturum başlatma
|
||
Session::init();
|
||
|
||
// Oturum verisini ayarlama
|
||
Session::set("loginned", true);
|
||
// Oturum verisini alma
|
||
Session::get("loginned"); // --> true
|
||
// Oturum verisini silme
|
||
Session::delete("loginned");
|
||
// Oturum verisini sorgulama
|
||
Session::has("loginned"); // false
|
||
// Oturum verisine sonuna ekleme yapmak (liste değişkenine)
|
||
Session::add("store_list",["desk","cap"]);
|
||
// Oturumda liste olarak tutulan veriden son veriyi almak
|
||
Session::pop("store_list"); // --> "cap"
|
||
// Oturum verisine başına ekleme yapmak (liste değişkenine)
|
||
Session::unshift("store_list","mouse");
|
||
// Oturum verisine başınden veri çıkarmak (liste değişkenine)
|
||
Session::shift("store_list"); // --> "desk"
|
||
|
||
``` |