Skip to content

Commit 3899cc0

Browse files
committed
[Software maintenance - Perfective]
* Add new struture of project * Add interface to methods of resource layer * Add file CMSaction to handler request to the resource layer * Add $em (doctrine) to CMSAction;
1 parent 8b43ea4 commit 3899cc0

File tree

6 files changed

+190
-0
lines changed

6 files changed

+190
-0
lines changed

app/dependencies.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Add extensions
1616
$view->addExtension(new Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri()));
1717
$view->addExtension(new Twig_Extension_Debug());
18+
$view->addExtension(new \nochso\HtmlCompressTwig\Extension());
1819

1920
return $view;
2021
};
@@ -65,3 +66,7 @@
6566
$container[App\Action\HomeAction::class] = function ($c) {
6667
return new App\Action\HomeAction($c->get('view'), $c->get('logger'));
6768
};
69+
70+
$container[App\Action\CMSAction::class] = function ($c) {
71+
return new App\Action\CMSAction($c->get('view'), $c->get('logger'), $c->get('em'));
72+
};

app/src/Action/CMSAction.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
namespace App\Action;
3+
4+
use App\Resource\PageResource;
5+
use Doctrine\ORM\EntityManager;
6+
use Slim\Views\Twig;
7+
use Psr\Log\LoggerInterface;
8+
use Slim\Http\Request;
9+
use Slim\Http\Response;
10+
11+
final class CMSAction extends DefaultAction
12+
{
13+
private $view;
14+
private $logger;
15+
private $pageResource;
16+
17+
public function __construct(Twig $view, LoggerInterface $logger,EntityManager $entityManager) {
18+
$this->view = $view;
19+
$this->logger = $logger;
20+
$this->pageResource = new PageResource($entityManager);
21+
}
22+
23+
public function __invoke(Request $request, Response $response, $args) {
24+
$this->logger->info("Home page action dispatched");
25+
$this->view->render($response, 'home.twig');
26+
return $response;
27+
}
28+
29+
public function page(Request $request, Response $response, $args) {
30+
// TODO: Implement page() method.
31+
}
32+
}

app/src/Action/DefaultAction.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
namespace App\Action;
3+
4+
use App\Util\Access;
5+
use Slim\Http\Request;
6+
7+
class DefaultAction {
8+
9+
public function isAuthorized(Request $request){
10+
if($request->getHeader('Authorization')!=null && count($request->getHeader('Authorization')[0])){
11+
$autorization = $request->getHeader('Authorization')[0];
12+
return $autorization == Access::$AUTHORIZATION;
13+
}
14+
else{
15+
return false;
16+
}
17+
}
18+
19+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<?php
2+
3+
namespace App\Resource;
4+
5+
6+
use Doctrine\ORM\EntityManager;
7+
use Slim\Http\Request;
8+
9+
abstract class AbstractResource {
10+
/**
11+
* @var \Doctrine\ORM\EntityManager
12+
*/
13+
protected $entityManager = null;
14+
15+
public function formatText($str){
16+
return iconv('UTF-8','ASCII//TRANSLIT',str_replace(' ', '', strtolower($str)));
17+
}
18+
19+
public function __construct(EntityManager $entityManager) {
20+
$this->entityManager = $entityManager;
21+
}
22+
23+
/**
24+
* Get array copy of object
25+
*
26+
* @return array
27+
*/
28+
public function getArrayCopy(){
29+
return get_object_vars($this);
30+
}
31+
32+
/**
33+
* @param Request $request
34+
* @param $args
35+
* @return mixed
36+
*/
37+
abstract function get(Request $request, $args);
38+
39+
/**
40+
* @param Request $request
41+
* @param $args
42+
* @return mixed
43+
*/
44+
abstract function put(Request $request, $args);
45+
46+
/**
47+
* @param Request $request
48+
* @param $args
49+
* @return mixed
50+
*/
51+
abstract function post(Request $request, $args);
52+
53+
/**
54+
* @param Request $request
55+
* @param $args
56+
* @return mixed
57+
*/
58+
abstract function delete(Request $request, $args);
59+
60+
/**
61+
* @param Request $request
62+
* @param $args
63+
* @return mixed
64+
*/
65+
abstract function path(Request $request, $args);
66+
}

app/src/Resource/PageResource.php

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?php
2+
3+
namespace App\Resource;
4+
5+
6+
use Slim\Http\Request;
7+
8+
class PageResource extends AbstractResource {
9+
10+
11+
protected $entityManager;
12+
13+
protected $menuResource;
14+
15+
16+
/**
17+
* @param Request $request
18+
* @param $args
19+
* @return mixed
20+
*/
21+
function get(Request $request, $args) {
22+
// TODO: Implement put() method.
23+
}
24+
25+
/**
26+
* @param Request $request
27+
* @param $args
28+
* @return mixed
29+
*/
30+
function put(Request $request, $args) {
31+
// TODO: Implement put() method.
32+
}
33+
34+
/**
35+
* @param Request $request
36+
* @param $args
37+
* @return mixed
38+
*/
39+
function post(Request $request, $args) {
40+
// TODO: Implement post() method.
41+
}
42+
43+
/**
44+
* @param Request $request
45+
* @param $args
46+
* @return mixed
47+
*/
48+
function delete(Request $request, $args) {
49+
// TODO: Implement delete() method.
50+
}
51+
52+
/**
53+
* @param Request $request
54+
* @param $args
55+
* @return mixed
56+
*/
57+
function path(Request $request, $args) {
58+
// TODO: Implement path() method.
59+
}
60+
}

app/src/Util/Access.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
namespace App\Util;
3+
4+
class Access {
5+
6+
public static $AUTHORIZATION = 'xxxxxxx';
7+
8+
}

0 commit comments

Comments
 (0)