Hay que añadir el método getUrl()
a la clase MyFilesToken
, para que devuelva la ruta del archivo con el token ya incluído, en lugar de tener que añadirlo después, como está ahora:
$path = 'MyFiles/archivo.pdf';
$url = $path . '?myft=' . MyFilesToken::get($path, true);
$url = MyFilesToken::getUrl('MyFiles/archivo.pdf', true);
A tener en cuenta que a veces los programadores pondrán "MyFiles/XXX", otras pondrán "/MyFiles/XXX" y otras pondrán "XXX". La función debería tener en cuenta estos 3 casos, para evitar tener que ir a la documentación constantemente.
Como parte de la reestructuración del Core, todas las clases de Core/Base serán trasladas a Core, Template o Lib, donde corresponda. En este caso, como la clase MyFilesToken se usa en conjunto con el controlador Myfiles, que puede ser personalizado en plugins, la clase MyFilesToken debe ser trasladada a Core/Lib, para que también pueda ser personalizada en plugins.
Para mantener compatibilidad durante un par de versiones, se debe copiar la clase a Core/Lib y mantener el archivo igualmente en Core/Base, pero marcándolo como deprecated y heredando del archivo de Core/Lib. Con esto nos aseguramos de que los plugins tengan un par de versiones para hacer el cambio.
En el resto del core, cuando se haga uso de MyFilesToken, debe ser la nueva clase.
Se debe crear un test unitario para la clase MyFilesToken en la carpeta Test/Core/Lib. Este test debe tener métodos para probar los distintos métodos públicos de la clase, incluído el nuevo método getUrl()
.
06-10-2024 18:05:14 elguitarraverde_19045 ENVIADA - https://github.com/NeoRazorX/facturascripts/pull/1650 |