microphp/README.md

281 lines
6.5 KiB
Markdown
Raw Normal View History

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"
```