//tips
//基本情報理解
可変区画方式のコンピュータは、プログラムのモジュール単位に主記憶を割り当てる。
実際の主記憶より大きな容量を扱える仮想記憶のページング方式では、メモリへのアクセス要求があった際に、主記憶がその空間に割り当てられていない場合に、ページフォールトとなり、ページインを行うことで補助記憶から主記憶に内容を移す。
主記憶側に空きがない場合は、ページアウトを行うことで主記憶の内容を補助記憶に移し、空きを作り、そこに入れることになる。
Hadoopはビッグデータのデータ蓄積や分析を分散処理によって行うのに適したオープンソースによるミドルウェア。
RFIDは電波を利用し、微小なチップにデータを非接触で読み書きするシステム。
//shopify/unity
function.phpにてfunction shopify_call($token, $shop, $api_endpoint, $query = array(), $method = 'GET', $request_headers = array())の内容を理解できたので、念の為api_call_write_products.phpの中身も確認する。
まずは最初に先のfunctions.phpにてshopify_callが定義されているのかの確認。
require_once("inc/functions.php");
shopify_callの引数を用意。Content-typeはjsonでのリスポンスを希望。
$shop = "demo-shop";
$token = "SWplI7gKAckAlF9QfAvv9….;
$query = array(
"Content-type" => "application/json" // Tell Shopify that we're expecting a response in JSON format
);
引数の要素が揃ったので、商品情報を保持する/admin/products.jsonへのアクセスのreturnを下記から受け取る。
$products = shopify_call($token, $shop, "/admin/products.json", array(), 'GET');
Json形式でhttpへのリスポンスをphpの形に直す。
JSONから配列への変換にはjson_decodeを使用し、引数は下記のようになる。
json_decode(
string $json,
?bool $associative = null,
int $depth = 512,
int $flags = 0
): mixed
$associative: trueの場合は連想配列形式を返し、falseの場合はobujectクラスを返す(デフォルト:null or false)。
$depth:JSONデータのネストの深さの最大値 (デフォルト:512)
実際にどのようにjsonから配列になるのかを確認した方がわかりやすいので例を見つけてきた。
json:
<?php
$json = '{
"No": 2,
"プロフィール": {
"名前": "花子",
"年齢": "20",
"誕生日": "2001-06-17",
"趣味": [
"読書",
"映画鑑賞",
"旅行"
]
}
}';
上記のjsonに対して下記の処理。
$list = json_decode($json , true);
var_dump($list);
array (size=2)
'No' => int 2
'プロフィール' =>
array (size=4)
'名前' => string '花子' (length=6)
'年齢' => string '20' (length=2)
'誕生日' => string '2001-06-17' (length=10)
'趣味' =>
array (size=3)
0 => string '読書' (length=6)
1 => string '映画鑑賞' (length=12)
2 => string '旅行' (length=6)
$object = json_decode($json , false);
var_dump($object);
※こちらはオブジェクトクラスを返している。
object(stdClass)[1]
public 'No' => int 2
public 'プロフィール' =>
object(stdClass)[2]
public '名前' => string '花子' (length=6)
public '年齢' => string '20' (length=2)
public '誕生日' => string '2001-06-17' (length=10)
public '趣味' =>
array (size=3)
0 => string '読書' (length=6)
1 => string '映画鑑賞' (length=12)
2 => string '旅行' (length=6)
ここで、$products['response’]のjson内容を連想配列に変換し、最初の商品idも取得。
// Convert product JSON information into an array
$products = json_decode($products['response'], TRUE);
// Get the ID of the first product
$product_id = $products['products'][0]['id'];
最初の商品の情報を修正。
// Modify product data
$modify_data = array(
"product" => array(
"id" => $product_id,
"title" => "My New Title"
)
);
修正情報をURLの最後に足してHTTPにてPUTすることによりデータベースの内容を変更。
// Run API call to modify the product
$modified_product = shopify_call($token, $shop, "/admin/products/" . $product_id . ".json", $modify_data, 'PUT');
これによって得られた修正内容を取得している。
// Storage response
$modified_product_response = $modified_product['response'];