Skip to content

Commit 84892d5

Browse files
committed
Create Hello World and REST APi benchmarks
1 parent 53a7abf commit 84892d5

8 files changed

+45147
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
3+
\Cake\Event\EventManager::instance()->on(
4+
new \PhpBenchmarksCakePhp\Event\RandomizeLocaleListener()
5+
);

Controller/HelloWorldController.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpBenchmarksCakePhp\Controller;
6+
7+
use Cake\Controller\Controller;
8+
use Cake\Http\Response;
9+
10+
class HelloWorldController extends Controller
11+
{
12+
public function helloWorld()
13+
{
14+
return new Response(['body' => 'Hello World !']);
15+
}
16+
}

Controller/RestController.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpBenchmarksCakePhp\Controller;
6+
7+
use Cake\Controller\Controller;
8+
use Cake\Event\Event;
9+
use PhpBenchmarksCakePhp\Event\RandomizeLocaleListener;
10+
use PhpBenchmarksCakePhp\Transformer\RestApiTransformer;
11+
use PhpBenchmarksRestData\Service;
12+
13+
class RestController extends Controller
14+
{
15+
public function initialize()
16+
{
17+
parent::initialize();
18+
$this->loadComponent('RequestHandler');
19+
}
20+
21+
public function rest()
22+
{
23+
$this->getEventManager()->dispatch(
24+
new Event(RandomizeLocaleListener::EVENT_NAME, $this)
25+
);
26+
27+
$this->RequestHandler->renderAs($this, 'json');
28+
$this->response->withType('application/json');
29+
30+
$transformer = new RestApiTransformer();
31+
$this->set('users', $transformer->usersToArray(Service::getUsers()));
32+
$this->set('_serialize', ['users']);
33+
}
34+
}

Event/RandomizeLocaleListener.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpBenchmarksCakePhp\Event;
6+
7+
use Cake\Event\EventListenerInterface;
8+
use Cake\I18n\I18n;
9+
10+
class RandomizeLocaleListener implements EventListenerInterface
11+
{
12+
const EVENT_NAME = 'phpbenchmarks.randomize_locale';
13+
14+
public function implementedEvents()
15+
{
16+
return [static::EVENT_NAME => 'randomizeLocale'];
17+
}
18+
19+
public function randomizeLocale()
20+
{
21+
$locales = ['fr_FR', 'en_GB', 'en'];
22+
I18n::setLocale($locales[rand(0, 2)]);
23+
}
24+
}

0 commit comments

Comments
 (0)