| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- namespace internship\controller;
- use n2n\web\http\controller\ControllerAdapter;
- use n2n\web\http\controller\ParamPath;
- use n2n\web\http\controller\ParamQuery;
- use internship\model\ArticleDao;
- use n2n\context\attribute\Inject;
- use n2n\web\http\controller\ParamBody;
- use internship\bo\Article;
- use n2n\web\http\PageNotFoundException;
- use n2n\reflection\annotation\AnnoInit;
- use n2n\web\http\annotation\AnnoPath;
- use n2n\web\http\BadRequestException;
- use custom\model\TestModel;
- /**
- * REST Controller
- * https://dev.n2n.rocks/de/n2n/docs/rest
- **/
- class ArticleControllerDavid extends ControllerAdapter {
- private static function _annos(AnnoInit $ai) {
- $ai->m('anno', new AnnoPath('param1:*/const/param2:*'));
- $ai->m('holeradio', new AnnoPath ('param1:#^[a-z3-9]+$#/holeradio/params+:#^[1-9]?[0-9]$#'));
- }
- #[Inject]
- private ArticleDao $articleDao;
- public function anno($param1, $param2) {
- echo 'anno controller function David <br/>';
- echo 'param1: ' . $param1 . ' param2: ' . $param2;
- }
- public function holeradio($param1, array $params) {
- if (array_sum($params) > '999') {
- throw new BadRequestException('sum bigger than 999');
- }
- echo 'param1: ' . $param1 . '<br/>';
- echo 'params: ' . implode(', ', $params) .' sum: '. array_sum($params);
- }
- public function index(ParamQuery $param1 = null, ParamQuery $param2 = null) {
- echo 'Index controller function David <br/>';
- echo 'param1: ' . $param1 . ' param2: ' . $param2;
- }
- public function doDetail(ParamPath $param1 = null, ParamPath $param2 = null, ParamPath $param3 = null) {
- echo 'doDetail controller function David <br/>';
- echo 'param1: ' . $param1 . ' param2: ' . $param2 . ' param3: ' . $param3;
- }
- public function doAdvancedDetail(ParamQuery $param1 = null, ParamQuery $param2 = null, ParamQuery $param3 = null) {
- echo 'doAdvancedDetail controller function David <br/>';
- echo 'param1: ' . $param1 . ' param2: ' . $param2 . ' param3: ' . $param3;
- }
- public function doHallo(ParamPath $test3 = null, ParamQuery $param1 = null, ParamQuery $param2 = null) {
- echo 'doHallo controller function David <br/>';
- if ($test3 !== null) {
- if ($test3?->toString() !== 'test3') {
- throw new PageNotFoundException('not test3');
- }
- echo 'ParamPath = '. $test3. '<br/>';
- }
- echo 'param1: ' . $param1 . ' param2: ' . $param2;
- }
- #[Inject]
- private TestModel $testModel;
- public function doHuii(DavidDelegateController $davidDelegateController,
- $param, array $delegateParams = null) {
- echo 'Test 1: ' . $this->testModel->getTest() . '<br/>';
- $this->delegate($davidDelegateController, 2);
- }
- public function doHoi(DavidDelegateController $davidDelegateController, array $delegateParams = null) {
- echo 'Test 1: ' . $this->testModel->getTest() . '<br/>';
- $this->testModel->setTest('value ' . uniqid());
- $this->delegate($davidDelegateController);
- }
- function getDoArticle(int $articleId): void {
- echo 'hallo';
- }
- }
- class DavidDelegateController extends ControllerAdapter {
- public function doBaz(TestModel $testModel, $param = null) {
- echo 'Test 2: ' . $testModel->getTest(). '<br/>';
- echo 'param: ' . $param;
- }
- public function index(array $params = null) {
- echo 'delegate is cool';
- if($params !== null) {
- echo '<br/>' . 'params: ' . implode(', ', $params);
- }
- }
- }
|