Composer: Opción de tipo recién agregada a RepositoryInterface :: search () rompe BC

Creado en 22 jun. 2016  ·  3Comentarios  ·  Fuente: composer/composer

Aquí está el cambio rotundo: https://github.com/composer/composer/commit/6a557e45b8295007db61e786736f04018fe5fe90#commitcomment -17966162
y el problema causado por él: francoispluchino / composer-asset-plugin # 230

los cambios fueron introducidos por el # 5454 que también causó otra ruptura, que se informa en el # 5456.

Mensaje de error después de actualizar el compositor:

Fatal error: Declaration of Fxp\Composer\AssetPlugin\Repository\AbstractAssetsRepository::search()
must be compatible with Composer\Repository\RepositoryInterface::search($query, $mode = 0, $type = NULL)
in /code/vendor/fxp/composer-asset-plugin/Repository/AbstractAssetsRepository.php on line 334

consulte francoispluchino / composer-asset-plugin # 230 para obtener más detalles.

Bug

Comentario más útil

En mi opinión, esto no está rompiendo per-se, solo rompe los complementos antiguos con la nueva versión, pero si el complemento se ajusta a la nueva versión, debería ser compatible con las versiones antiguas del compositor según https://3v4l.org/7OfIR ( agregar parámetros a una interfaz que implemente está bien, pero tener menos no lo es).

Podríamos simplemente eliminar el parámetro de la interfaz, lo que no debería romper ninguna funcionalidad y permite que los complementos antiguos funcionen bien. Luego podría agregarse en 2.0. Ese sería un enfoque más estrictamente BC.

Todos 3 comentarios

Sin embargo, el problema no se soluciona fácilmente. Estos cambios se aplicaron en la rama principal, donde las roturas de BC son aceptables. Sin embargo, dado que los complementos no pueden depender de una versión específica, sino que se limitan a ejecutarse en la versión que usted, el usuario, elija ejecutar, las cosas pueden romperse inesperadamente si decide usar la última instantánea en lugar de una versión estable.

Soy totalmente consciente de que el maestro puede romperse, está bien. Informé esto para que no se envíe en una versión sin realizar los cambios necesarios.

En mi opinión, esto no está rompiendo per-se, solo rompe los complementos antiguos con la nueva versión, pero si el complemento se ajusta a la nueva versión, debería ser compatible con las versiones antiguas del compositor según https://3v4l.org/7OfIR ( agregar parámetros a una interfaz que implemente está bien, pero tener menos no lo es).

Podríamos simplemente eliminar el parámetro de la interfaz, lo que no debería romper ninguna funcionalidad y permite que los complementos antiguos funcionen bien. Luego podría agregarse en 2.0. Ese sería un enfoque más estrictamente BC.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

tom-- picture tom--  ·  3Comentarios

indomtrading picture indomtrading  ·  3Comentarios

antoscarface picture antoscarface  ·  3Comentarios

ravanscafi picture ravanscafi  ·  3Comentarios

franz-josef-kaiser picture franz-josef-kaiser  ·  3Comentarios