(16) 981791110 contato@policast.studio

Introdução

Symfony é um framework PHP de código aberto que permite a construção de aplicações web complexas de forma ágil e eficiente. Uma das funcionalidades do Symfony é a criação de sistemas de gerenciamento de conteúdo (CMS – Content Management System) que permitem a criação e gerenciamento de páginas e artigos. Neste artigo, vamos explorar como criar um CMS com Symfony, permitindo que os usuários criem, editem e excluam páginas e artigos.

Criando o Banco de Dados

Para criar um sistema de gerenciamento de conteúdo, começamos com a criação do banco de dados que irá armazenar as informações das páginas e artigos. Podemos utilizar o Doctrine, um mapeador objeto-relacional (ORM – Object-Relational Mapping) integrado com o Symfony, para criar as tabelas do banco de dados. Para criar as tabelas, execute os seguintes comandos do console do Symfony:

php bin/console doctrine:database:create

php bin/console doctrine:schema:create

Criando a Entidade de Página

Agora que o banco de dados foi criado, precisamos criar a entidade de Página. Uma entidade representa um objeto em nosso modelo de dados, e no caso do CMS, uma página é um objeto que contém um título, um conteúdo e uma URL. Podemos criar a entidade usando o seguinte comando do console do Symfony:

php bin/console make:entity

Isso irá criar uma classe PHP com as propriedades que definimos (título, conteúdo e URL) e getters e setters para cada propriedade.

Criando a Entidade de Artigo

Da mesma forma que criamos a entidade de Página, podemos criar a entidade de Artigo usando o comando make:entity. No entanto, uma diferença importante é que um artigo pertence a uma página, então precisamos adicionar uma relação ManyToOne entre as entidades de Artigo e Página. Isso pode ser feito editando a classe da entidade de Artigo e adicionando o seguinte código:

“`
/**
* @ORMManyToOne(targetEntity=”AppEntityPage”, inversedBy=”articles”)
* @ORMJoinColumn(nullable=false)
*/
private $page;
“`

Isso adiciona uma propriedade $page à entidade de Artigo e estabelece uma relação many-to-one entre as entidades de Artigo e Página.

Criando os Controladores

Os controladores são responsáveis por manipular as requisições HTTP e retornar as respostas adequadas. No caso do CMS, precisamos de um controlador para manipular as requisições relacionadas à exibição, criação, edição e exclusão de páginas e artigos. Podemos criar os controladores usando o seguinte comando do console do Symfony:

php bin/console make:controller

Em seguida, precisamos implementar os métodos para cada rota que desejamos fornecer em nosso sistema de gerenciamento de conteúdo.

Criando as Rotas

As rotas determinam qual método do controlador será executado para cada requisição HTTP. Para criar as rotas, podemos adicionar as anotações de rota às definições de método em nossos controladores. Por exemplo, a rota para exibir uma página pode ser definida assim:

“`
/**
* @Route(“/page/{id}”, name=”page_show”)
*/
public function show(Page $page): Response
{
return $this->render(‘page/show.html.twig’, [
‘page’ => $page,
]);
}
“`

Isso diz ao Symfony que o método show do controlador deve ser executado quando uma requisição HTTP GET é feita para a rota /page/{id}, onde {id} é o ID da página.

Criando as Visualizações

As visualizações são responsáveis por renderizar as respostas HTML que são enviadas para o navegador do usuário. No caso do CMS, precisamos criar visualizações para exibir todas as páginas e artigos em nossos sistemas de gerenciamento de conteúdo, bem como para exibir formulários para criar e editar páginas e artigos. Podemos criar as visualizações usando o Twig, o mecanismo de templates integrado com o Symfony.

Conclusão

Criar um sistema de gerenciamento de conteúdo com Symfony é uma tarefa relativamente simples, com muitas ferramentas e recursos disponíveis para nos auxiliar. Através do uso do Doctrine, podemos criar a estrutura do nosso banco de dados e mapear nossas entidades. Com o uso do Twig, podemos criar as visualizações que exibem as informações para o usuário. E com o uso de rotas e controladores, podemos definir como as requisições HTTP são manipuladas em nossa aplicação. Com todas essas ferramentas à nossa disposição, podemos construir um poderoso sistema de gerenciamento de conteúdo em pouco tempo.