Cómo incluir Guzzle en un tema/complemento de wordpress

1 minuto de lectura

avatar de usuario
Crérem

¿Cómo puedo incluir Guzzle en un tema o complemento de wordpress? Dado que el tema/los complementos se distribuirán a usuarios no técnicos, no puedo pedirles que lo hagan a través de Composer.

He subido el paquete guzzle en una carpeta de temas en libs/resources/ y en functions.php y he definido este cargador automático solo para clases guzzle

spl_autoload_register( 'guzzle_autoloader' );
function guzzle_autoloader( $class_name ) {
  if ( false !== strpos( $class_name, 'GuzzleHttp' ) ) {
  $classes_dir = realpath( plugin_dir_path( __FILE__ ) ) . DIRECTORY_SEPARATOR . 'libs' . DIRECTORY_SEPARATOR.'resources'. DIRECTORY_SEPARATOR .'guzzle-master'. DIRECTORY_SEPARATOR .'src'. DIRECTORY_SEPARATOR ;

  $replace="GuzzleHttp\\";
  $class_file = str_replace($replace,'', $class_name);

  print 'request '.$classes_dir . $class_file.'</br>';

  require_once $classes_dir . $class_file.'.php';

  }
 }

Sin embargo, sigo recibiendo este error “llamada a la función indefinida GuzzleHttp\choose_handler()”

  • ¿Alguna vez resolviste esto?

    – Daniel

    19 de febrero de 2016 a las 16:01

avatar de usuario
Yassine Qoraiche

¿Qué pasa con la carga automática del compositor?

  1. Simplemente requiere el repositorio de empaquetador Guzzle con el compositor

     composer require guzzlehttp/guzzle
    
  2. Instalar

     composer install
    
  3. Simplemente cargue automáticamente Guzzle Classes en su complemento de WordPress

     require 'vendor/autoload.php';
     //use GuzzleHttp\Client;
    

  • Si planea distribuir el complemento con la biblioteca Guzzle, debe tener un prefijo/ámbito para evitar conflictos de espacio de nombres con otras bibliotecas o complementos. He creado este complemento para mostrar cómo se puede hacer. github.com/PHP-Prefijador/…

    – Aníbal Sánchez

    24 de septiembre de 2021 a las 10:18


¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad