1. Go to this page and download the library: Download js361014/plankton library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
js361014 / plankton example snippets
use Plankton\Client\Client;
$client = new Client(API_ENDPOINT);
use Plankton\Client\Client;
use Plankton\Request;
$request = new Request(API_ENDPOINT . "/users");
$request
->setMethod(Request::METHOD_POST)
->setParameter("foo", "bar")
->setHeader("User-Agent", "Mozilla/5.0")
->setContentType(Request::CONTENT_TYPE_JSON)
->setData(["email" => "[email protected]"]);
$client = new Client(API_ENDPOINT);
$client->send($request, function(Response $response){
// ...
});
$client = new Client(API_ENDPOINT);
use Plankton\Client\Strategy\BasicAuthentication;
$client = new Client(API_ENDPOINT, new BasicAuthentication(USER, PASSWORD));
use Plankton\Client\Strategy\ClientCredentialsAuthentication;
$client = new Client(API_ENDPOINT, new ClientCredentialsAuthentication(
CLIENT_ID,
CLIENT_SECRET,
AUTHENTICATION_URL
));
use Plankton\Server\Server;
$server = new Server();
$server->run();
use Plankton\Server\Controller;
class APIController extends Controller{
public function getUsers(int $id, Request $request): Response{
}
public function postUsers(Request $request): Response{
}
}
use Plankton\Server\{Server, Config};
$server = new Server(new Config(CONFIG_PATH));
use Plankton\Server\Controller;
class APIController extends Controller{
/**
* @Route(/users/{id})
* @Method(GET)
*/
public function getUser(int $id, Request $request): Response{
}
/**
* @Route(/users)
* @Method(POST)
*/
public function createUser(Request $request): Response{
}
}
/**
* @Route(/users)
*/
class APIController extends Controller{
/**
* @Route(/{id})
* @Method(GET)
*/
public function getUser(int $id, Request $request): Response{
}
/**
* @Route(/)
* @Method(POST)
*/
public function createUser(Request $request): Response{
}
}
class APIController extends Controller{
/**
* This will catch any \CustomNameSpace\CustomException
* @Exception(CustomNameSpace\CustomException)
*/
public function catchCustomException(Exception $e, Request $request): Response{
}
/**
* This will catch all other exceptions
* @Exception(*)
*/
public function catchException(Exception $e, Request $request): Response{
}
}
use Plankton\Server\Server;
$server = new Server();
$server
->registerController(new APIController());
->registerController(...);
->run();
use Plankton\Server\{Request, Response};
use Plankton\Server\{Middleware, RequestDispatcher};
class BasicAuthenticationMiddleware implements Middleware{
public function process(Request $request, RequestDispatcher $dispatcher): Response{
// ...
return $dispatcher->process($request);
}
}
use Plankton\Server\Server;
$server = new Server();
$server
->addMiddleware(new BasicAuthenticationMiddleware())
->addMiddleware(...)
->registerController(new APIController())
->run();
use Plankton\Client\Client;
use Plankton\Client\Strategy\ClientCredentialsAuthentication;
use Plankton\Response;
$client = new Client(API_ENDPOINT, new ClientCredentialsAuthentication(
CLIENT_ID,
CLIENT_SECRET,
AUTHENTICATION_URL
));
use Plankton\Server\Server;
use OAuth2\Middleware\ClientCredentialsMiddleware;
use OAuth2\Provider\MemoryProvider;
use Test\Controller\APIController;
// Access Token provider
$provider = new MemoryProvider();
$provider->addClient(CLIENT_ID, CLIENT_SECRET);
$server = new Server();
$server
->addMiddleware(new ClientCredentialsMiddleware($provider))
->registerController(new APIController())
->run();
use Plankton\OAuth2\Provider\AccessTokenProvider;
use Plankton\OAuth2\Token\{AccessToken, BearerToken};
class PDOProvider implements AccessTokenProvider{
/**
* return a new/issued Access Token if you find a client matching the authentication parameters (id + secret)
*/
public function getAccessToken(string $client_id, string $client_secret): ?AccessToken{
}
/**
* return a new Access Token if the Refresh Token is valid
*/
public function refreshToken(string $refreshToken): ?AccessToken{
}
/**
* authorize or not the given Access Token
*/
public function isValidAccessToken(string $token): bool{
}
}
use Plankton\Logging\SimpleLogger;
$client->setLogger(new SimpleLogger());
// ... do some requests
foreach ($client->getLogger()->getLogs() as $request) {
$response = $client->getLogger()->getLogs()[$request];
}
use Plankton\Logging\XMLLogger;
$client->setLogger(new XMLLogger());
// ... do some requests
header("Content-type: text/xml");
echo $client->getLogger()->getLogs()->asXML();
use Plankton\{Request,Response};
use Plankton\Request\Logger
class CustomLogger implements Logger{
public function log(Request $request, Response $response = NULL): void{
}
}
use Plankton\{Request,Response};
use Plankton\Server\{Middleware, RequestDispatcher};
class LogMiddleware implements Middleware{
public function process(Request $request, RequestDispatcher $dispatcher): Response{
$response = $dispatcher->process($request);
// log $request and $response here
return $response
}
}
use Plankton\Server\Server;
use Test\Controller\APIController;
use Test\Middleware\LogMiddleware;
$server = new Server();
$server
->addMiddleware(new LogMiddleware())
->registerController(new APIController())
->run();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.