Pasar al contenido principal
Symfony development services for enterprise applications

Servicios de desarrollo Symfony para aplicaciones empresariales

Metadrop ofrece desarrollo Symfony para organizaciones europeas de tamaño mediano a grande: nuevas aplicaciones y backends API-first, migración de PHP heredado a Symfony, actualizaciones de versiones principales y mantenimiento a largo plazo bajo un SLA contractual.

Symfony icon

Qué es Symfony y cuándo encaja en un proyecto empresarial

Symfony es un framework PHP de código abierto construido como un conjunto de componentes independientes y reutilizables: enrutamiento, inyección de dependencias, despacho de eventos, manejo HTTP, serialización, validación y herramientas de consola. Estos componentes pueden utilizarse juntos como un framework completo, o adoptarse individualmente dentro de otro código fuente. Symfony también publica versiones con soporte a largo plazo (LTS) con una cadencia predecible, por lo que es una opción habitual para sistemas que deben permanecer en producción durante muchos años.

Symfony encaja mejor cuando la aplicación conlleva una complejidad de dominio sustancial: reglas de negocio, flujos de trabajo, permisos e integraciones que superan lo que un sitio gestionado con contenido puede ofrecer. Los casos típicos son aplicaciones web empresariales, backends basados en API para frontends SPA y móviles, capas de integración y middleware entre sistemas ERP, CRM y sistemas heredados, servicios basados en eventos y colas, y sistemas regulados de larga duración.

Los sistemas orientados a empleados son un caso recurrente. Herramientas internas, flujos de aprobación, servicios de directorio y documentos se sitúan detrás del SSO y a menudo se exponen dentro de una intranet existente en lugar de como un destino separado. Dado que Symfony y Drupal comparten la misma base de componentes, una organización que ya utiliza Drupal puede extenderse a aplicaciones Symfony personalizadas sin cambiar el lenguaje de ingeniería, las herramientas ni el modelo de alojamiento.

Cuando Symfony no es la respuesta, Metadrop lo comunica durante la fase de descubrimiento: un sitio centrado en contenido suele estar mejor servido por Drupal, y un servicio independiente pequeño puede no justificar un framework completo.

Servicios de desarrollo Symfony que ofrecemos

Desarrollo de aplicaciones Symfony personalizadas

Aplicaciones empresariales completamente nuevas basadas en la versión LTS actual de Symfony y PHP 8.3+: portales para clientes, sistemas de back-office y flujos de trabajo, marketplaces y aplicaciones de negocio con gran carga de dominio. Se construyen con Doctrine ORM para la capa de persistencia, Twig para interfaces renderizadas en el servidor y un conjunto de pruebas desde el primer sprint, en lugar de añadirse posteriormente.

Backends API-first con API Platform.

APIs REST y GraphQL construidas sobre API Platform, con documentación JSON-LD/Hydra y OpenAPI generada a partir de las mismas definiciones de recursos sobre las que se construye la API. Son el backend para frontends SPA, aplicaciones móviles e integraciones entre sistemas.

Migración de PHP heredado a Symfony

Rutas estructuradas que migran desde PHP personalizado sin mantenimiento, un framework interno abandonado o una versión de PHP sin soporte hacia una base de código Symfony compatible. La migración se realiza por fases y protegida por pruebas, diseñada para mantener el sistema actual sirviendo tráfico mientras se trasladan las funcionalidades.

Actualizaciones de versiones principales de Symfony

Actualizaciones progresivas entre versiones principales, guiadas por obsolescencia y protegidas por pruebas, una versión principal a la vez, devolviendo una base de código a una LTS compatible.

Integraciones empresariales

Aplicaciones Symfony conectadas a SAP, Salesforce, Microsoft Dynamics, Sharepoint, pasarelas de pago, motores de búsqueda y back-ends personalizados SOAP/REST, con procesamiento asíncrono respaldado por colas cuando el volumen lo requiere.

Consultoría de arquitectura y revisión de código

Una evaluación independiente de un código Symfony o PHP existente que abarca la arquitectura de servicios, el grafo de dependencias, la cobertura de pruebas, el perfil de rendimiento y la ruta de actualización, entregada como una hoja de ruta priorizada antes de cualquier cambio en el código.

Mantenimiento, soporte y SLA

Mantenimiento a largo plazo de un sistema Symfony en producción: parches de seguridad, actualizaciones de dependencias y versiones de PHP, monitorización, ajuste de rendimiento y evolución de funcionalidades bajo un SLA contractual.

Han confiado en Metadrop

Desde fabricantes industriales y mercados B2B hasta organizaciones humanitarias y organismos públicos, organizaciones de más de 50 países han confiado en Metadrop para la ingeniería de PHP, componentes Symfony y Drupal.

drupal icon
Symfony icon

Trabajando en la capa de componentes de Symfony

Drupal está construido sobre Symfony. Cada plataforma Drupal que Metadrop ha diseñado durante más de 15 años funciona con el HttpKernel de Symfony, y su código personalizado se escribe utilizando las API de componentes propias de Symfony.

Los componentes con los que los ingenieros de Metadrop trabajan como parte de la producción rutinaria incluyen DependencyInjection (definiciones de servicios, pases de compilación, servicios etiquetados), EventDispatcher (suscriptores y oyentes), HttpKernel y HttpFoundation (el ciclo de vida de solicitud/respuesta y la lógica de estilo middleware), Routing, Serializer, Validator y Console, este último para comandos CLI programados y de larga duración.

Este trabajo se realiza directamente contra los componentes arquitectónicos de Symfony: los mismos patrones de contenedor de servicios, modelos de eventos y herramientas CLI con los que se construye una aplicación Symfony independiente. Se han entregado aplicaciones Symfony independientes, integraciones de API Platform y herramientas Symfony Console como extensiones de esa base en proyectos con clientes.

Las pruebas y el análisis estático forman parte de la práctica de ingeniería: PHPUnit, Behat y análisis estático en el pipeline. Metadrop también ofrece una formación en PHPUnit y TDD para otros equipos de ingeniería. Su literatura técnica publicada cubre la migración de versiones principales de PHP, la gestión de dependencias con Composer, la simulación de APIs de terceros en entornos de prueba y las pruebas automatizadas más allá de PHPUnit, las mismas prácticas en las que se basan las tareas de actualización y mantenimiento de esta página.

Nuestro stack tecnológico Symfony

  • Framework y lenguaje: Symfony (última LTS y versiones más recientes), PHP 8.3+, Symfony Flex.
  • Datos: Doctrine ORM y DBAL, MySQL/MariaDB, PostgreSQL, Redis.
  • APIs: API Platform, REST, GraphQL, JSON-LD/Hydra, OpenAPI, OAuth2/OIDC, JWT.
  • Asíncrono y tiempo real: Symfony Messenger con transportes RabbitMQ o Redis, Mercure.
  • Interfaces: Twig, Webpack Encore/Vite y front-ends SPA en Angular, React o Vue donde se requiera un cliente enriquecido.
  • Búsqueda: Solr, Elasticsearch.
  • Calidad: PHPUnit, Behat, PHPStan, PHP CodeSniffer, Rector, Composer audit.
  • Infraestructura y CI/CD: Docker, Kubernetes, AWS, Azure, GitLab CI, GitHub Actions, Jenkins, Varnish, Cloudflare.
New Symfony applications and API-first backends

Nuevas aplicaciones Symfony y backends API-first

API Platform genera endpoints REST y GraphQL, documentación OpenAPI y salida JSON-LD/Hydra a partir de recursos anotados, lo que acorta la distancia entre un modelo de dominio y una API documentada y consumible. Además, Metadrop proporciona patrones de autenticación y autorización que incluyen OAuth2/OIDC, JWT, SAML SSO, permisos con ámbito de rol y grupo, y reglas de acceso por recurso.

Symfony Messenger traslada tareas pesadas o irregulares como importaciones, notificaciones y sincronización con terceros fuera del ciclo de solicitud y las coloca en colas, mientras que Mercure envía actualizaciones en tiempo real a navegadores y aplicaciones. Las API están cubiertas por pruebas automatizadas de contrato e integración, de modo que un frontend o una aplicación móvil consumidora pueda desarrollarse sobre una superficie estable y verificada. El destino del despliegue sigue la propia política de infraestructura del cliente: AWS, Azure, Google Cloud o Docker/Kubernetes autogestionado.

En un proyecto, Metadrop construyó un backend de API GraphQL y REST autenticado para una organización humanitaria global que opera en más de 50 países, cubriendo endpoints CRUD, gestión de grupos y flujos de correo de invitación, con conjuntos de pruebas de API automatizados sobre ambas interfaces.

Logo PHP

Migración de PHP heredado y actualizaciones de versiones principales de Symfony

Ambos caminos comienzan con el mismo entregable: una auditoría del código base existente que cubre el inventario de dependencias, el informe de obsolescencia, la cobertura de pruebas, la superficie de integración y un registro de riesgos específico para ese código. Las actualizaciones se ejecutan una versión principal a la vez, impulsadas por los mensajes de obsolescencia que emite el propio framework, una disciplina establecida e incremental en lugar de ejecutar dos frameworks en paralelo en producción.

Rector automatiza la parte mecánica de un salto de versión, PHPStan plantea problemas de tipado y cambios en la API lo antes posible durante la entrega, y las suites de PHPUnit y Behat protegen el comportamiento en cada paso. Cuando un código base heredado no tiene pruebas, se escriben pruebas de caracterización para las rutas críticas primero.

Las migraciones heredadas se dividen en fases por fragmento acotado, un área de dominio, una integración o una familia de pantallas a la vez, para que el sistema actual siga sirviendo tráfico mientras la funcionalidad se traslada. La estructura de URL, las redirecciones y las rutas indexadas se mapean y verifican antes y después de cada fase, de modo que la visibilidad en los buscadores se comprueba en lugar de asumirse. La migración de la versión de PHP suele acompañar a la actualización del framework, ya que un salto importante de Symfony normalmente implica una versión mínima de PHP, y ambas se planifican como una sola tarea.

Dónde está ahora el código baseRuta típicaQué lo protege
PHP personalizado, sin frameworkReconstrucción por fragmento acotado sobre la última versión LTS actual de Symfony, ejecutándose junto al sistema heredadoPruebas de caracterización en rutas críticas, migración por fases por fragmento
Framework interno abandonado o sin soporteModelo de dominio y datos migrados a Symfony + Doctrine; integraciones reimplementadas como serviciosEjecuciones en seco de la migración de datos sobre datos equivalentes a producción
Symfony 2.x o 3.xProgresión paso a paso a través de cada versión principal hasta la última LTSInformes de obsolescencia, conjuntos de reglas de Rector, PHPStan, suite de regresión por paso
Symfony 4.x o 5.xProgresión paso a paso hasta la última LTS, normalmente con un salto de versión de PHP en el mismo programaMismas compuertas por paso, más plan de reemplazo de dependencias y bundles
Última LTS actual, sin disciplina de actualizaciónAdopción de un ritmo de actualización mantenido bajo un contrato de soporteEscaneo automatizado de dependencias y seguridad en la IC
Drupal Maintenance - Corrective Maintenance

Mantenimiento y soporte a largo plazo de Symfony

Los retenedores de mantenimiento cubren parches de seguridad, actualizaciones de dependencias y versiones de PHP, monitorización, respuesta ante incidentes, ajuste de rendimiento y evolución de funcionalidades bajo un único acuerdo. Los objetivos de respuesta y resolución son contractuales, acordados por nivel de prioridad durante la incorporación en lugar de describirse en términos generales.

El análisis de dependencias y vulnerabilidades se ejecuta en CI mediante Composer audit, la base de datos de avisos de seguridad de PHP y las comprobaciones de seguridad propias de Symfony, de modo que un aviso se convierte en un parche programado en lugar de un descubrimiento durante un incidente. La observabilidad se configura también como parte de la incorporación: monitorización de aplicaciones, seguimiento de errores, perfilado y agregación de registros, para que las regresiones surjan de los datos en lugar de un informe de usuario.

La incorporación de un código base heredado o no documentado es un punto de partida habitual. La auditoría, la reproducción del entorno, la preparación de un conjunto de pruebas automatizadas y un runbook documentado preceden al trabajo con funcionalidades. Las relaciones con los clientes suelen durar 3 años o más, superando los compromisos activos con plataformas PHP más antiguos la marca de la década. Siempre que sea posible, la continuidad del equipo de entrega ayuda a mantener el contexto arquitectónico a lo largo del tiempo. Cuando un cliente desea retomar la entrega internamente, la transferencia de conocimiento y la formación del equipo forman parte del compromiso, y se entregan según lo acordado en el contrato.

Metadrop mantiene y evoluciona la plataforma de recaudación de fondos y donaciones de una ONG internacional de derechos de la infancia bajo una relación que se mantiene desde 2015, incluyendo una migración a PHP 8.4 que cubre el código personalizado y la cadena de herramientas de QA (análisis estático y pruebas automatizadas), trabajo con donaciones recurrentes y pasarelas de pago, y ajuste de rendimiento de Core Web Vitals.

Seguridad, cumplimiento normativo y gobierno

Flujos de datos alineados con el RGPD

El mapeo de base legal, la gestión de consentimiento, la minimización de datos en el modelo de dominio, las reglas de retención y las herramientas de derechos de los interesados se diseñan en la aplicación en lugar de añadirse posteriormente.

Preparado para los requisitos de NIS2

Una práctica de SDLC segura cubre cambios revisados por pares, análisis de dependencias y CVEs en el pipeline, separación de entornos, acceso con privilegios mínimos y un SLA de respuesta a vulnerabilidades, preparado para requisitos NIS2 en sectores regulados y organismos públicos.

Socio certificado ENS

Metadrop está certificado según el Esquema Nacional de Seguridad (ENS), un requisito en la contratación pública española y una evidencia de una postura de seguridad documentada en licitaciones de otros lugares.

WCAG 2.1 AA para interfaces Twig

Las interfaces de Symfony renderizadas en servidor se construyen con marcado semántico, patrones ARIA y navegación por teclado, auditadas de forma automática y manual. La WCAG 2.1 AA es la base legal de accesibilidad en la UE en la actualidad; la WCAG 2.2 AA se aplica como objetivo de calidad de diseño, sin presentarse como conformidad legal. El cumplimiento de un estándar por parte de una aplicación concreta depende del propio alcance, contenido y actividades de procesamiento del cliente, por lo que estas son declaraciones de preparación técnica y no asesoramiento legal.

Línea base de seguridad de aplicaciones

Protección contra CSRF y XSS, persistencia parametrizada mediante Doctrine, gestión de secretos, autorización basada en votantes de seguridad, limitación de velocidad, flujos de autenticación auditados y escaneo de dependencias en cada ejecución del pipeline.

Gobernanza técnica independiente

Las revisiones de arquitectura, las auditorías de dependencias y los puntos de control de publicación exponen el riesgo técnico durante el descubrimiento y antes de cada publicación, colaborando Metadrop como socio técnico del cliente en arquitectura, construcción, migración y soporte.

Qué determina el coste de un proyecto Symfony

Cuatro variables son las que más mueven el presupuesto de Symfony: el número de integraciones, la complejidad del dominio (flujos de trabajo, permisos, reglas de negocio), el volumen y la calidad de la migración de datos y la cobertura de pruebas en el código base existente. El estado del código legado importa tanto como el alcance, porque un código base no documentado y sin pruebas conlleva un trabajo de descubrimiento y caracterización que uno documentado no tiene. La cobertura de pruebas es una de las áreas que suele tener un mayor impacto en el cronograma de una actualización.

Metadrop cotiza por proyecto tras una consulta gratuita en lugar de publicar una tarifa fija, porque los precios varían según la seniority, el modelo de contratación y la duración del contrato. Una fase de auditoría o descubrimiento de pago está disponible como primer paso independiente, que produce un alcance, un registro de riesgos y un presupuesto que el cliente posee, sin obligación de continuar.

Modelos de contratación

Equipo dedicado

Un equipo de Metadrop (tech lead, desarrolladores senior y mid, QA, PM) trabajando según la hoja de ruta del cliente. Ideal para construcciones de varios trimestres y programas de migración.

Ampliación de plantilla

ingenieros con experiencia en Symfony y PHP añadidos a un equipo interno bajo la gestión del cliente. Ideal para una brecha de habilidades conocida.

Proyecto a precio fijo

Un entregable acotado con presupuesto y cronograma acordados. Ideal para una migración, actualización o MVP bien definidos.

Tiempo y materiales

entrega flexible con una tarifa diaria acordada. Ideal para alcances en evolución o trabajo de descubrimiento.

Retén de soporte

Un sobre mensual con objetivos de respuesta respaldados por SLA. Ideal para un sistema de producción ya en funcionamiento.

Cómo funciona un proyecto

  1. Descubrimiento y auditoría

    objetivos, limitaciones, mapa de integración, evaluación de la base de código y dependencias, registro de riesgos.
  2. Arquitectura y hoja de ruta

    arquitectura de servicios, modelo de datos, contrato de API, ruta de migración o actualización, lista de tareas priorizada.
  3. Entrega ágil en sprints de 2 semanas

    una demo, una retrospectiva y un backlog visible en cada sprint, bajo la práctica de Scrum y Kanban de Metadrop.
  4. Compuertas de calidad

    pruebas automatizadas, análisis estático, escaneo de seguridad y comprobaciones de accesibilidad antes de cada lanzamiento.
  5. Lanzamiento y traspaso

    pipeline de despliegue, runbook y documentación.
  6. Soporte y evolución

    mantenimiento bajo un SLA definido con una cadencia de actualización planificada.

Preguntas frecuentes

  • ¿Está Drupal construido sobre Symfony?

    Sí. Desde Drupal 8, Drupal se ha construido sobre componentes de Symfony, entre ellos HttpKernel, Routing, DependencyInjection, EventDispatcher, HttpFoundation, Serializer, Validator y Console. Por eso la experiencia en la creación de plataformas Drupal también proporciona experiencia al trabajar con los componentes principales de Symfony, y por qué una actualización importante de Drupal también es una actualización importante de Symfony.

  • ¿Symfony o Laravel para una aplicación empresarial?

    Symfony es adecuado para sistemas complejos y de larga duración: componentes desacoplados, configuración explícita, un ciclo predecible de LTS y una arquitectura de servicios que favorece el mantenimiento a largo plazo. Laravel apuesta por la convención y la rapidez en la entrega inicial, lo que lo hace idóneo para aplicaciones más pequeñas y con plazos de primera publicación más ajustados. Metadrop trabaja con ambos y recomienda uno u otro en cada proyecto durante la fase de descubrimiento, según la vida útil, la composición del equipo y la superficie de integración. Los servicios de Laravel se tratan por separado.

  • ¿Desde qué versiones de Symfony actualizas?

    Desde Symfony 2.x y 3.x en adelante, avanzando progresivamente a través de cada versión principal hasta la LTS actual, así como bases de código 4.x y 5.x. Las aplicaciones PHP heredadas sin framework o con un framework interno abandonado se tratan como migraciones en lugar de actualizaciones.

  • ¿Cuánto tiempo lleva una actualización de versión principal de Symfony?

    Una actualización típica de una sola versión principal de una aplicación de tamaño medio dura de 4 a 12 semanas, dependiendo del tamaño del código base, el número de paquetes de terceros y la cobertura de pruebas existente. Los saltos de varias versiones principales se planifican como pasos consecutivos, cada uno con su propio lanzamiento, en lugar de una única rama de larga duración. La auditoría del código base en la primera fase sustituye este rango por una estimación específica del proyecto antes de cualquier compromiso.

  • ¿Cuánto cuesta el desarrollo con Symfony?

    El coste depende del número de integraciones, la complejidad del dominio, el volumen de migración de datos y la cobertura de pruebas existente en el código base. Metadrop realiza un presupuesto por proyecto tras una consulta gratuita, y ofrece una auditoría de pago o una fase de descubrimiento como primer paso independiente, cuyo alcance y presupuesto conserva el cliente.
  • ¿Deberíamos usar API Platform o una API REST Symfony personalizada?

    API Platform es la vía más rápida cuando la API se asigna a un modelo de dominio, ya que genera endpoints REST y GraphQL, documentación OpenAPI y salida JSON-LD/Hydra a partir de las mismas definiciones de recurso. Una capa de controlador construida a mano se adapta mejor cuando la superficie de la API es pequeña, muy personalizada o está definida por un contrato externo que no sigue el modelo de recurso. Ambas son habituales en los proyectos de Metadrop, y la elección se realiza en la fase de arquitectura.

  • ¿Están tus aplicaciones Symfony preparadas para GDPR, WCAG y NIS2?

    Los flujos de datos conformes con el GDPR y la accesibilidad WCAG 2.1 AA forman parte de la línea base de entrega, con WCAG 2.2 AA aplicado como objetivo de calidad de diseño. La práctica de entrega está preparada para los requisitos de NIS2, y Metadrop cuenta con la certificación ENS para trabajo en el sector público español. Que una aplicación concreta cumpla con un estándar depende del alcance, el contenido y el procesamiento del cliente, por lo que esta declaración es técnica y no constituye asesoramiento legal.
  • ¿Puedes encargarte de una aplicación Symfony creada por otra persona?

    Sí. La incorporación a una base de código heredada comienza con una auditoría, la reproducción del entorno, la preparación de un conjunto de pruebas automatizadas y un runbook documentado antes de comenzar el trabajo de funcionalidades. Tras la incorporación, la aplicación pasa a un retenedor de soporte con objetivos de respuesta contractuales por nivel de prioridad.

Comienza tu proyecto Symfony con Metadrop

Entrega Symfony empresarial a través de arquitectura, construcción, backends de API Platform, migración heredada, actualizaciones de versiones principales y soporte con respaldo de SLA. Indica la versión que utilizas, el sistema que necesitas construir o el código que debe asumirse, y responderemos en un día laborable para planificar una consulta gratuita de 30 minutos con un ingeniero. Sin compromiso.
Escribe tu mensaje aquí...
He leído y acepto la política de privacidad respecto al tratamiento de datos.