Skip to content

Latest commit

 

History

History
336 lines (258 loc) · 7.77 KB

index.md

File metadata and controls

336 lines (258 loc) · 7.77 KB

DOCUMENTATION

IMPORTANT NOTICE: The API provider can be used with a debug flag and/or a logger with the following code:

use Psr\Log\LoggerInterface;
use WBW\Library\Pexels\Provider\ApiProvider;

/** @var LoggerInterface $logger */
// $logger = ...

// Create the API provider.
$provider = new ApiProvider("YOUR_API_KEY", $logger);
$provider->setDebug(true);

Search photos

use WBW\Library\Pexels\Model\Photo;
use WBW\Library\Pexels\Model\Source;
use WBW\Library\Pexels\Provider\ApiProvider;
use WBW\Library\Pexels\Request\SearchPhotosRequest;
use WBW\Library\Pexels\Response\PhotosResponse;

// Create the API provider.
$provider = new ApiProvider("YOUR_API_KEY");

// Create a Search photos request.
$request = new SearchPhotosRequest();
$request->setQuery("YOUR QUERY");
$request->setOrientation("landscape"); // Optional
$request->setSize("large"); // Optional
$request->setLocale("en-US"); // Optional

/** @var PhotosResponse $response */
$response = $provider->sendRequest($request);

// Handle the response.
$response->getLimit();
$response->getRemaining();
$response->getReset();

$response->getPerPage();
$response->getPage();
$response->getTotalResults();

$response->getPrevPage();
$response->getNextPage();

$response->getUrl();

/** @var Photo $current */
foreach($response->getPhotos() as $current) {

    $current->getId();
    $current->getWidth();
    $current->getHeight();
    $current->getUrl();
    
    $current->getPhotographer();
    $current->getPhotographerUrl();
    $current->getPhotographerId();
    
    /** @var Source src */
    $src = $current->getSrc();
    $src->getOriginal();
    $src->getLarge2x();
    $src->getLarge();
    $src->getMedium();
    $src->getSmall();
    $src->getPortrait();
    $src->getLandscape();
    $src->getTiny();
}

Curated photos

use WBW\Library\Pexels\Model\Photo;
use WBW\Library\Pexels\Model\Source;
use WBW\Library\Pexels\Provider\ApiProvider;
use WBW\Library\Pexels\Request\CuratedPhotosRequest;
use WBW\Library\Pexels\Response\PhotosResponse;

// Create the API provider.
$provider = new ApiProvider("YOUR_API_KEY");

// Create a Curated photo request.
$request = new CuratedPhotosRequest();

/** @var PhotosResponse $response */
$response = $provider->sendRequest($request);

// Handle the response (same as search photos).
// ...

Get a photo

use WBW\Library\Pexels\Model\Photo;
use WBW\Library\Pexels\Model\Source;
use WBW\Library\Pexels\Provider\ApiProvider;
use WBW\Library\Pexels\Request\GetPhotoRequest;
use WBW\Library\Pexels\Response\PhotoResponse;

// Create the API provider.
$provider = new ApiProvider("YOUR_API_KEY");

// Create a Get photo request.
$request = new GetPhotoRequest();
$request->setId(1234);

/** @var PhotoResponse $response */
$response = $provider->sendRequest($request);

// Handle the response.
$response->getLimit();
$response->getRemaining();
$response->getReset();

/** @var Photo $photo */
$photo = $response->getPhoto();

Search videos

use WBW\Library\Pexels\Model\User;
use WBW\Library\Pexels\Model\Video;
use WBW\Library\Pexels\Model\VideoFile;
use WBW\Library\Pexels\Model\VideoPicture;
use WBW\Library\Pexels\Provider\ApiProvider;
use WBW\Library\Pexels\Request\SearchVideosRequest;
use WBW\Library\Pexels\Response\VideosResponse;

// Create the API provider.
$provider = new ApiProvider("YOUR_API_KEY");

// Create a Search videos request.
$request = new SearchVideosRequest();
$request->setQuery("YOUR QUERY");
$request->setOrientation("landscape"); // Optional
$request->setSize("large"); // Optional
$request->setLocale("en-US"); // Optional

/** @var VideosResponse $response */
$response = $provider->sendRequest($request);

// Handle the response.
$response->getLimit();
$response->getRemaining();
$response->getReset();

$response->getPerPage();
$response->getPage();
$response->getTotalResults();

$response->getPrevPage();
$response->getNextPage();

$response->getUrl();

/** @var Video $current */
foreach($response->getVideos() as $current) {
    
    $current->getId();
    $current->getWidth();
    $current->getHeight();
    $current->getUrl();
    
    $current->getImage();
    $current->getFullRes();
    $current->getDuration();
    
    /** @var User $user */
    $user = $current->getUser();
    $user->getId();
    $user->getName();
    $user->getUrl();

    /** @var VideoFile[] $videoFiles */
    $videoFiles = $current->getVideoFiles();
    foreach($videoFiles as $vf) {
    
        $vf->getId();
        $vf->getQuality();
        $vf->getFileType();
        $vf->getWidth();
        $vf->getHeight();
        $vf->getLink();
    }

    /** @var VideoPicture[] $videoPictures */
    $videoPictures = $current->getVideosPictures();
    foreach($videoPictures as $vp) {
    
        $vp->getId();
        $vp->getPicture();
        $vp->getNr();
    }
}

Popular videos

use WBW\Library\Pexels\Model\User;
use WBW\Library\Pexels\Model\Video;
use WBW\Library\Pexels\Model\VideoFile;
use WBW\Library\Pexels\Model\VideoPicture;
use WBW\Library\Pexels\Provider\ApiProvider;
use WBW\Library\Pexels\Request\PopularVideosRequest;
use WBW\Library\Pexels\Response\VideosResponse;

// Create the API provider.
$provider = new ApiProvider("YOUR_API_KEY");

// Create a Popular videos request.
$request = new PopularVideosRequest();

/** @var VideosResponse $response */
$response = $provider->sendRequest($request);

// Handle the response (same as search videos).
// ...

Get a video

use WBW\Library\Pexels\Model\User;
use WBW\Library\Pexels\Model\Video;
use WBW\Library\Pexels\Model\VideoFile;
use WBW\Library\Pexels\Model\VideoPicture;
use WBW\Library\Pexels\Provider\ApiProvider;
use WBW\Library\Pexels\Request\GetVideoRequest;
use WBW\Library\Pexels\Response\VideoResponse;

// Create the API provider.
$provider = new ApiProvider("YOUR_API_KEY");

// Create a Get video request.
$request = new GetVideoRequest();
$request->setId(1234);

/** @var VideoResponse $response */
$response = $provider->sendRequest($request);

// Handle the response.
$response->getLimit();
$response->getRemaining();
$response->getReset();

/** @var Video $video */
$video = $response->getVideo();

Collections

use WBW\Library\Pexels\Model\Collection;
use WBW\Library\Pexels\Provider\ApiProvider;
use WBW\Library\Pexels\Request\CollectionsRequest;
use WBW\Library\Pexels\Response\CollectionsResponse;

// Create the API provider.
$provider = new ApiProvider("YOUR_API_KEY");

// Create a Collections request.
$request = new CollectionsRequest();

/** @var CollectionsResponse $response */
$response = $provider->sendRequest($request);

// Handle the response.
$response->getLimit();
$response->getRemaining();
$response->getReset();

/** @var Collection $current */
foreach($response->getCollections() as $current) {

    $current->getId();
    $current->getTitle();
    $current->getDescription();
    $current->getPrivate();
    $current->getMediaCount();
    $current->getPhotosCount();
    $current->getVideosCount();
}

Collection

use WBW\Library\Pexels\Model\AbstractMedia;
use WBW\Library\Pexels\Model\Photo;
use WBW\Library\Pexels\Model\Video;
use WBW\Library\Pexels\Provider\ApiProvider;
use WBW\Library\Pexels\Request\CollectionRequest;
use WBW\Library\Pexels\Response\CollectionResponse;

// Create the API provider.
$provider = new ApiProvider("YOUR_API_KEY");

// Create a Collection request.
$request = new CollectionRequest();
$request->setId("id");

/** @var CollectionResponse $response */
$response = $provider->sendRequest($request);

// Handle the response.
$response->getLimit();
$response->getRemaining();
$response->getReset();

/** @var AbstractMedia $current */
foreach($response->getMedias() as $current) {

    if (true === ($current instanceof Photo)) {
        // same as search photos
    }

    if (true === ($current instanceof Video)) {
        // same as search videos
    }
}