# 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("

Page title

"); /** * Response code belirleme **/ Response::Code(404); Response::html("

Page not found

"); /** * 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" ```