Perché WP_IMAGE_EDITOR non salva le immagini utilizzando l'API del filesystem?
-
07-11-2019 - |
Domanda
Ero nel processo controllando alcuni dei miei plugin esistenti per qualsiasi accesso al filesystem non sicuro, quando mi sono imbattuto Wp_image_editor'S save
funzione, che chiama _save
, che finalmente chiama make_image
(sotto). Wp_image_editor è stato rilasciato in WP 3.5
, mentre il Filesystem API
è in circolazione da allora WP 2.6
, quindi presumerei che il ragionamento sia correlato ai dettagli del caso d'uso piuttosto che non essere modificato per soddisfare nuovi standard.
protected function make_image( $filename, $function, $arguments ) {
if ( $stream = wp_is_stream( $filename ) ) {
ob_start();
} else {
// The directory containing the original file may no longer exist when using a replication plugin.
wp_mkdir_p( dirname( $filename ) );
}
$result = call_user_func_array( $function, $arguments );
if ( $result && $stream ) {
$contents = ob_get_contents();
$fp = fopen( $filename, 'w' );
if ( ! $fp )
return false;
fwrite( $fp, $contents );
fclose( $fp );
}
if ( $stream ) {
ob_end_clean();
}
return $result;
}
La mia domanda è: quali sono le ragioni per questo? Secondo Otto, L'accesso direttamente al filesystem è malvagio, quindi quali sono le eccezioni che lo fanno bene in questo caso? Voglio che i miei plugin si comportino nel miglior modo possibile, ma questo rende le migliori pratiche un po 'difficili da discernere.
Nessuna soluzione corretta