web-dev-qa-db-fra.com

Lors de l'activation du plug-in, comment puis-je vérifier le bon mécanisme de transport?

Pour un plugin qui communique avec un autre endroit, j’entends que nous sommes supposés utiliser wp_remote_post et wp_remote_get au lieu de la bibliothèque Curl de PHP .

OK, mais existe-t-il un moyen rapide et approprié d’exécuter le plug-in pour vérifier que le système de transfert PHP/hôte d’un blog est installé? Je veux dire, je pourrais essayer un test POST, mais je pensais que WP pourrait avoir un mécanisme meilleur, plus rapide que je peux tester? Faire ce qui suit est inacceptable:

if (!function_exists('curl_exec')) {
    wp_die('The CURL API is not installed with PHP. You cannot use this plugin without that. Ask your web hosting provider to install it.');
}
1
Volomike

Je ne ferais pas mourir le plugin comme ça. Il suffit de vérifier cURL chaque fois que vous avez besoin de passer un appel ou de vous replier sur wp_remote_(post|get) (par exemple, écrivez une fonction wrapper qui se charge de la vérification et envoyez les données/en-têtes souhaités).

MAIS, si vous voulez vraiment désactiver le plugin si cURL n’est pas installé, vous pouvez utiliser un hook d’activation pour vérifier la fonction curl_exec et désactiver le plugin sinon.

<?php
register_activation_hook(__FILE__, 'wpse51312_activation');
function wpse51312_activation()
{
    if(!function_exists('curl_exec'))
    {
        // Deactivate the plugin
        deactivate_plugins(__FILE__);

        // Show the error page, Maybe this shouldn't happen?
        wp_die(
            __('You must enable cURL support to use INSERT PLUGIN NAME'),
            __('Error')
        );
    }
}

Pour ce que cela vaut, je pense que l’API HTTP essaie d’utiliser cURL si elle est disponible.

3
chrisguitarguy