Sección es-symfony

Página Sonata 5: Agregando etiquetas Open Graph con SonataPage y SonataMediaSonata

Escrito por el 02/10/2023
Categorías :   symfony, Sonata
Etiquetas :  
Si ya has utilizado SonataPage y SonataMedia, sabes lo poderosos que son para gestionar contenido y medios en tu sitio. En este artículo, voy a mostrarte cómo extender estas herramientas para añadir fácilmente etiquetas Open Graph a tus páginas para mejorar su compartición en redes sociales. ¿Por qué las etiquetas Open Graph? Las etiquetas Open Graph (OG) son meta-etiquetas que puedes agregar a tus páginas para definir títulos, descripciones, imágenes y otra información que se utilizará cuand...

Sonata Página 5: Ocultar bloques dentro de bloques compartidos.

Escrito por el 30/09/2023
Categorías :   symfony
Etiquetas :  
Si estás usando el paquete SonataPage, podrías haber notado que algunos de los bloques ofrecidos son innecesarios o no funcionales.Hablaremos sobre cómo ocultar estos bloques de la lista de forma limpia, con un archivo de configuración y sobrescribiendo las plantillas de administración de SonataPage. 1 – La Configuración Necesitamos crear una lista de servicios que no queremos mostrar. Esta lista irá naturalmente en los parámetros de nuestro archivo de servicios: #co...

Sonata: Añadir un Panel de Administración sin una Entidad con Sonata Admin 5 y Symfony 6.2

Escrito por el 06/06/2023
Categorías :   symfony, Sonata
Etiquetas :  
En este artículo, aprenderemos a agregar un panel de administración sin entidades en un proyecto Symfony 6.2 usando Sonata Admin 5. Nuestra base de proyecto será crear una interfaz simple de carga de archivos. Pero podrías hacer cualquier aplicación. Incluso añadir texto simple. 1. Instalando Sonata Admin Bundle Si aún no has instalado Sonata Admin, puedes hacerlo con composer: composer require sonata-project/admin-bundle Te invitamos a navegar en nuestro sitio para instalar Sonata Admi...

Cómo crear un transporte de correo electrónico personalizado con Symfony Mailer

Escrito por el 19/05/2023
Categorías :   PHP, symfony
Etiquetas :  
Hoy, vamos a ver cómo crear un transporte de correo electrónico personalizado con Symfony Mailer. Para el ejemplo, crearemos un transporte llamado “pt”. Prerrequisitos Antes de comenzar, asegúrate de haber instalado y configurado Symfony Mailer y HttpClient en tu proyecto. Puedes añadirlos a tu proyecto utilizando los siguientes comandos: composer require symfony/mailer composer require symfony/http-client Creando la Clase de Transporte Lo primero que debemos hacer es crear...

Symfony: Forzar a una entidad a utilizar una conexión de base de datos diferente a la configurada por defecto

Escrito por admin el 19/01/2023
Categorías :   PHP, symfony
Etiquetas :  
No es raro tener múltiples bases de datos para un solo proyecto. Normalmente, cuando se usan dos bases de datos, las entidades pueden organizarse en directorios específicos que se declaran en tu configuración. En este caso, el sistema utilizará la conexión configurada para el directorio de la entidad. Puedes ver un ejemplo de múltiples conexiones aquí Symfony 4 / Sonata: gestionando una interfaz de administración multi-servidor Supongamos que querem...

Usa composer y bin/console de tu imagen Docker directamente en PHPSTORM

Escrito por el 19/01/2023
Categorías :   PHP, symfony, phpstorm, Divers
Etiquetas :  
Está bien, eres como yo. Tu máquina no tiene nada instalado localmente. ¡Ni siquiera composer ni PHP en CLI!Aunque uses PHP y quizás incluso Symfony (o no), necesitas utilizar composer diariamente. Usas PhpStorm todos los días y piensas que es una lástima no aprovechar todas las opciones de tu IDE, especialmente todo lo relacionado con composer y la consola de Symfony. Entonces, ¿cómo configuras PhpStorm para especificar que el composer de tu proyecto se encuentra en la imagen de docker?Aquí ...

Acciones Personalizadas de Sonata

Escrito por el 19/01/2023
Categorías :   PHP, symfony, Sonata
Etiquetas :  
Siguiendo el artículo escrito por Thomas Bourdin SYMFONY / SONATA: AÑADIENDO UNA FUNCIÓN DE CLONACIÓN A UN CRUD, vamos a mostrar cómo, de manera muy simple, podemos añadir acciones personalizadas a una interfaz. En el Tablero: Pero también vamos a ver cómo personalizar de manera simples y genérica las acciones personalizadas del listado, el encabezado de su CRUD y finalmente cómo añadir acciones para el procesamiento por lotes. Para mi ejemplo, comencé con una tabla muy simple llamada...

Depurar con PhpStorm y Symfony en una imagen de Docker

Escrito por el 19/01/2023
Categorías :   PHP, PHP / FFI, symfony, phpstorm
Etiquetas :  
Configuración de PHP/Docker Si estás desarrollando con Symfony, instalado en un docker compose y aún no utilizas el depurador, entonces este artículo es para ti. Vamos a mostrarte cómo preparar tu entorno para que ya no tengas que hacer dd() o var_dump. Una vez que hayas experimentado las alegrías de depurar, no podrás prescindir de ello, ya que aumentará enormemente tu comodidad. Para este artículo necesitas tener una aplicación Symfony alimentada por apache/php (o nginx y fpm, no importa) ...

Configuración de 'Herramientas de Calidad' en una Imagen de Docker en PHPSTORM

Escrito por el 15/12/2022
Categorías :   PHP, symfony, phpstorm
Etiquetas :  
Aquí hay una pregunta que recientemente consideré. Normalmente, instalo herramientas de control de calidad (QA) directamente en mi máquina anfitriona o en la imagen de Docker. Si las herramientas están instaladas en mi máquina anfitriona, no hay problema en configurar PhpStorm. Si las herramientas están directamente configuradas en la imagen de Docker, tampoco hay problema en usarlas dentro de la imagen. Sin embargo, ¿cómo se puede combinar el poder de PhpStorm y Docker para vincular los dos?...

Sonata DataMapper y Autowiring

Escrito por el 08/12/2022
Categorías :   PHP, symfony, Sonata
Etiquetas :  
Si tienes una necesidad específica de transformar datos entre el formulario y el registro de tu entidad y piensas que este código de transformación debería ubicarse en un servicio porque tiene más sentido, puedes utilizar el dataMapper utilizando la inyección de dependencias proporcionada por Symfony. ¿Pero cómo implementarlo?Un pequeño recordatorio sobre el DataMapper. Si estamos de acuerdo con la documentación oficial de Symfony respecto a DataMapper y DataTransformer, un dataMapper tiene l...

SF6 / Sonata 5: Gestionando una interfaz OneToMany en un CRUD con el CollectionType de Sonata

Escrito por el 27/11/2022
Categorías :   PHP, symfony, Sonata
Etiquetas :   sonata, symfony, admin
En este ejemplo, tomaremos el caso concreto de una interfaz simple que incluye múltiples elementos. Hemos elegido usar una tabla de "Proyectos" en la que asignaremos documentos. Por lo tanto, para un proyecto, podemos asignar varios documentos. Y para facilitar la administración, nos aseguraremos de que podamos gestionar nuestra interfaz anidada directamente dentro de la vista de edición de nuestro proyecto.Necesitamos crear el esquema. En primer lugar, importamos nuestro esquema actual en My...

Symfony 6 / Sonata 5: Instalando SonataClassification.

Escrito por el 14/03/2022
Categorías :   PHP, symfony, Sonata
Etiquetas :  
Hemos visto en artículos anteriores cómo inicializar un proyecto Symfony 6 + Sonata 5 con multimedia y usuarios en un admin seguro. Luego, analizamos cómo gestionar las localizaciones de usuarios.Ahora veremos cómo instalar y gestionar clasificaciones. Procedemos con la instalación de la última versión hasta la fecha. php8.1 composer.phar require sonata-project/classification-bundle:5.x-dev Al parecer, tenemos un error de configuración. Unrecognized option "media" under "sonata_clas...

Symfony 6 / Sonata 5: Vincular las configuraciones regionales y la zona horaria a las preferencias del usuario.

Escrito por el 10/03/2022
Categorías :   PHP, symfony, Sonata
Etiquetas :  
En un artículo anterior vimos cómo instalar Symfony 6 + Sonata Admin 5 con gestión de usuarios y medios. Continuaremos con esta instalación con la configuración de idiomas y zonas horarias. Instalaremos intlBundle que permite gestionar la visualización localizada. php8.1 composer.phar require sonata-project/intl-bundle Aprovechamos esta oportunidad para agregar un campo de zona horaria y localidad al usuario.Para hacer esto, extenderemos userBundle y agregaremos un campo en el admin. Ex...

Symfony 6 / Sonata 5: Inicializar un proyecto con Symfony 6 + Sonata Admin 5 + UserBundle + MediaBundle

Escrito por el 10/03/2022
Categorías :   PHP, symfony, Sonata
Etiquetas :  
Aquí están los comandos para inicializar un proyecto Symfony con un administrador seguro. Para ejecutar Symfony 6 necesitaremos instalar php8.0 o php8.1 Para php8.0 sudo apt-get install php8.0-cli libapache2-mod-php8.0 php8.0-common php8.0-opcache php8.0-igbinary php8.0-imagick php8.0-msgpack php8.0-readline php8.0-memcached php8.0-xml php8.0-mbstring php8.0-gd php8.0-mysql php8.0-curl php8.0-intl php8.0-memcache php8.0-memcached memcached libapache2-mod-php8.0 php8.0-zip php8.0-mysql ...

Symfony 4 / Sonata: Crear una segunda interfaz con la misma entidad

Escrito por el 06/11/2020
Categorías :   PHP, symfony, Sonata
Etiquetas :   sonata, symfony
Aquí veremos cómo crear una segunda interfaz mientras la entidad ya está en uso en una interfaz CRUD.El problema con las interfaces generadas automáticamente es que utilizan el nombre de la entidad para construir las rutas.Si configuramos una segunda interfaz con una entidad que ya se está utilizando, terminaremos con la misma ruta que la primera. Para abordar este problema, utilizaremos estos dos parámetros en nuestra clase de administración para sobrescribir los valores predeterminados.Sup...

Symfony 4 / Sonata: Gestión de una Interfaz de Administración Multilingüe

Escrito por el 30/10/2020
Categorías :   PHP, symfony, Sonata
Etiquetas :   sonata, symfony
Veremos cómo configurar una interfaz de administración multilingüe con un botón de selección de idioma (conmutador de idioma).Instalación de translationBundle composer require sonata-project/translation-bundle bin/console assets:install El conmutador de idioma requiere un filtro twig específico.De lo contrario, obtendrás un error como:Unknown "language_name" filter.Luego, necesitas instalar estos dos paquetes composer require twig/intl-extra composer require twig/extra-bundle bin/console cac...

Symfony 4 / Sonata: Administrar una Interfaz de Administración Multi-Servidor

Escrito por el 11/09/2020
Categorías :   PHP, symfony, Sonata
Etiquetas :   sonata, symfony
Veremos cómo gestionar una interfaz de administración que se conecta a múltiples servidores.En nuestro ejemplo, hemos configurado un servidor MySQL predeterminado que gestiona nuestra interfaz de administración. Usuarios, medios, etc.Y hemos configurado un servidor PostgreSQL que contiene una tabla que deseamos gestionar.Podemos agregar tantos servidores como deseemos.Nuestro Servidor MySQLTradicionalmente hemos configurado una instancia de Symfony Sonata por defecto con una conexión clásica ...

Symfony 4 / Sonata: Usar campos json

Escrito por el 10/09/2020
Categorías :   PHP, symfony, Sonata
Etiquetas :   postgreSql, sonata, json, Jsonb, symfony
Vamos a ver cómo explotar los tipos de campo Jsonb de PostgreSQL en una interfaz generada de Sonata.Comenzamos con el supuesto de que ya dominas los conceptos básicos de Symfony, Sonata y PostgreSQL.Primero, creemos una tabla simple en PostgreSQL que contendrá un campo Jsonb. CREATE SEQUENCE public.table1_id_seq; CREATE TABLE public.table1 ( id integer DEFAULT nextval('public.table1_id_seq'::regclass) NOT NULL, var1 character varying(250), var2 json...

Symfony 4 / Sonata: Crear un Tipo de Campo de Formulario Personalizado

Escrito por el 09/09/2020
Categorías :   PHP, symfony, Sonata
Etiquetas :   sonata, symfony
Vamos a ver cómo podemos crear un tipo de campo personalizado. En nuestro ejemplo, queremos un campo que tenga el mismo renderizado que un campo de tipo MoneyType pero en el cual podamos agregar cualquier sufijo, ya que el campo de dinero solo acepta monedas. Sin embargo, en nuestro proyecto queremos usar kilogramos, meses o incluso kilómetros. En resumen, una gama completa de posibles tipos de datos.Comenzamos creando nuestra clase de Tipo: <?php // src/Form/Type/NumberSuffixType.php na...

Symfony 4 / Sonata: Crear una interfaz de configuración.

Escrito por el 23/08/2020
Categorías :   PHP, symfony, Sonata
Etiquetas :   sonata, symfony
Una de las necesidades recurrentes de un proyecto web es la necesidad de parámetros globales para su aplicación. Generalmente, estos se almacenan en un archivo yml y eso es todo lo que necesitas. Pero se complica cuando el cliente pide poder tener control sobre ellos.¿Darles acceso FTP/SSH para modificarlos? No, definitivamente no. Especialmente si se trata de delegar esta tarea a un becario.Necesitarás proporcionarles una interfaz de administración con un formulario para poder modificar est...