2023-04-30 16:07:14 +03:00
|
|
|
|
# microargist framework
|
2023-04-02 09:59:13 +03:00
|
|
|
|
|
2023-04-30 16:07:14 +03:00
|
|
|
|
## 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"
|
|
|
|
|
|
|
|
|
|
```
|