Actualización a APS Conecta Gestión 26¶
Resumen¶
Esta página enumera los cambios de la versión 26 que afectan a las apps: el rango de appinfo/info.xml, el traslado de la sección de ajustes Groupware a Disponibilidad, la eliminación de Bootstrap, el fin de PHP 7.4 y la llegada de PHP 8.2, la migración a atributos nativos de PHP, el fin previsto de PSR-0 y las API añadidas, modificadas, obsoletas o eliminadas. Está dirigida a quienes desarrollan o mantienen apps.
Fuente: documentación de Nextcloud, «developer_manual/release_notes/previous/upgrade_to_26», versión 3ad9158, licencia CC BY 3.0; traducida y adaptada para APS Conecta Gestión.
Nota
Los cambios críticos se recopilaron en GitHub. Consultar el ticket original para ver los enlaces a las pull requests y a los tickets.
General¶
info.xml¶
Asegurarse de que el appinfo/info.xml de la app admita APS Conecta Gestión 26.
<dependencies>
<nextcloud min-version="23" max-version="26" />
</dependencies>
La sección de ajustes personales Groupware pasa a Disponibilidad¶
Hasta APS Conecta Gestión 25 existía una sección de ajustes Groupware con el ID groupware. A partir de APS Conecta Gestión 26, esta sección ya no existe. Los ajustes del servidor existentes se trasladaron a una nueva sección Disponibilidad/availability.
Si la app ofrece ajustes relacionados con groupware, comprobar si pueden mostrarse en la página Disponibilidad o si necesitan una nueva sección propia de la app.
Cambios de frontend¶
API eliminadas¶
OC.addTranslationsestaba obsoleto desde APS Conecta Gestión 17 y ahora se ha eliminado.El fondo de «iconos de apps» (https://github.com/nextcloud/server/blob/stable25/core/img/background.png y https://github.com/nextcloud/server/blob/stable25/core/img/background.svg) ya no se usa y se eliminará (solo se usaba en la página de inicio de sesión, donde ahora se usa el fondo de «nubes»).
Bootstrap eliminado: el bootstrap incluido solo se usaba desde hacía mucho tiempo para los tooltips, pero se incluía y, por lo tanto, estaba disponible globalmente. Como la versión incluida ha llegado al final de su vida útil (EOL), se decidió eliminarlo en lugar de introducir una actualización incompatible. Para cualquier tooltip se recomienda simplemente pasar al atributo HTML nativo
title=. (PR#36434
Cambios de backend¶
PHP 7.4¶
En esta versión se dejó de admitir PHP 7.4. Asegurarse de que la app sea compatible con PHP 8.0 o superior.
PHP 8.2¶
En esta versión se añadió la compatibilidad con PHP 8.2. Consultar las notas de versión de PHP sobre las nuevas obsolescencias.
Migración de las anotaciones PHPDoc a atributos nativos de PHP¶
APS Conecta Gestión 26 es compatible con PHP 8.0 y posteriores. Esto permite migrar de las anotaciones PHPDoc a los atributos nativos.
@UseSessiondebe reemplazarse por#[UseSession].@UseSessionse eliminará en una versión futura. Ver Sesiones y variables de sesión.
Eliminación prevista de la carga de clases PSR-0¶
APS Conecta Gestión todavía carga clases que siguen el estándar PSR-0, obsoleto y reemplazado desde hace tiempo. APS Conecta Gestión 26 es la última versión que registra un cargador de clases PSR-0 genérico. A partir de APS Conecta Gestión 27, las apps tienen que cambiar los nombres de los archivos de clase para que se ajusten a PSR-4 o incluir su propio cargador de clases (de composer) para los archivos PSR-0, o. (PR#36114
Parámetros de inyección de dependencias¶
Los parámetros del contenedor de la app con nombres en PascalCase AppName, UserId y WebRoot están obsoletos. Usar en su lugar las variantes en camelCase appName, userId y webRoot si se inyectan en alguna de las clases de la app.
API modificadas¶
OCP\Files\SimpleFS\ISimpleFile::getSize()ahora puede devolver un float (para admitir tamaños >2G en sistemas de 32 bits)OCP\Files\SimpleFS\InMemoryFile::getSize()ahora puede devolver un float (para admitir tamaños >2G en sistemas de 32 bits)Ya no es necesario llamar a
setParsedSubjectysetParsedMessageen las notificaciones y los eventos de actividad cuando se usan setRichSubject y setRichMessage: se calcula automáticamente una versión analizada. (PR#34807Se trasladó
ICreateFromString::handleIMipMessage(string $name, string $calendarData): void;a su propia interfaz,IHandleImipMessage(PR#34893Las firmas de los métodos de
OCP\AppFramework\Db\Entitycambiaron de la siguiente manera (ref):public static function fromParams(array $params) -> public static function fromParams(array $params): staticpublic static function fromRow(array $row) -> public static function fromRow(array $row): staticprotected function setter($name, $args) -> protected function setter(string $name, array $args): voidprotected function getter($name) -> protected function getter(string $name): mixedprotected function markFieldUpdated($attribute) -> protected function markFieldUpdated(string $attribute): void
Los middlewares pueden registrarse globalmente (ver Middlewares globales, PR#36310
API eliminadas¶
Se eliminó el método
OCP\BackgroundJob\IJobList::getAll(PR#36073Se eliminó la dependencia de terceros
php-ds/php-ds(PR#36198Se eliminó el método
OCP\Contacts\IManager::getAddressBooks(PR#34329Se eliminaron las constantes de nivel de registro de
OCP\Util(PR#34329Se eliminó la dependencia de terceros
nikic/php-parser(PR#36393Se eliminó
OCP\AppFramework\Db\Mapper, que estaba obsoleto. Se puede migrar fácilmente aOCP\AppFramework\Db\QBMapper, que hace lo mismo usando el constructor de consultas en lugar de consultas basadas en cadenas. (PR#34490Se eliminaron las clases obsoletas de
OCP\Dashboard(PR#35966
API añadidas¶
Nuevo
OCP\Authentication\Token\IProviderpara los proveedores de autenticación: se creó una nueva interfaz pública,OCP\Authentication\Token\IProvider, con un método invalidateTokensOfUser para invalidar todos los tokens de un usuario concreto.OC\Authentication\Token\ManagerimplementaOCP\Authentication\Token\IProvider. (PR#36033Cabecera
Auto-Submittedpara los correos electrónicos: ahora hay un nuevo método en la interfazOCP\Mail\IMessage,IMessage::setAutoSubmitted(). Con este método se puede indicar que un correo electrónico era un correo o una respuesta automáticos, para que los servidores de correo puedan detectar mejor si debe enviarse una respuesta de fuera de la oficina, almacenar o filtrar mejor los correos, etc. Los valores posibles están documentados en la interfazOCP\Mail\Headers\AutoSubmitted. (PR#36033Se añadió el método
OCP\BackgroundJob\IJobList::getJobsIterator(PR#36073)Nuevo evento
OCP\BeforeSabrePubliclyLoadedEvent, que se despacha en los endpoints WebDAV públicos (puede usarse igual queOCP\SabrePluginEvent, por ejemplo para inyectar plugins de Sabre adicionales en las apps) (PR#35789)
Obsolescencias¶
Se declaró obsoleto el método
OCP\BackgroundJob\IJobList::getJobs(PR#36073)La anotación de acción de controlador
@UseSessionestá obsoleta. Usar en su lugar el nuevo atributoUseSession(PR#36363Evento jQuery de notificaciones obsoleto: el evento
OCA.Notification.Actionde la app de notificaciones está obsoleto en favor de un evento del bus de eventosnotifications:action:executedcon (PR#728