1. Go to this page and download the library: Download bedita/web-tools 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/ */
bedita / web-tools example snippets
use BEdita\WebTools\Utility\AssetRevisions;
use BEdita\WebTools\Utility\Asset\Strategy\EntrypointsStrategy;
public function bootstrap(): void
{
parent::bootstrap();
AssetsRevisions::setStrategy(new EntrypointsStrategy());
// you can also set the path where to find the manifest (default is webroot/build/entrypoints.json)
// AssetsRevisions::setStrategy(
// new EntrypointsStrategy(['manifestPath' => '/custom/path/entrypoints.json']);
// );
}
<?= $this->Html->script('app')
public function bootstrap(): void
{
parent::bootstrap();
$this->addPlugin('Authentication');
}
public function middleware(MiddlewareQueue $middlewareQueue): MiddlewareQueue
{
// Various other middlewares for error handling, routing etc. added here.
// Create an authentication middleware object
$authentication = new AuthenticationMiddleware($this);
// Add the middleware to the middleware queue.
// Authentication should be added *after* RoutingMiddleware.
// So that subdirectory information and routes are loaded.
$middlewareQueue->add($authentication);
return $middlewareQueue;
}
public function getAuthenticationService(ServerRequestInterface $request): AuthenticationServiceInterface
{
$service = new AuthenticationService();
// Load the authenticators, you want session first
$service->loadAuthenticator('Authentication.Session');
$service->loadAuthenticator('Authentication.Form', [
'loginUrl' => '/users/login'
]);
// Load identifiers
$service->loadIdentifier('BEdita/WebTools.Api');
return $service;
}
// Edit Application.php
public function getAuthenticationService(ServerRequestInterface $request): AuthenticationServiceInterface
{
$service = new AuthenticationService([
'identityClass' => \BEdita\WebTools\Identity::class
]);
// Load the authenticators, you want session first
$service->loadAuthenticator('Authentication.Session');
$service->loadAuthenticator('Authentication.Form');
// Load identifiers
$service->loadIdentifier('BEdita/WebTools.Api');
return $service;
}
// in a Controller
$identity = $this->Authentication->getIdentity();
if ($identity->hasRole('admin')) {
$this->Flash->success('Hi admin!');
}
public function middleware(MiddlewareQueue $middlewareQueue): MiddlewareQueue {
// other middleware...
// $middlewareQueue->add(new AuthenticationMiddleware($this));
// Add authorization (after authentication if you are using that plugin too).
$middlewareQueue->add(new AuthorizationMiddleware($this));
$middlewareQueue->add(new RequestAuthorizationMiddleware());
}
public function getAuthorizationService(ServerRequestInterface $request): AuthorizationServiceInterface
{
$mapResolver = new MapResolver();
$mapResolver->map(
ServerRequest::class,
new RequestPolicy([
// setup your request policy rules
'rules' => [
'Dashboard' => [
'index' => ['premium', 'basic'], // allow access to DashboardController::index() for these roles
'special' => 'premium', // allow access to Dashboard::special() only for 'premium' role
'*' => false, // fallback for other DashboardController actions. Forbidden to all
],
],
]);
);
return new AuthorizationService($mapResolver);
}
'google' => [
// OAuth2 class name, must be a supported provider of `league/oauth2-client`
// see https://oauth2-client.thephpleague.com/providers/league/ official or third-party
'class' => '\League\OAuth2\Client\Provider\Google',
// Provider class setup parameters, normally this ween providers, please read the oauth2-client documentation.
'options' => [
'scope' => ['https://www.googleapis.com/auth/userinfo.email'],
],
// Map BEdita user fields with auth provider data path, using dot notation like 'user.id'
// In this array keys are BEdita fields, and values are paths to extract the desired item from the provider response
// only `'provider_username'` is mandatory, to uniquely identify the user in the provider context
// other fields could be used during signup
'map' => [
'provider_username' => 'sub',
'username' => 'email',
'email' => 'email',
'name' => 'given_name',
'surname' => 'family_name',
],
],
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.