Skip to content

Commit c7ad34c

Browse files
committed
[Software maintenance - Perfective]
* Created Entities * Adapted resource layer for abstract class * Inserted configuration file for doctrine to generate entities * Changed view with the features of Toastr and jquery (Ajax) * Inserted MER file.
1 parent 2b84405 commit c7ad34c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1292
-116
lines changed

LICENSE

100644100755
File mode changed.

README.md

100644100755
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,19 @@ forked by https://github.com/akrabat/slim3-skeleton
4040
* `app/templates/home.twig`: Twig template file for the home page
4141

4242
https://stackoverflow.com/questions/2068344/how-do-i-get-a-youtube-video-thumbnail-from-the-youtube-api
43+
44+
## slime3 + Doctrine
45+
* http://blog.sub85.com/slim-3-with-doctrine-2.html
46+
47+
'<?php
48+
$page = 1; // Página Atual
49+
$numByPage = 5; // Número de registros por Página
50+
$Empresa = $em->createQuery("SELECT e FROM Empresa e ")
51+
->setFirstResult( ( $numByPage * ($page-1) ) )
52+
->setMaxResults( $numByPage );
53+
$Empresa = new \Doctrine\ORM\Tools\Pagination\Paginator($Empresa);'
54+
55+
## Generate Entities
56+
57+
./vendor/doctrine/orm/bin/doctrine orm:convert-mapping --namespace="App\\Entities\\" --force --from-database annotation ./app/src/Entities
58+
./vendor/doctrine/orm/bin/doctrine orm:generate-entities ./app/src/Entities/ --generate-annotations=true

app/dependencies.php

100644100755
File mode changed.

app/middleware.php

100644100755
File mode changed.

app/routes.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
$app->group('/painel', function() use ($app) {
77
$app->get('',App\Action\CMSAction::class . ':page')->setName('homepage');
8-
$app->get('/menu',App\Action\CMSAction::class . ':page');
8+
$app->map(['GET', 'POST'], '/menu', App\Action\CMSAction::class . ':page');
99
$app->get('/page',App\Action\CMSAction::class . ':page');
1010
$app->get('/page-details',App\Action\CMSAction::class . ':page');
1111
$app->get('/img-video',App\Action\CMSAction::class . ':page');

app/settings.php

100644100755
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@
2626
],
2727
'doctrine' => [
2828
'meta' => [
29-
'entity_path' => ['app/src/Entities/'],
29+
'entity_path' => ['app/src/Entity/'],
3030
'auto_generate_proxies' => true,
3131
'proxy_dir' => __DIR__.'/../cache/proxies',
3232
'cache' => null,
3333
],
3434
'connection' => [
3535
'driver' => 'pdo_mysql',
3636
'host' => 'localhost',
37-
'dbname' => 'db-cms',
37+
'dbname' => 'php-cms-admin',
3838
'user' => 'root',
3939
'password' => 'root',
4040
'charset' => 'utf8',

app/src/Action/CMSAction.php

100644100755
Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<?php
22
namespace App\Action;
33

4-
use App\Resource\PageResource;
4+
use App\Resource\GenericResource;
5+
use function Couchbase\defaultDecoder;
56
use Doctrine\ORM\EntityManager;
67
use Slim\Views\Twig;
78
use Psr\Log\LoggerInterface;
@@ -12,27 +13,62 @@ final class CMSAction extends DefaultAction
1213
{
1314
private $view;
1415
private $logger;
15-
private $pageResource;
16+
private $genericResource;
1617

18+
/**
19+
* CMSAction constructor.
20+
* @param Twig $view
21+
* @param LoggerInterface $logger
22+
* @param EntityManager $entityManager
23+
*/
1724
public function __construct(Twig $view, LoggerInterface $logger,EntityManager $entityManager) {
1825
$this->view = $view;
1926
$this->logger = $logger;
20-
$this->pageResource = new PageResource($entityManager);
27+
$this->genericResource = new GenericResource($entityManager);
2128
}
2229

30+
/**
31+
* @param Request $request
32+
* @param Response $response
33+
* @param $args
34+
* @return Response
35+
*/
2336
public function __invoke(Request $request, Response $response, $args) {
2437
$this->logger->info("Home page action dispatched");
2538
$this->view->render($response, 'home.twig');
2639
return $response;
2740
}
2841

42+
/**
43+
* @param Request $request
44+
* @param Response $response
45+
* @param $args
46+
* @return Response
47+
*/
2948
public function page(Request $request, Response $response, $args) {
3049
$this->logger->info("Page action dispatched");
3150
$page = $request->getUri()->getPath() == '/painel' ? explode("/", $request->getUri()->getPath())[1] : explode("/", $request->getUri()->getPath())[2];
51+
52+
$data = $this->resource($page,$request,$response,$args);
53+
3254
$this->view->render($response, $page.'.twig', array("partials" => $page));
3355
return $response;
3456
}
3557

58+
/**
59+
* @param Request $request
60+
* @param Response $response
61+
* @param $args
62+
*/
63+
public function resource($page, Request $request, Response $response, $args){
64+
$this->genericResource->service($page,$request,$response,$args);
65+
}
66+
67+
/**
68+
* @param Request $request
69+
* @param Response $response
70+
* @return Response|static
71+
*/
3672
public function upload(Request $request, Response $response) {
3773

3874
$errors = [];

app/src/Action/DefaultAction.php

100644100755
File mode changed.

app/src/Action/HomeAction.php

100644100755
File mode changed.

app/src/Resource/AbstractResource.php

100644100755
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
use Doctrine\ORM\EntityManager;
77
use Slim\Http\Request;
8+
use Slim\Http\Response;
89

910
abstract class AbstractResource {
1011
/**
@@ -20,6 +21,8 @@ public function __construct(EntityManager $entityManager) {
2021
$this->entityManager = $entityManager;
2122
}
2223

24+
abstract public function service(Request $request, Response $response, $args);
25+
2326
/**
2427
* Get array copy of object
2528
*

0 commit comments

Comments
 (0)