Haszprus

PSR-7 - HTTP message interfaces

©   Haszprus   |   fejlesztés php

Na ez már combosabb, nem volt türelmem/időm normálisan végigolvasni, kigyűjtöttem belőle pár core gondolatot/buzzwordöt.

  • StreamInterface
  • UriInterface
  • ServerRequestInterface, UploadedFileInterface <-- itt eléggé megbirizgálták a PHP default $_FILES tömbjét fájlfeltöltések esetére egy logikusabb struktúrával, aminek a használata kb ez:
Upload an avatar: <input type="file" name="my-form[details][avatars][]" />

Elérése PHP-ből:

$request->getUploadedFiles()['my-form']['details']['avatars'][1];

Ahol az 1 egy többfájlos feltöltés esetén az 1-es indexű (0-tól kezdődő) feltöltött fájlt jelenti.

Másik példa:

$file0 = $request->getUploadedFiles()['files'][0];
$file1 = $request->getUploadedFiles()['files'][1];

printf(
    "Received the files %s and %s",
    $file0->getClientFilename(),
    $file1->getClientFilename()
);

// "Received the files file0.txt and file1.html"

move_uploaded_file() helyett érdemes a moveTo($targetPath)-t használni.

MessageInterface: immutable, "módosító" függvények új példányt adnak vissza belőle. RequestInterface és ResponseInterface szülője.

UploadedFileInterface-re visszatérve

  • getStream()
  • moveTo($targetPath)
  • getSize()
  • getError()
  • getClientFileName()
  • getClientMediaType()

nekem egyértelműen úgy tűnik, hogy erre kivételesen érdemes egy libraryt berántani, nem magamnak leimplementálni. A blogon egyébként van egy Request classom ami sztem ügyes meg szép, de köze nincs ahhoz amit ez csinál. Lehet hogy ez egy réteg lehetne alatta, maybe. Nem tudom eldönteni. Response-t nem csináltam, de igény az volna rá.

Btw egy rakás PSR-7 implementáció van, ld. packagist.org

  • Guzzle
  • laminas-diactoros
  • slim/slim
  • slim/psr7

Guzzlehttp/psr7-nek 700 millió letöltése van a packagist-en. "Packagist is the main Composer repository". A laminas a zend-framework utódja. Abban írt anno Fater valamit egy ügyféljelöltünknek, akiből végül cégátszervezés miatt nem lett ügyfél.

RSS: hozzászólások ehhez a bejegyzéshez Rajtad a világ szeme

Szólj hozzá Te is!
Hozzászólásod:


Nem vagy bejelentkezve, de...

A)
hozzászólhatsz regisztrálatlanul...

B)
ha regisztrálva vagy, bejelentkezhetsz...