ネットワーク処理・グッズメモ アフィリエイト

グッズメモ アフィリエイト・WordPressプラグインのソースコード記事の目次WordPress

DefaultRESTParameter.php

namespace goodsmemo\network;

/**
 * Description of DefaultRESTParameter
 *
 * @author Goods Memo
 */
class DefaultRESTParameter {

    private $keyword;

    public function getKeyword() {
	return $this->keyword;
    }

    public function setKeyword($keyword) {
	$this->keyword = $keyword;
    }

}

HTTPRequest.php

ネットワーク経由で、例えば商品情報を取得します。

namespace goodsmemo\network;

use goodsmemo\exception\HttpRequestException;

require_once GOODS_MEMO_DIR . "exception/HttpRequestException.php";

/**
 * Description of HTTPRequest
 *
 * @author Goods Memo
 */
class HTTPRequest {

    public static function getContents($url, $timeout = 10, $retryCount = 6) {

	$args = array('timeout' => $timeout);

	for ($i = 0; $i < $retryCount; $i++) {

	    if ($i >= 1) {
		sleep(1); //再試行の待ち時間(1秒)
	    }

	    /*
	     * WordPressのwp_remote_get関数を使う。
	     * PHPのfile_get_contents関数より、エラー処理をしやすいから。
	     */
	    $response = wp_remote_get($url, $args);

	    if (!is_wp_error($response) && $response["response"]["code"] == 200) {

		$contents = $response['body'];
		return $contents;
	    }
	}

	$scheme = parse_url($url, PHP_URL_SCHEME);
	$host = parse_url($url, PHP_URL_HOST);
	$path = parse_url($url, PHP_URL_PATH);
	$errorMessage = "HTTPリクエストの失敗:URL=[" . $scheme . "://" . $host . $path . "]";
	throw new HttpRequestException($errorMessage);
    }

    public static function makeQueryString($parameterMap) {

	ksort($parameterMap);

	$encodedParameterArray = array();
	foreach ($parameterMap as $key => $value) {

	    $oneParameter = rawurlencode($key) . "=" . rawurlencode($value);
	    array_push($encodedParameterArray, $oneParameter);
	}

	$queryString = join("&", $encodedParameterArray);
	return $queryString;
    }

}

URLInfo.php

namespace goodsmemo\network;

/**
 * Description of URLInfo
 *
 * @author Goods Memo
 */
class URLInfo {

    //http://php.net/manual/ja/function.parse-url.php
    //scheme
    private $hostname;
    private $path;

    public function getHostname() {
	return $this->hostname;
    }

    public function getPath() {
	return $this->path;
    }

    public function setHostname($hostname) {
	$this->hostname = $hostname;
    }

    public function setPath($path) {
	$this->path = $path;
    }

}

URLUtils.php

namespace goodsmemo\network;

use goodsmemo\network\URLInfo;

require_once GOODS_MEMO_DIR . "network/URLInfo.php";

/**
 * Description of URLUtils
 *
 * @author Goods Memo
 */
class URLUtils {

    public static function makeURLInfo($optionMap, $hostnameID, $pathID): URLInfo {

	$urlInfo = new URLInfo();

	$hostname = $optionMap[$hostnameID];
	$urlInfo->setHostname($hostname);

	$path = $optionMap[$pathID];
	$urlInfo->setPath($path);

	return $urlInfo;
    }

}
コンピューター
この記事をシェアする

【広告】WordPress 開発 」の関連商品

• Amazon.co.jp

エンジニアのためのWordPress開発入門 (Engineer's Library)

エンジニアのためのWordPress開発入門 (Engineer's Library)

Amazon 価格:3,218 円(2019年5月25日 10:25時点詳細はこちら)

著者:野島 祐慈, 菱川 拓郎, 杉田 知至, 細谷 崇, 枢木 くっくる

出版社:技術評論社

種別:単行本(ソフトカバー)

販売店:Amazon.co.jp

サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル

サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル

著者:宮内 隆行, 西川 伸一, 岡本 渉, 三好 隆之

出版社:SBクリエイティブ

種別:Kindle版

プラグインの開発から運用までを網羅※この電子書籍は、「固定レイアウト型」で配信されております。説明文の最後の「固定レイアウト型に関する注意事項」を必ずお読みください。CMSのデファクト・スタンダードである……

• 楽天市場

エンジニアのためのWordPress開発入門【電子書籍】[ 野島祐慈 ]

エンジニアのためのWordPress開発入門【電子書籍】[ 野島祐慈 ]

価格:3,218 円[税込](2019年5月25日 10:25時点)
送料込

販売店:楽天Kobo電子書籍ストア

【電子書籍なら、スマホ・パソコンの無料アプリで今すぐ読める!】
WordPressを使った開発案件は依然多く,それに携わるWebエンジニアも多数存在します。ただし,モダンな開発手法に慣れたWebエンジニアがWordP……

WordPress Web開発逆引きレシピ WordPress 4.x/PHP 7対応 プロが選んだ三ツ星レシピ ……

WordPress Web開発逆引きレシピ WordPress 4.x/PHP 7対応 プロが選んだ三ツ星レシピ ……

価格:3,024 円[税込](2019年5月25日 10:25時点)
送料込

ポイント:2 倍
✓開始日時2019-05-23 10:00
✓終了日時2019-05-27 09:59

販売店:楽天ブックス

【楽天ブックスならいつでも送料無料】
プロが選んだ三ツ星レシピ Programmer’s recipe 藤本壱 翔泳社ワードプレスウェブカイハツギャクビキレシピ ワードプレスヨンテンアックス ピーエイチピーセブンタイオ……

グッズ・メモランダム