PHP code example of rougin / weasley
1. Go to this page and download the library: Download rougin/weasley 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/ */
rougin / weasley example snippets php
use Rougin\Weasley\Route;
class Welcome extends Route
{
public function index()
{
$data = array('message' => 'Hello world!');
return $this->json($data);
}
}
php
/** @var \Psr\Http\Message\ServerRequestInterface */
$request = /** ... */;
/** @var \Psr\Http\Message\ResponseInterface */
$response = /** ... */;
$route = new Welcome($request, $response);
/** @var \Psr\Http\Message\ResponseInterface */
$result = $route->index();
php
use Rougin\Weasley\Routes\JsonRoute;
class UsersRoute extends JsonRoute
{
protected $model = 'Acme\Models\User';
protected $mutator = 'Rougin\Weasley\Mutators\RestMutator';
protected $validator = 'Acme\Checks\UserCheck';
}
php
use Rougin\Weasley\Handlers\AllowCrossOrigin;
// Default: allows all origins, allows GET/POST/PUT/DELETE/OPTIONS
$cors = new AllowCrossOrigin;
// Restrict to specific origins and methods via constructor
$cors = new AllowCrossOrigin(
array('https://example.com', 'https://api.example.com'),
array('GET', 'POST')
);
// Or configure fluently
$cors = (new AllowCrossOrigin)
->allowed(array('https://example.com'))
->methods(array('GET', 'POST', 'DELETE'));
php
use Rougin\Weasley\Handlers\EmptyStringToNull;
$handler = new EmptyStringToNull;
// query params: ?age=&name=null&role=undefined
// becomes: ['age' => null, 'name' => null, 'role' => null]
php
use Rougin\Weasley\Handlers\MutateRequest;
class SanitizeHtml extends MutateRequest
{
protected function transform($value)
{
return is_string($value) ? strip_tags($value) : $value;
}
}
php
use Rougin\Weasley\Handlers\TrimStringValue;
$handler = new TrimStringValue;
// query params: ?name= Rougin
// becomes: ['name' => 'Rougin']
php
use Rougin\Weasley\Check;
class UserCheck extends Check
{
/**
* @return array<string, string>
*/
public function labels()
{
return array(
'name' => 'Name',
'email' => 'Email',
'age' => 'Age',
);
}
/**
* @param array<string, mixed> $data
*
* @return array<string, string>
*/
public function rules(array $data)
{
$rules = array(
'name' => ' php
use Rougin\Weasley\Check;
class SimpleCheck extends Check
{
protected $labels = array(
'name' => 'Name',
'email' => 'Email',
);
protected $rules = array(
'name' => ' php
use Rougin\Weasley\Mutators\JsonMutator;
$mutator = new JsonMutator($response);
$result = $mutator->mutate(array('status' => 'success'));
// Content-Type: application/json
// Body: {"status":"success"}
php
$mutator = new JsonMutator($response, JSON_PRETTY_PRINT);
php
use Rougin\Weasley\Mutators\RestMutator;
$mutator = new RestMutator;
$result = $mutator->mutate($paginator);
// $result becomes:
// [
// 'total_items' => 100,
// 'total_pages' => 10,
// 'items' => [...],
// ]
php
use Rougin\Slytherin\Container\Container;
use Rougin\Slytherin\Integration\Configuration;
use Rougin\Weasley\Packages\Session;
$config = new Configuration;
$config->set('session.cookies', array());
$config->set('session.expiration', 3600);
$config->set('session.path', __DIR__ . '/sessions');
$container = new Container;
(new Session)->define($container, $config);
// Resolve the session from the container ---
$class = 'Rougin\Weasley\Contract\Session';
$session = $container->get($class);
// ------------------------------------------
$session->set('user_id', 42);
echo $session->get('user_id'); // 42
$session->regenerate(); // rotate session ID
$session->delete('user_id'); // remove a key
php
namespace Rougin\Weasley\Contract;
interface Mutator
{
/**
* @param mixed $data
* @return mixed
*/
public function mutate($data);
}
php
namespace Rougin\Weasley\Contract;
interface Session
{
/**
* @param string $key
* @param mixed $default
* @return mixed
*/
public function get($key, $default = null);
/**
* @param string $key
* @param mixed $value
* @return self
*/
public function set($key, $value);
/**
* @param string $key
* @return boolean
*/
public function delete($key);
/**
* @param boolean $delete
* @return boolean
*/
public function regenerate($delete = false);
}