Optimizar el desarrollo web con PHP y Laravel en 2026

Guía práctica para acelerar el desarrollo con PHP y Laravel: arquitectura, rendimiento, seguridad, pruebas, CI/CD y observabilidad. Enfoque B2B y accionable.

Man standing at a whiteboard planning UX design concepts in a modern office setting.

Aprovechar PHP y Laravel para optimizar el desarrollo de aplicaciones web ya no es solo una decisión tecnológica: en 2026 es una palanca de velocidad, calidad y control de costes para equipos B2B que entregan producto continuamente. Cuando el negocio exige iterar rápido, integrar sistemas y mantener seguridad y rendimiento, la combinación de PHP moderno y el ecosistema de Laravel aporta un camino pragmático. Además, PHP sigue siendo un pilar de la web: Laravel recuerda que PHP impulsa más del 75% de la web (https://laravel.com/learn/php-fundamentals/why-php).

Este artículo aterriza cómo usar Laravel para estandarizar arquitectura, acelerar el delivery y reducir riesgos: desde patrones de diseño y modelado de dominio hasta rendimiento con Octane, construcción frontend con Vite, pruebas automatizadas, CI/CD y observabilidad. El objetivo no es “usar más framework”, sino construir un sistema mantenible que permita a tu organización crecer sin que la complejidad te ahogue. Verás recomendaciones accionables, ejemplos y una checklist final para implementar cambios con orden.

Key Takeaways

  • Estandariza la arquitectura con Laravel (capas, límites de dominio y convenciones) para acelerar el desarrollo sin perder control.
  • Optimiza rendimiento con PHP 8 y opciones modernas como Octane + FrankenPHP, priorizando medición y cuellos de botella reales.
  • Asegura la base: validación, autorización, gestión de secretos, y prácticas de seguridad en rutas, archivos y dependencias.
  • Reduce regresiones con un enfoque de testing por capas (unit, feature, integración) y pipelines CI/CD consistentes.
  • Gana visibilidad operativa con observabilidad (errores, trazas, métricas) y una estrategia clara de logging, alertas y SLOs.

¿Por qué PHP y Laravel siguen siendo una apuesta sólida para aplicaciones web B2B?

Porque combinan adopción masiva, madurez operativa y una curva de entrega rápida: PHP mantiene una presencia dominante en la web y Laravel aporta convenciones para construir aplicaciones con menos fricción. En B2B, eso se traduce en time-to-market, facilidad de contratación y un ecosistema amplio de integraciones. La clave es apoyarse en PHP moderno y prácticas de ingeniería, no en “código rápido” sin estructura.

La relevancia de PHP no es anecdótica: Laravel destaca que PHP impulsa más del 75% de la web, lo que suele correlacionar con disponibilidad de proveedores, hosting, experiencia acumulada y herramientas maduras (https://laravel.com/learn/php-fundamentals/why-php). Para organizaciones B2B, esto reduce riesgo de plataforma y facilita integraciones con sistemas heredados. Además, Laravel ofrece un marco coherente para equipos medianos y grandes, con patrones repetibles y una comunidad activa.

Otro factor: el rendimiento y la expresividad del lenguaje han mejorado. En su material de fundamentos, Laravel explica que PHP 8 trajo mejoras significativas de rendimiento gracias a optimizaciones del motor central (https://laravel.com/learn/php-fundamentals/modern-php). En la práctica, esto habilita APIs más ágiles y backends con mejor latencia bajo carga, siempre que la arquitectura y la base de datos estén bien diseñadas.

¿Cómo diseñar una arquitectura Laravel que acelere el desarrollo sin generar deuda técnica?

Diseña una arquitectura “por límites” y no solo por carpetas: separa dominio, aplicación e infraestructura, define contratos claros y estandariza convenciones. Laravel permite empezar simple, pero conviene introducir capas cuando el producto crece: servicios de aplicación, políticas de acceso, validación consistente y repositorios donde aporte valor. La optimización real llega cuando el equipo puede cambiar piezas sin romper todo.

Capas recomendadas (pragmáticas) para equipos B2B

Un enfoque común y efectivo es: Presentación (controllers, requests), Aplicación (use cases/servicios), Dominio (entidades, reglas) e Infraestructura (Eloquent, colas, integraciones). No necesitas “DDD puro” para obtener beneficios: basta con que las reglas de negocio vivan fuera de controllers y que las integraciones externas estén aisladas. Esto facilita pruebas, refactors y onboarding.

  • Controllers delgados: orquestan, no contienen lógica de negocio.
  • Form Requests para validación y autorización temprana (evita duplicación).
  • Servicios de aplicación: un método por caso de uso, con inputs explícitos.
  • Dominio: reglas y cálculos en clases testeables (sin dependencias de framework).
  • Infraestructura: adaptadores para pagos, ERP, CRM y proveedores de email/archivos.

Convenciones que reducen fricción en equipos grandes

Optimizar desarrollo también es reducir decisiones repetidas. Define convenciones de nombres, estructura de módulos, estándares de respuesta API y manejo de errores. Alinea esto con tu práctica de code review y con linters/formatters para que la consistencia no dependa de la memoria del equipo. Si tu organización trabaja con múltiples productos, documenta estas reglas como “plantilla de proyecto” reutilizable.

¿Qué prácticas de PHP moderno mejoran rendimiento y mantenibilidad en Laravel?

Aprovecha PHP 8 y hábitos de ingeniería: tipado estricto cuando sea viable, DTOs para límites, uso disciplinado de colecciones, y perfiles de rendimiento antes de optimizar. PHP moderno aporta mejoras de rendimiento en el motor, pero la mayor ganancia suele venir de consultas eficientes, caché y reducción de I/O. La meta es un código más predecible y fácil de testear.

Tipado, DTOs y límites claros

En Laravel es tentador pasar arrays por todos lados. Para sistemas B2B con integraciones, conviene usar DTOs (objetos de transferencia) para entradas y salidas de casos de uso, y tipar retornos en servicios. Esto reduce errores silenciosos y hace el refactor más seguro. Mantén el tipado donde aporta valor: en límites (requests, servicios, integraciones) más que en cada línea interna.

Optimización basada en medición (no en intuición)

Antes de “micro-optimizar” PHP, identifica cuellos de botella: N+1 en Eloquent, consultas sin índices, serialización excesiva, llamadas a servicios externos y jobs lentos. Define métricas de latencia p95/p99 y tasas de error para endpoints críticos. Laravel facilita instrumentación, pero la disciplina es del equipo: un perfilado breve por sprint suele ser más rentable que semanas de cambios a ciegas.

¿Cómo optimizar el rendimiento en Laravel sin sacrificar productividad?

Optimiza en capas: primero base de datos y caché; después colas y asincronía; finalmente servidor y concurrencia. Laravel ofrece rutas claras: eager loading y paginación, caching de consultas y respuestas, jobs para tareas pesadas y opciones modernas como Octane. El criterio es simple: mejora lo que duele al usuario o al negocio, y valida con mediciones.

Base de datos: evita N+1 y diseña para lectura/escritura

En aplicaciones B2B, el rendimiento suele morir en SQL. Estandariza: usar eager loading, seleccionar columnas necesarias, paginar siempre, y revisar planes de ejecución en consultas críticas. Diseña índices alineados a patrones reales de consulta (no a suposiciones) y evita joins innecesarios en endpoints de alta frecuencia. Si necesitas agregaciones complejas, considera pre-cálculo con jobs y tablas de resumen.

Caché y colas: la dupla que libera al request/response

Para optimizar, separa lo que debe responder en milisegundos de lo que puede ocurrir en segundo plano. Cachea respuestas o fragmentos de UI cuando los datos cambian poco, y usa invalidación explícita al actualizar. Envía a colas tareas como generación de PDFs, sincronización con ERP, envío de emails y cálculo de reportes. La productividad aumenta porque el equipo deja de pelear con timeouts y reintentos manuales.

Octane y FrankenPHP: cuándo tiene sentido

Para cargas altas o latencias exigentes, Laravel Octane puede reducir overhead al mantener la app en memoria. En el ecosistema Laravel se ha destacado el uso con FrankenPHP, descrito como un servidor PHP moderno con capacidades web como early hints, gestión automática de certificados SSL y compresión Zstandard (https://laravel.com/blog/octane-frankenphp). Úsalo cuando tu perfilado indique que el arranque y el ciclo por request son un coste relevante, y cuando tengas disciplina para evitar estados globales inesperados.

¿Cómo mejorar la experiencia frontend con Laravel y Vite sin complicar el stack?

Usa Vite como estándar de construcción y desarrollo frontend, y define un contrato claro entre backend y UI (Blade, Inertia, o SPA). Vite ofrece un entorno de desarrollo extremadamente rápido y empaquetado para producción, según la documentación de Laravel (https://laravel.com/framework/docs/vite). El objetivo es acelerar ciclos de UI y mantener builds reproducibles.

Elegir el patrón UI: Blade, Inertia o SPA

No todas las apps necesitan una SPA completa. Para backoffices y portales B2B, Blade puede ser suficiente y muy productivo; Inertia suele ser un punto medio excelente cuando quieres UX moderna sin API separada; una SPA es útil si necesitas offline, interacciones complejas o múltiples clientes. Decide según mantenimiento, habilidades del equipo y necesidades reales de producto, no por tendencias.

Si estás evaluando frameworks del lado del cliente para un entorno corporativo, conviene contrastar criterios de soporte, gobernanza y rendimiento con una guía como Cómo elegir el mejor framework de JavaScript empresarial. La optimización del desarrollo no es solo velocidad de build: también es reducir cambios disruptivos y dependencias frágiles. Mantén el frontend alineado a tu cadencia de releases y a tu política de seguridad.

Bundling, versionado y despliegues seguros

Estandariza cómo se construyen y publican assets: builds deterministas, versionado (hashes), y separación de entornos. Vite ayuda a mantener un flujo rápido en desarrollo y un empaquetado optimizado para producción (https://laravel.com/framework/docs/vite). En B2B, donde hay ventanas de mantenimiento y SLAs, evita sorpresas: valida que el build sea reproducible en CI, no solo en el portátil.

¿Qué prácticas de seguridad son imprescindibles en PHP y Laravel para entornos empresariales?

Prioriza controles básicos bien ejecutados: validación y saneamiento de entradas, autorización por políticas, protección CSRF donde aplique, gestión de secretos y endurecimiento de dependencias. Laravel trae muchas protecciones por defecto, pero la seguridad se rompe en los bordes: integraciones, cargas de archivos, permisos mal definidos y configuraciones de despliegue. La optimización real es evitar incidentes que paralicen al negocio.

Autorización: políticas, roles y permisos con trazabilidad

En B2B casi siempre hay jerarquías: administradores, operadores, auditores, clientes y proveedores. Implementa políticas (policies) para centralizar reglas y evita checks dispersos en controllers. Registra decisiones de acceso en logs para auditoría cuando el riesgo lo requiera. Y si tu modelo de permisos crece, define un “lenguaje” interno (acciones, recursos, ámbitos) para que negocio y tecnología hablen lo mismo.

Gestión de secretos y configuración por entorno

No guardes secretos en repositorios ni los disperses en archivos locales. Usa un gestor de secretos o variables de entorno administradas por tu plataforma, rota credenciales y limita permisos por principio de mínimo privilegio. Define configuraciones por entorno (dev/staging/prod) y valida que “staging se parezca a producción” en lo esencial: colas, caché, certificados y límites de red. Esto reduce fallos en despliegues y brechas por configuraciones divergentes.

Subidas de archivos, webhooks e integraciones externas

Las cargas de archivos son una fuente clásica de incidentes: valida tipo, tamaño, extensión, y almacena fuera del directorio público cuando sea posible. Para webhooks, valida firmas, registra eventos y aplica idempotencia para evitar duplicados. En integraciones (pagos, ERP, CRM), encapsula clientes HTTP, aplica timeouts y reintentos con backoff, y protege endpoints con rate limiting. Esto no solo mejora seguridad: también mejora resiliencia.

¿Cómo integrar testing automatizado para acelerar releases en Laravel?

Implementa una pirámide de pruebas realista: unitarias para lógica de dominio, feature tests para flujos clave y pruebas de integración para puntos críticos (DB, colas, servicios externos simulados). En Laravel, el objetivo es reducir regresiones y permitir refactors frecuentes. La optimización del desarrollo llega cuando el equipo confía en desplegar con cambios pequeños y frecuentes.

Qué testear primero (priorización por riesgo)

Empieza por donde duele: autenticación/autorización, facturación, conciliaciones, cálculos de precios, y procesos asíncronos que afectan dinero o cumplimiento. Es mejor tener 30 pruebas que cubran lo crítico que 300 que validen detalles frágiles. Define “contratos” de API y eventos; si cambian, que fallen tests de forma clara. Esto reduce ciclos de QA manual y acelera el feedback.

Estrategia de datos de prueba y entornos

Estandariza factories y seeders para escenarios repetibles. Mantén fixtures pequeñas y específicas, y evita depender de datos “mágicos” en una base compartida. Para integraciones externas, usa fakes/mocks y contract tests cuando sea viable. En equipos B2B, esto facilita que producto, QA y backend hablen con ejemplos concretos y reproducibles.

¿Cómo implementar CI/CD en Laravel para desplegar más rápido y con menos riesgo?

Una cadena CI/CD efectiva para Laravel automatiza calidad (tests, lint, análisis), construye assets con Vite, ejecuta migraciones de forma segura y despliega con rollback. La optimización no es “desplegar sin pensar”, sino reducir trabajo manual repetitivo y estandarizar pasos. Con una pipeline consistente, el equipo puede entregar cambios pequeños con trazabilidad y control.

Pipeline mínima recomendada (por etapas)

  1. Build: instalar dependencias, cachear vendor/node_modules cuando aplique, compilar assets (Vite).
  2. Quality: ejecutar linters/formatters y análisis estático; fallar rápido ante errores.
  3. Tests: unit + feature; separar suites rápidas de suites lentas.
  4. Package: generar artefacto inmutable (imagen/container o paquete) para promover entre entornos.
  5. Deploy: despliegue con health checks, migraciones controladas y rollback planificado.

En despliegues empresariales, la parte delicada son migraciones y compatibilidad hacia atrás. Practica expand/contract: primero despliega cambios compatibles (nuevas columnas nullable, nuevas rutas), luego migra datos, y finalmente retira lo antiguo. Esto reduce ventanas de mantenimiento y evita caídas por cambios de esquema. Si tu organización opera con varios equipos, define “políticas de migración” como estándar de plataforma.

Entornos, feature flags y releases progresivos

Para optimizar sin riesgo, adopta feature flags para cambios grandes y releases progresivos (canary o por clientes). Esto permite validar con un subconjunto y revertir sin redeploy masivo. Documenta criterios de activación: por rol, por cuenta, por segmento o por región. Y conecta esto con métricas: si sube la tasa de error o cae conversión, desactiva el flag y analiza.

¿Cómo lograr observabilidad en Laravel: monitoreo, errores y depuración en producción?

La observabilidad efectiva combina captura de errores, trazas, métricas y logs correlacionados para detectar, diagnosticar y resolver incidentes rápido. Laravel puede integrarse con herramientas líderes como Sentry; en el blog oficial se describe a Sentry como una plataforma de depuración líder confiada por empresas Fortune 500 (https://laravel.com/blog/laravel-application-monitoring-debugging-with-sentry). La optimización real es reducir MTTR, no solo “ver dashboards”.

Qué instrumentar primero (lo que más impacta al negocio)

  • Errores no controlados: stack traces, contexto de usuario (anonimizado), versión de release.
  • Rutas críticas: latencia p95/p99, tasa de error, throughput, tamaño de respuesta.
  • Dependencias: tiempos de DB, caché, colas y servicios externos (HTTP).
  • Jobs: duración, reintentos, fallos por tipo, colas saturadas.
  • Eventos de negocio: pedidos creados, pagos fallidos, sincronizaciones pendientes.

Complementa la instrumentación con un modelo de operación: define SLOs (por ejemplo, disponibilidad de endpoints de facturación), umbrales de alertas y responsables de guardia. La disciplina aquí es clave: alertas accionables, no ruido. Y cuando ocurra un incidente, aplica postmortems sin culpa para mejorar sistemas, no para señalar personas.

Logs útiles: estructura, correlación y privacidad

Estandariza logs estructurados (JSON) y añade un correlation ID por request para seguir un flujo completo entre servicios. Registra lo necesario para depurar, pero evita datos sensibles (PII) sin protección. Define niveles (info/warn/error) con criterio y usa muestreo cuando el volumen sea alto. Una buena política de logs reduce tiempo de diagnóstico y costes de almacenamiento.

Ejemplos prácticos: 5 escenarios donde PHP y Laravel optimizan el desarrollo

Los beneficios se vuelven claros cuando aterrizan en escenarios reales de producto. A continuación se muestran cinco mini casos ilustrativos (hipotéticos) basados en patrones comunes B2B: integraciones, backoffice, catálogos y automatización. Cada ejemplo se centra en cómo Laravel ayuda a reducir tiempo de entrega, controlar complejidad y mejorar operación. Úsalos como plantilla para evaluar tu propio contexto.

Escenario 1 (ilustrativo): portal B2B con roles complejos

Una empresa crea un portal para distribuidores con permisos por sucursal y límites por catálogo. Con políticas centralizadas y una capa de servicios de aplicación, el equipo evita lógica duplicada en controllers y vistas. Se instrumentan decisiones de acceso en logs para auditoría. Resultado: cambios de reglas de permisos se implementan en horas, no en semanas, con menos regresiones.

Escenario 2 (ilustrativo): integración con ERP mediante colas

Un e-commerce B2B necesita sincronizar stock y precios desde un ERP con latencias variables. En lugar de bloquear requests, se diseñan jobs idempotentes y reintentos con backoff; se cachean respuestas de lectura frecuente. Se monitorizan fallos por tipo y se habilitan alertas cuando crece el backlog. Resultado: el frontend mantiene tiempos estables y el equipo opera la integración con visibilidad.

Escenario 3 (ilustrativo): backoffice con UI moderna sin API separada

Un equipo necesita un backoffice con tablas, filtros y formularios complejos, pero no quiere duplicar lógica en una API y una SPA. Opta por Blade o un enfoque tipo Inertia y usa Vite para desarrollo rápido y builds de producción. Se estandarizan componentes UI y validaciones con Form Requests. Resultado: menos superficie de mantenimiento y ciclos de entrega más cortos.

Escenario 4 (ilustrativo): performance bajo picos con Octane

Una app de reservas B2B sufre picos en campañas y su mayor coste es el overhead por request. Tras medir, el equipo prueba Octane y evalúa FrankenPHP por sus capacidades modernas (p. ej., compresión Zstandard y gestión automática de certificados SSL descritas en el ecosistema Laravel) (https://laravel.com/blog/octane-frankenphp). Resultado: mejor latencia en endpoints críticos, con disciplina extra para evitar estados compartidos.

Escenario 5 (ilustrativo): reducción de incidentes con observabilidad

Un SaaS B2B recibe quejas intermitentes: “a veces falla al exportar”. Se instrumentan jobs de exportación, se correlacionan logs por request y se capturan excepciones con una plataforma como Sentry, citada por Laravel como líder y confiada por Fortune 500 (https://laravel.com/blog/laravel-application-monitoring-debugging-with-sentry). Resultado: el equipo identifica un timeout externo y aplica reintentos, reduciendo incidentes repetidos.

¿Cómo organizar el equipo y el proceso para que Laravel realmente optimice el desarrollo?

La tecnología acelera solo si el proceso acompaña: estándares de código, definición de “done”, ownership por módulos y colaboración con producto/QA. Laravel facilita convenciones, pero necesitas acuerdos: cómo se revisa, cómo se versiona, cómo se prueba y cómo se despliega. La optimización sostenible es cultural: menos heroísmo, más sistema.

Definición de “hecho” (DoD) orientada a producción

Una DoD útil incluye: tests mínimos por tipo de cambio, documentación breve de decisiones, métricas/alertas cuando el cambio afecta operación, y revisión de seguridad si toca permisos o datos sensibles. En B2B, añade criterios de compatibilidad: migraciones seguras y rollback. Esto evita “terminado en dev” y reduce re-trabajo. La velocidad real viene de menos interrupciones, no de más prisa.

Para equipos con múltiples áreas, alinear prácticas ágiles y colaboración mejora el flujo. Puedes complementar esta parte con Desarrollo ágil en proyectos de TI: colaboración entre equipos para reforzar rituales, responsabilidades y comunicación. Cuando el proceso es consistente, Laravel se convierte en un acelerador y no en un “framework más” que cada quien usa a su manera.

Talento, costes y planificación de capacidad

Optimizar desarrollo también implica planificar contratación y retención. Si estás dimensionando equipo (backend, full-stack, DevOps), apóyate en datos de mercado para roles y ubicaciones. Un recurso útil para orientar rangos y expectativas es IT salary data by city and role. Con esa base, puedes decidir si conviene formar equipo interno, contratar partners o un modelo híbrido.

Recursos y partners: cuándo apoyarte en el ecosistema

Laravel y PHP tienen un ecosistema amplio, pero no siempre conviene construir todo in-house. Para picos de trabajo, auditorías de seguridad, performance tuning o migraciones, un partner especializado puede acelerar sin comprometer calidad. El criterio: externaliza lo que es transversal o puntual, y conserva dentro lo que es core del producto. La optimización es elegir bien dónde invierte tiempo tu equipo.

Si estás evaluando proveedores o necesitas comparar capacidades, puedes explorar un directorio con empresas verificadas para filtrar por especialidad y experiencia. Un punto de partida es el Verified IT company catalog. Úsalo para armar una shortlist y luego validar con pruebas técnicas pequeñas, referencias y un plan de entrega por hitos.

Para contexto general de servicios y enfoques, también es útil navegar por la categoría de Desarrollo web, especialmente si estás comparando alternativas de stack o modelos de entrega. En B2B, el partner correcto no solo “programa”: ayuda a diseñar el sistema operativo de ingeniería (calidad, despliegue, observabilidad). Esto suele ser donde se gana o se pierde la optimización.

Checklist de implementación: próximos pasos accionables (sin perder foco)

Para pasar de intención a ejecución, conviene implementar mejoras en oleadas: primero base técnica y estándares, luego rendimiento/operación, y por último optimizaciones avanzadas. Esta checklist está pensada para equipos B2B que ya tienen una app en Laravel o están por iniciarla. Adáptala a tu contexto, y mide resultados con métricas simples (latencia, errores, frecuencia de despliegue, tiempo de ciclo).

  1. Arquitectura: define capas/límites, convenciones de módulos y una guía de estructura de proyecto; crea una plantilla reutilizable.
  2. Calidad: configura linters/formatters, análisis estático y una DoD; exige tests mínimos en flujos críticos.
  3. Datos: audita endpoints con N+1, añade índices donde corresponda, aplica paginación y selecciona columnas necesarias.
  4. Asincronía: mueve tareas pesadas a colas; implementa idempotencia en jobs y webhooks; define reintentos y DLQ si aplica.
  5. Frontend: estandariza Vite para builds; decide patrón UI (Blade/Inertia/SPA) y documenta el contrato backend-UI.
  6. Seguridad: revisa políticas de autorización, gestión de secretos, validación de uploads y hardening de dependencias.
  7. CI/CD: automatiza build + tests + despliegue; practica migraciones expand/contract; define rollback y health checks.
  8. Observabilidad: instrumenta errores, latencia y jobs; correlaciona logs; establece alertas accionables y SLOs.
  9. Rendimiento avanzado: evalúa Octane + FrankenPHP solo después de medir; evita estados compartidos y valida bajo carga.
  10. Personas/proceso: asigna ownership por módulos, define runbooks de incidentes y ejecuta postmortems para aprendizaje.

Related reading

Tags

arquitectura-backenddesarrollo-webdevopsoptimizarphp-y-laravel

Artículos relacionados

Comparativa de plataformas eCommerce B2B: PrestaShop, WooCommerce y Shopify

Comparativa de plataformas eCommerce B2B: PrestaShop, WooCommerce y Shopify

Guía 2026 para elegir plataforma eCommerce B2B: PrestaShop, WooCommerce o Shopify. Ventajas, límites, costes, integraciones y checklist de implementación.

comparativa-plataformas-ecommerceecommerce-b2bprestashop+2
Optimización de SEO para sitios Symfony y Yii: guía 2026

Optimización de SEO para sitios Symfony y Yii: guía 2026

Estrategias de SEO técnico y de contenido para Symfony y Yii: velocidad, indexación, datos estructurados, arquitectura y automatización para ganar visibilidad.

mejorar-visibilidadoptimizacion-seo-symfony-y-yiiphp-frameworks+2

Estudio de caso: productividad B2B con Drupal en 2026

Caso práctico 2026: cómo una empresa B2B aumentó productividad con Drupal, integraciones y automatización. Lecciones, arquitectura y checklist aplicable.

automatizacion-b2bdrupal-2026implementacion-drupal+2
Escribir