123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <?php
- namespace ImiApp\ApiServer\Controller;
- use ImiApp\Model\World;
- use ImiApp\Model\Fortune;
- use Imi\Controller\HttpController;
- use Imi\Db\Annotation\Transaction;
- use Imi\Server\View\Annotation\View;
- use Imi\Server\Route\Annotation\Action;
- use Imi\Server\Route\Annotation\Controller;
- /**
- * @Controller("/")
- */
- class IndexController extends HttpController
- {
- /**
- * @Action
- *
- * @return void
- */
- public function json()
- {
- return ['message' => 'Hello, World!'];
- }
- /**
- * @Action
- * @View(renderType="html")
- *
- * @return void
- */
- public function plaintext()
- {
- return $this->response->withHeader('Content-Type', 'text/plain')->write('Hello, World!');
- }
- /**
- * @Action
- *
- * @return void
- */
- public function db()
- {
- return World::find(mt_rand(1, 10000));
- }
- /**
- * @Action
- *
- * @return void
- */
- public function query($queries)
- {
- $queryCount = 1;
- if($queries > 1)
- {
- $queryCount = min($queries, 500);
- }
- $list = [];
- while ($queryCount--)
- {
- $list[] = World::find(mt_rand(1, 10000));
- }
- return $list;
- }
- /**
- * @Action
- * @View(renderType="html")
- *
- * @return void
- */
- public function fortunes()
- {
- $this->response = $this->response->withHeader('Content-Type', 'text/html; charset=UTF-8');
- $list = Fortune::select();
- $rows = [];
- foreach($list as $item)
- {
- $rows[$item->id] = $item->message;
- }
- $rows[0] = 'Additional fortune added at request time.';
- asort($rows);
- return [
- 'rows' => $rows,
- ];
- }
- /**
- * @Action
- * @Transaction
- *
- * @return void
- */
- public function update($queries)
- {
- $queryCount = 1;
- if($queries > 1)
- {
- $queryCount = min($queries, 500);
- }
- $list = [];
- while ($queryCount--)
- {
- $list[] = $row = World::find(mt_rand(1, 10000));
- $row->randomNumber = mt_rand(1, 10000);
- $row->update();
- }
- return $list;
- }
- }
|