Flight īsteno HTTP pieprasījumu kā vienu objektu, ko var piekļūt, izpildot:
$request = Flight::request();
Strādājot ar pieprasījumu tīmekļa lietotnē, parasti vēlēsities izņemt galveni, vai $_GET vai $_POST parametru, vai pat neapstrādāto pieprasījuma ķermeni. Flight nodrošina vienkāršu saskarni, lai veiktu visas šīs darbības.
$_GET
$_POST
Šeit ir piemērs, kā iegūt vaicājuma virknes parametru:
Flight::route('/search', function(){ $keyword = Flight::request()->query['keyword']; echo "Jūs meklējat: $keyword"; // vaicā datubāzei vai kaut kam citam ar $keyword });
Šeit ir piemērs varbūt veidlapai ar POST metodi:
Flight::route('POST /submit', function(){ $name = Flight::request()->data['name']; $email = Flight::request()->data['email']; echo "Jūs iesniedzāt: $name, $email"; // saglabājiet datubāzē vai kaut kam citam ar $name un $email });
Pieprasījuma objekts nodrošina šādus atribūtus:
$_SERVER
HTTP_CLIENT_IP
HTTP_X_FORWARDED_FOR
HTTP_X_FORWARDED
HTTP_X_CLUSTER_CLIENT_IP
HTTP_FORWARDED_FOR
HTTP_FORWARDED
Jūs varat piekļūt query, data, cookies un files atribūtiem kā masīviem vai objektiem.
query
data
cookies
files
Tātad, lai iegūtu vaicājuma virknes parametru, varat darīt:
$id = Flight::request()->query['id'];
Vai arī varat darīt:
$id = Flight::request()->query->id;
Lai iegūtu neapstrādāto HTTP pieprasījuma ķermeni, piemēram, strādājot ar PUT pieprasījumiem, varat darīt:
$body = Flight::request()->getBody();
Ja jūs sūtāt pieprasījumu ar tipu application/json un datiem {"id": 123} tas būs pieejams no data atribūta:
application/json
{"id": 123}
$id = Flight::request()->data->id;
Jūs varat piekļūt $_GET masīvam, izmantojot query atribūtu:
Jūs varat piekļūt $_POST masīvam, izmantojot data atribūtu:
$id = Flight::request()->data['id'];
Jūs varat piekļūt $_COOKIE masīvam, izmantojot cookies atribūtu:
$_COOKIE
$myCookieValue = Flight::request()->cookies['myCookieName'];
Ir pieejams īsceļš, lai piekļūtu $_SERVER masīvam, izmantojot getVar() metodi:
getVar()
$host = Flight::request()->getVar['HTTP_HOST'];
Jūs varat piekļūt augšupielādētajiem failiem, izmantojot files atribūtu:
$uploadedFile = Flight::request()->files['myFile'];
Jūs varat apstrādāt failu augšupielādes, izmantojot ietvaru ar dažām palīgdarbībām. Tas būtībā samazinās līdz faila datu vilkšanai no pieprasījuma un pārvietošanai uz jaunu vietu.
Flight::route('POST /upload', function(){ // Ja jums bija ievades lauks, piemēram, <input type="file" name="myFile"> $uploadedFileData = Flight::request()->getUploadedFiles(); $uploadedFile = $uploadedFileData['myFile']; $uploadedFile->moveTo('/path/to/uploads/' . $uploadedFile->getClientFilename()); });
Ja jums ir vairāki augšupielādēti faili, varat tos aplūkot:
Flight::route('POST /upload', function(){ // Ja jums bija ievades lauks, piemēram, <input type="file" name="myFiles[]"> $uploadedFiles = Flight::request()->getUploadedFiles()['myFiles']; foreach ($uploadedFiles as $uploadedFile) { $uploadedFile->moveTo('/path/to/uploads/' . $uploadedFile->getClientFilename()); } });
Drošības Piezīme: Vienmēr validējiet un sanitizējiet lietotāju ievadi, īpaši, strādājot ar failu augšupielādēm. Vienmēr validējiet pieļaujamo paplašinājumu tipus, ko ļausiet augšupielādēt, bet jums arī jāvalidē faila "burvju baiti", lai pārliecinātos, ka tas patiešām ir tāda tipu fails, kādu lietotājs apgalvo. Ir pieejami raksti un bibliotēkas, kuras var jums palīdzēt ar to.
Jūs varat piekļūt pieprasījuma galvenēm, izmantojot getHeader() vai getHeaders() metodi:
getHeader()
getHeaders()
// Varbūt jums ir nepieciešama autorizācijas galvene $host = Flight::request()->getHeader('Authorization'); // vai $host = Flight::request()->header('Authorization'); // Ja jums nepieciešams iegūt visas galvenes $headers = Flight::request()->getHeaders(); // vai $headers = Flight::request()->headers();
Jūs varat piekļūt neapstrādātajam pieprasījuma ķermenim, izmantojot getBody() metodi:
getBody()
Jūs varat piekļūt pieprasījuma metodei, izmantojot method atribūtu vai getMethod() metodi:
method
getMethod()
$method = Flight::request()->method; // faktiski zvana getMethod() $method = Flight::request()->getMethod();
Piezīme: getMethod() metode vispirms ņem metodi no $_SERVER['REQUEST_METHOD'], pēc tam to var pārrakstīt ar $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'], ja tas pastāv, vai $_REQUEST['_method'], ja tas pastāv.
$_SERVER['REQUEST_METHOD']
$_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']
$_REQUEST['_method']
Ir pieejamas dažas palīgmetodes, lai ērti saliktu URL daļas.
Jūs varat piekļūt pilnam pieprasījuma URL, izmantojot getFullUrl() metodi:
getFullUrl()
$url = Flight::request()->getFullUrl(); // https://example.com/some/path?foo=bar
Jūs varat piekļūt pamata URL, izmantojot getBaseUrl() metodi:
getBaseUrl()
$url = Flight::request()->getBaseUrl(); // Pievērsiet uzmanību, nav beigu slīpsvītras. // https://example.com
Jūs varat nodot URL uz parseQuery() metodi, lai analizētu vaicājuma virkni asociatīvā masīvā:
parseQuery()
$query = Flight::request()->parseQuery('https://example.com/some/path?foo=bar'); // ['foo' => 'bar']