Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deprecated functions in php^ 8.1 #71

Open
BryanVillaDev opened this issue Feb 27, 2024 · 2 comments
Open

deprecated functions in php^ 8.1 #71

BryanVillaDev opened this issue Feb 27, 2024 · 2 comments

Comments

@BryanVillaDev
Copy link

BryanVillaDev commented Feb 27, 2024

En la librería epayco/epayco-php, específicamente en los archivos Client.php y Resources/Charge.php, se ha identificado un uso obsoleto en la declaración de parámetros opcionales antes de parámetros obligatorios en las firmas de métodos. Esto genera advertencias de tipo "Deprecated" en versiones de PHP 7.4 y posteriores, lo cual puede afectar la compatibilidad y el funcionamiento correcto de la librería en entornos de producción que utilicen estas versiones de PHP.

Archivos y líneas afectadas:

  1. En Client.php:

Problema: Parámetro opcional $data declarado antes del parámetro obligatorio $lang.
Línea afectada: 34

  1. En Resources/Charge.php:
    Problema: Parámetro opcional $options declarado antes del parámetro obligatorio $permission.
    Línea afectada: 57

Ejemplo de declaración incorrecta:
public function ejemplo($parametroOpcional = null, $parametroObligatorio) { // Código }

Solución sugerida:
Se recomienda modificar las firmas de los métodos para que todos los parámetros obligatorios se declaren antes de cualquier parámetro opcional. Esto asegura la compatibilidad con las versiones actuales y futuras de PHP, evitando las advertencias de obsolescencia.

Ejemplo de corrección:

public function ejemplo($parametroObligatorio, $parametroOpcional = null) { // Código }

Acción requerida:
Sería ideal actualizar estas firmas de métodos en la librería para cumplir con las buenas prácticas de desarrollo en PHP y evitar advertencias que pueden resultar en una mala experiencia para los desarrolladores que utilizan esta librería.

Screenshot 2024-02-26 203735

@BryanVillaDev BryanVillaDev changed the title depracted functions in php^ 8.1 deprecated functions in php^ 8.1 Feb 27, 2024
@jesussuarz
Copy link

confirmo que esto es tal cual lo indica @BryanVillaDev en 8.3 genera mismos errores. ¿cuando se tendra un update del sdk para arreglar estos problemas?

@neoacevedo
Copy link

En la librería epayco/epayco-php, específicamente en los archivos Client.php y Resources/Charge.php, se ha identificado un uso obsoleto en la declaración de parámetros opcionales antes de parámetros obligatorios en las firmas de métodos. Esto genera advertencias de tipo "Deprecated" en versiones de PHP 7.4 y posteriores, lo cual puede afectar la compatibilidad y el funcionamiento correcto de la librería en entornos de producción que utilicen estas versiones de PHP.

Archivos y líneas afectadas:

1. En Client.php:

Problema: Parámetro opcional $data declarado antes del parámetro obligatorio $lang. Línea afectada: 34

2. En Resources/Charge.php:
   Problema: Parámetro opcional $options declarado antes del parámetro obligatorio $permission.
   Línea afectada: 57

Screenshot 2024-02-26 203735

Si bien es cierto que el proyecto ya no pasa los estándares de PHP >= 8.1 encuentro raro el mensaje de error de la clase Charge ya que la firma del método revert de acuerdo al número de la línea publicado mantiene la estructura correcta, ambos parámetros son opcionales: public function revert($options = null, $permission = ""). Sería más como un error de validación de parte de la integración o se esté usando una versión muy anterior de la librería.

$epayco = new Epayco(
            [
                "apiKey" => $config['epayco.publicKey'],
                "privateKey" => $config['epayco.privateKey'],
                "lenguage" => "ES",
                "test" => $configs['epayco.testMode']
            ]
        );
$charge = $epayco->charge->create();

echo $charge->data->description;

En PHP 8.3 ejecuto el código anterior y obtengo el error desde el servicio web: Los datos son erróneos o son requeridos por favor compruebe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants