Cambios destacados en PrestaShop 8.0
Cambios destacados en PrestaShop 8.0
Soporte de PHP
PrestaShop 8.0 añade soporte para PHP 8.0 y PHP 8.1 y requiere al menos PHP 7.2.5.
Cambios notables
Los archivos Javascript de las páginas migradas en el Back Office ahora están escritos en TypeScript (cambio relacionado: #24791).
El soporte para los diccionarios de traducción heredados (por ejemplo: en.php, fr.php..., obsoletos en 1.7), ha sido eliminado de los controladores del núcleo. Ahora sólo los módulos pueden utilizar este sistema.
Todos los módulos presentes en el directorio de módulos durante el proceso de instalación serán instalados por defecto (excepto en la instalación basada en la web, donde se pueden deseleccionar algunos de ellos). Los módulos pueden utilizar Module::postInstall() para ejecutar código después de que la instalación de la tienda haya terminado (Leer más).
Twig ha sido actualizado a la versión 3. Las características obsoletas de la v1 y v2 ya no están disponibles.
Todos los scripts de actualización han sido eliminados del núcleo y trasladados al módulo de actualización.
El uso de un alias de gancho desencadenará un aviso de desaprobación.
Si PrestaShop detecta que un módulo se registra para un Hook pero no implementa un método para ello, se lanzará una excepción cuando esté en modo desarrollador. Este mensaje de error está pensado para ayudar a los desarrolladores a identificar errores durante el desarrollo del módulo y no debería afectar a los módulos en producción (Leer más).
Históricamente, el nombre del transportista por defecto era "0", ahora se llama "Click and collect".
Se ha eliminado la función de tipo de cambio en directo.
En Back office, se ha eliminado el archivo .rtlfix, aunque sigue siendo compatible con dichos archivos. Se recomienda portar los cambios (si los hay) dentro de las hojas de estilo rtl.scss.
La nueva API de distribución permite que los módulos proporcionen al administrador de módulos información sobre los módulos nuevos y actualizados procedentes de servicios remotos. PrestaShop 8 aprovecha esta nueva característica para gestionar las descargas y actualizaciones de los módulos del proyecto.
Debido a la compatibilidad con PHP 8.1 muchos métodos han declarado un tipo de retorno ahora.
La lógica para el inicio de sesión y el registro de los clientes se divide ahora entre dos controladores (RegistrationController, AuthController). Esto puede afectar a los temas y módulos de terceros, ya que la URL del registro ha cambiado.
Antes de que PrestaShop realice un pedido, ahora hay una solicitud adicional para ver si el número de productos en el carrito es todavía válido. Esto puede requerir que los módulos de pago de terceros implementen las comprobaciones en sus soluciones en consecuencia.
Debido a las nuevas características de gestión de la política de contraseñas, las soluciones de terceros que generan datos de clientes podrían requerir implementar cambios en consecuencia.
En algunos países, la carga de fuentes a través del servicio CDN de Google Fonts se ha considerado incompatible con el GDPR, por lo que estas fuentes están ahora integradas en el proyecto. Esto no debería afectar a tu trabajo, pero la difusión de este tema es importante.
Actualización de Symfony
Symfony se ha actualizado a la versión 4.4, que incluye una serie de cambios:
Los adaptadores de caché Doctrine ORM para Memcache y APC ya no están disponibles. La forma de gestionar la caché ha cambiado en Symfony 4.4 y memcache y apc no forman parte de los nuevos métodos de caché disponibles.
Los servicios que no se inyectan en la dependencia y que no se declaran como "públicos" se eliminan del contenedor
La opción "choices_as_values" de ChoiceType ya no existe, antes era verdadera por defecto
No es posible llamar a Form::isValid() si no se ha llamado antes a Form::isSubmitted()
La sintaxis bundlename:path:file.html.twig ahora no es válida, utilice @bundlename/path/to/file.html.twig
La sintaxis para _controller en las rutas ya no debe utilizar la notación corta (PrestaShopBundle:Admin/Error:enableDebugMode por ejemplo), utilice la ruta completa en su lugar: PrestaShopBundleControllerAdminErrorController::enableDebugModeAction
Los archivos de traducción se han movido de /app/Resources/translations/ a /translations/
La anotación @AdminSecurity is_granted() no debería tomar un array, utilice && o || explícitamente cuando compruebe múltiples derechos
Las extensiones de tipo de formulario deberían dejar de implementar la función pública getExtendedType() e implementar en su lugar la función estática pública getExtendedTypes(): iterable (leer más).
Nueva página de productos
Temas
Los temas que utilizan la información sobre herramientas de jQuery UI pueden necesitar ser actualizados para utilizar la información sobre herramientas de bootstrap (leer más);
Temas hijos
El ajuste use_parent_assets en theme.yml, cuando se establece en true, hace que el tema hijo cargue los activos de su padre (css, img y js) en lugar de los propios. Esta característica, no funcional e ignorada en la versión 1.7, ha sido corregida y mejorada en la versión 8.0. Para un mayor ajuste, un nuevo conjunto de variables child_*_url está disponible cuando la función está activa, permitiendo a los desarrolladores de temas acceder a las urls de los activos del padre y del hijo por separado.
Para mantener el comportamiento de la versión 1.7 y cargar los activos del tema hijo, use_parent_assets debe establecerse en false.
Tema clásico
En checkout/_partials/steps/payment.tpl, el formulario de pago ID se ha cambiado a payment-{$option.id}-form.
Los mensajes de estado vacíos se muestran ahora dentro del bloque (en lugar de la parte superior de la página) en páginas como el historial de pedidos, las direcciones, etc. (leer más).
El tema clásico ahora soporta la nueva política de contraseñas introducida aquí.
Interfaz de back office
La versión de Bootstrap utilizada en las páginas de Back office basadas en Symfony ha sido actualizada de 4.0 a 4.4.
Optimiza el SEO de tu Prestashop con el módulo PS IT Clean Urls
El módulo más utilizado para limpiar las Urls amigable Prestashop!
O elije la versión Advanced, en caso de necesidades más articuladas
Te puede interesar... Prestashop SEO Total Pack
¡Los 4 módulos imprescindibles para el SEO de tu Prestashop en un único paquete "Descuento Extra"!