{"id":231748,"date":"2022-12-30T19:51:00","date_gmt":"2022-12-30T16:51:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231748"},"modified":"2022-12-25T22:08:09","modified_gmt":"2022-12-25T19:08:09","slug":"travailler-avec-curl-wordpress-et-valet","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/travailler-avec-curl-wordpress-et-valet\/","title":{"rendered":"Travailler avec cURL, WordPress et Valet"},"content":{"rendered":"\n<p>Je fais partie de ces types qui utilisent le <code>1.1.1.1<\/code>et <code>1.0.0.1<\/code>comme <a href=\"https:\/\/1.1.1.1\/\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">serveurs DNS principaux<\/a>.<\/p>\n<p>Mais un probl\u00e8me qui vient avec l&rsquo;utilisation de ceux-ci comme mes principaux serveurs DNS (et peut-\u00eatre d&rsquo;autres, je ne sais pas car je ne les ai pas essay\u00e9s) est que lorsque j&rsquo;utilise cURL pour faire des requ\u00eates \u00e0 un serveur tiers, il se traduira souvent par un 404.<\/p>\n<p>Heureusement, il existe une solution facile.<\/p>\n<h2>cURL, WordPress et Valet<\/h2>\n<p>En bref, le simple changement consiste \u00e0 ajouter votre h\u00f4te local en tant qu&rsquo;entr\u00e9e DNS \u00e0 vos pr\u00e9f\u00e9rences r\u00e9seau.<\/p>\n<p>Si vous souhaitez voir les \u00e9tapes n\u00e9cessaires pour le faire et un exemple de code qui ne fonctionnera pas (avant le changement, bien s\u00fbr), alors lisez la suite.<\/p>\n<p>Notez que je vais utiliser des captures d&rsquo;\u00e9cran pour cela, mais si vous \u00eates \u00e0 l&rsquo;aise pour \u00e9diter des fichiers DNS sur votre syst\u00e8me d&rsquo;exploitation natif, cela fonctionnera tout aussi bien.<\/p>\n<h3>Mise \u00e0 jour DNS<\/h3>\n<p>Selon le syst\u00e8me d&rsquo;exploitation que vous utilisez, la fa\u00e7on dont vous arriverez \u00e0 modifier les param\u00e8tres DNS variera.<\/p>\n<p>Si vous utilisez macOS, l&rsquo;onglet R\u00e9seau et les options avanc\u00e9es de l&rsquo;adaptateur \u00e0 utiliser pour vous connecter \u00e0 Internet vous fourniront ce dont vous avez besoin pour mettre \u00e0 jour.<\/p>\n<p>Sur cet \u00e9cran, cliquez sur l&rsquo;onglet DNS puis ajoutez <code>127.0.0.1<\/code>-le en haut de votre liste.<\/p>\n<h3>Exemple de code<\/h3>\n<p>Quand il s&rsquo;agit de voir la raison pour laquelle il faut faire quelque chose comme \u00e7a, j&rsquo;ai toujours trouv\u00e9 <a href=\"https:\/\/gist.github.com\/tommcfarlin\/648da0d8f306d0f17984beeed80039c7#file-00-curl-example-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">utile de voir un exemple de code<\/a>. La principale raison est que cela nous donne quelque chose \u00e0 tester avant d&rsquo;apporter les modifications ci-dessus, puis apr\u00e8s avoir effectu\u00e9 les modifications ci-dessus.<\/p>\n<pre><code>&lt;?php\ntry {\n    $curl = curl_init();\n    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');\n    curl_setopt($curl, CURLOPT_URL, $url);\n    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);\n    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);\n    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);\n    $response = curl_exec($curl);\n\n    if (is_object($response)) {\n        return false;\n    }\n\n    if (false === $response) {\n        throw new Exception(curl_error($curl), curl_errno($curl));\n    }\n\n    curl_close($curl);\n} catch (Exception $e) {\n    trigger_error(\n        sprintf(\n            'Curl failed with error #%d: %s',\n            $e-&gt;getCode(),\n            $e-&gt;getMessage()\n        ),\n        E_USER_ERROR\n    );\n}<\/code><\/pre>\n<p>Cela dit, voici un peu de code que j&rsquo;utilisais qui ne fonctionne pas sans le DNS appropri\u00e9 configur\u00e9 ci-dessus\u00a0:<\/p>\n<p>Mais une fois que le DNS a \u00e9t\u00e9 mis \u00e0 jour, cela fonctionne tr\u00e8s bien. Et, pour \u00eatre clair, je pr\u00e9conise toujours <code>[wp_safe_remote_get](https:\/\/developer.wordpress.org\/reference\/functions\/wp_safe_remote_get\/)<\/code>et <code>[wp_safe_remote_post](https:\/\/developer.wordpress.org\/reference\/functions\/wp_safe_remote_post\/)<\/code>mais cette nature des projets dictera \u00e9galement les contraintes que nous avons.<\/p>\n<p>De plus, jetez un \u0153il \u00e0 ces fonctions, si vous en avez l&rsquo;occasion, pour voir ce qui se passe dans les coulisses. \ud83d\ude42<\/p>\n<h2>C&rsquo;est tout<\/h2>\n<p>Comme je l&rsquo;ai mentionn\u00e9 plus t\u00f4t, c&rsquo;est un processus facile. J&rsquo;ai trouv\u00e9 utile de partager \u00e0 la fois le type de code qui peut \u00eatre \u00e0 l&rsquo;origine du probl\u00e8me, donc si vous voyez quelque chose de similaire et obtenez un r\u00e9sultat similaire en utilisant cURL, WordPress et Valet, alors vous savez comment le r\u00e9soudre.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pourquoi mettre \u00e0 jour vos param\u00e8tres DNS lorsque vous travaillez avec cURL, WordPress et Valet peut r\u00e9soudre des probl\u00e8mes.<\/p>\n","protected":false},"author":1,"featured_media":236977,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,832,780,748,801,841,862],"tags":[1167],"class_list":["post-231748","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-logiciels-open-source","category-open-source-projektmanagement-2","category-php-3","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=231748"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231748\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/236977"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=231748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=231748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=231748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}