From 6e35922d8e0dff96621dff592023f056cc69fbcf Mon Sep 17 00:00:00 2001 From: lacatoire Date: Sat, 4 Apr 2026 22:29:31 +0200 Subject: [PATCH] Add missing ssh2_auth_pubkey_file translation and fix EN-Revision hash --- appendices/reserved.constants.xml | 1 + .../attributes/allowdynamicproperties.xml | 53 ++++++- language/types/boolean.xml | 4 +- language/types/string.xml | 27 ++-- reference/ssh2/functions/ssh2-auth-pubkey.xml | 149 ++++++++++++++++++ 5 files changed, 212 insertions(+), 22 deletions(-) create mode 100644 reference/ssh2/functions/ssh2-auth-pubkey.xml diff --git a/appendices/reserved.constants.xml b/appendices/reserved.constants.xml index 9842536fd..31b046774 100644 --- a/appendices/reserved.constants.xml +++ b/appendices/reserved.constants.xml @@ -1,4 +1,5 @@ + + El atributo AllowDynamicProperties @@ -9,10 +9,19 @@
&reftitle.intro; - + Este atributo se utiliza para marcar clases que permiten propiedades dinámicas. - + + + + Aunque los atributos en sí no se heredan, el efecto del atributo + AllowDynamicProperties + se hereda. Las clases hijas de una clase marcada con este atributo también + permitirán propiedades dinámicas, incluso si no declaran el atributo + explícitamente. + +
@@ -35,12 +44,13 @@
&reftitle.examples; - + Las propiedades dinámicas están deprecadas a partir de PHP 8.2.0, por lo que usarlas sin marcar la clase con este atributo emitirá un aviso de deprecación. - - + + + AllowDynamicProperties con propiedad inexistente nonExistingProp = true; Deprecated: Creation of dynamic property DefaultBehaviour::$nonExistingProp is deprecated in file on line 10 ]]> - + + + AllowDynamicProperties con propiedad inexistente en clase heredada + + nonExistingProp = true; +$o2->nonExistingProp = true; +?> +]]> + + &example.outputs.82; + + + +
&reftitle.seealso; - Visión general de los atributos + Visión general de los atributos
diff --git a/language/types/boolean.xml b/language/types/boolean.xml index 02afe4964..e70a5acfd 100644 --- a/language/types/boolean.xml +++ b/language/types/boolean.xml @@ -1,5 +1,5 @@ - + Booleano @@ -100,7 +100,7 @@ if ($show_separators) { - los objetos internos que sobrecargan su comportamiento de casting en booleano. Por ejemplo: los objetos SimpleXML creados a partir de elementos vacíos sin atributos. + los objetos internos que sobrecargan su comportamiento de casting en booleano. Por ejemplo: los objetos SimpleXML creados a partir de elementos vacíos sin atributos, o los objetos GMP que representan el valor 0. diff --git a/language/types/string.xml b/language/types/string.xml index 85c309863..b353bc75b 100644 --- a/language/types/string.xml +++ b/language/types/string.xml @@ -1,5 +1,5 @@ - + Cadenas @@ -921,10 +921,13 @@ $arr = [ ]; // No funcionará, mostrará: Esto es { fantástico} -echo "Esto es { $great}"; +echo "Esto es { $great}" . PHP_EOL; // Funciona, mostrará: Esto es fantástico -echo "Esto es {$great}"; +echo "Esto es {$great}" . PHP_EOL; + +// Para mostrar llaves en la salida: +echo "Esto es {{$great}}" . PHP_EOL; class Square { public $width; @@ -935,29 +938,29 @@ class Square { $square = new Square(5); // Funciona -echo "Este cuadrado mide {$square->width}00 centímetros de ancho."; +echo "Este cuadrado mide {$square->width}00 centímetros de ancho." . PHP_EOL; // Funciona, las claves entre comillas solo funcionan con la sintaxis de llaves -echo "Esto funciona: {$arr['key']}"; +echo "Esto funciona: {$arr['key']}" . PHP_EOL; // Funciona -echo "Esto funciona: {$arr[3][2]}"; +echo "Esto funciona: {$arr[3][2]}" . PHP_EOL; -echo "Esto funciona: {$arr[DATA_KEY]}"; +echo "Esto funciona: {$arr[DATA_KEY]}" . PHP_EOL; // Al utilizar arrays multidimensionales, siempre use llaves alrededor de los arrays // cuando estén dentro de strings -echo "Esto funciona: {$arr['foo'][2]}"; +echo "Esto funciona: {$arr['foo'][2]}" . PHP_EOL; -echo "Esto funciona: {$obj->values[3]->name}"; +echo "Esto funciona: {$obj->values[3]->name}" . PHP_EOL; -echo "Esto funciona: {$obj->$staticProp}"; +echo "Esto funciona: {$obj->$staticProp}" . PHP_EOL; // No funcionará, mostrará: C:\directory\{fantástico}.txt -echo "C:\directory\{$great}.txt"; +echo "C:\directory\{$great}.txt" . PHP_EOL; // Funciona, mostrará: C:\directory\fantástico.txt -echo "C:\\directory\\{$great}.txt"; +echo "C:\\directory\\{$great}.txt" . PHP_EOL; ?> ]]> diff --git a/reference/ssh2/functions/ssh2-auth-pubkey.xml b/reference/ssh2/functions/ssh2-auth-pubkey.xml new file mode 100644 index 000000000..c259e195e --- /dev/null +++ b/reference/ssh2/functions/ssh2-auth-pubkey.xml @@ -0,0 +1,149 @@ + + + + + + + ssh2_auth_pubkey + Identificación utilizando una clave pública en una variable + + + + &reftitle.description; + + boolssh2_auth_pubkey + resourcesession + stringusername + stringpubkey + stringprivkey + stringpassphrase + + + Identificación utilizando una clave pública en una variable. + + + + + &reftitle.parameters; + + + session + + + Un identificador de conexión SSH, obtenido desde la función + ssh2_connect. + + + + + username + + + Nombre del usuario para autenticarse en el servidor remoto. + + + + + pubkey + + + Clave pública en formato OpenSSH. Debe parecerse a esto: + ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110 + + + + + privkey + + + Clave privada OpenSSH. Debe comenzar con: + -----BEGIN RSA PRIVATE KEY----- + + + + + passphrase + + + Si privkey está cifrado (y debe estarlo), + la frase de paso debe ser proporcionada. + + + + + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.examples; + + Identificación utilizando una clave pública + +'ssh-rsa')); +$publicKey = file_get_contents('/home/username/.ssh/id_rsa.pub'); +$privateKey = file_get_contents('/home/username/.ssh/id_rsa'); + +if (ssh2_auth_pubkey($connection, 'username', + $publicKey, + $privateKey, 'secret')) { + echo "Public Key Authentication Successful\n"; +} else { + die('Public Key Authentication Failed'); +} +?> +]]> + + + + + + &reftitle.notes; + + + La biblioteca libssh subyacente no soporta muy limpiamente las + autenticaciones parciales. Es decir, que si debe proporcionar a la + vez una clave pública y una contraseña, entonces parecerá como si + la función estuviera en error. En este caso particular, un error en esta + llamada puede simplemente significar que la autenticación no está aún terminada. + Debe ignorar este error y continuar con la llamada + ssh2_auth_password para terminar la autenticación. + + + + + + &reftitle.seealso; + + ssh2_auth_pubkey_file + + + + +