microphp/README.md

281 lines
6.5 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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