Open6

pvpVirtualbox最新化

中腰中腰

PHP8対応

修正

1.関数の型宣言

修正前 (行130あたり)

.phpvirtualbox-develop\endpoints\lib\vboxServiceWrappers.php
public function offsetExists($offset)

修正後

.phpvirtualbox-develop\endpoints\lib\vboxServiceWrappers.php
public function offsetExists($offset): bool

他も同様にする。

public function offsetUnset($offset): void
public function offsetGet($offset): mixed
public function rewind(): void
public function current(): mixed
public function key(): mixed
public function valid(): bool
public function count(): int

nextは別対応
#[\ReturnTypeWillChange]
public function next()

中腰中腰

VirtualBox7対応

セットアップ

1.最新のSDKをダウンロードして適用する。

VirtualBoxのダウンロードサイトにアクセスし、
「VirtualBox 7.0.2 Software Developer Kit (SDK)」からダウンロードする。

https://download.virtualbox.org/virtualbox/7.0.2/VirtualBoxSDK-7.0.2-154219.zip

  • 1-1.vboxServiceWrappers.php
    「VirtualBoxSDK-7.0.2-154219\sdk\bindings\webservice\php\lib\vboxServiceWrappers.php」を
    「phpvirtualbox-develop\phpvirtualbox-develop\endpoints\lib\vboxServiceWrappers.php」に上書きする。
  • 1-2.wsdl
    「VirtualBoxSDK-7.0.2-154219\sdk\bindings\webservice」にある
    vboxweb.wsdlとvboxwebService.wsdlを
    vboxweb-7.0.wsdlとvboxwebService-7.0.wsdlにリネームして、
    「phpvirtualbox-develop\endpoints\lib」に置く。6.1などが置いてあるがそのままにしておいて問題なし。

  • 1-3.config.php

修正前

.phpvirtualbox-develop\endpoints\lib\config.php
 define('PHPVBOX_VER', '6.1-0');

修正後

.phpvirtualbox-develop\endpoints\lib\config.php
define('PHPVBOX_VER', '7.0-0');

1-4.vboxconnector.php

変更前

.phpvirtualbox-develop\endpoints\lib\vboxconnector.php
 'audioAdapter' => array(
     'enabled' => $m->audioAdapter->enabled,
     'audioController' => (string)$m->audioAdapter->audioController,
     'audioDriver' => (string)$m->audioAdapter->audioDriver,

変更後

.phpvirtualbox-develop\endpoints\lib\vboxconnector.php
 'audioSettings' => array(
     'enabled' => $m->audioSettings->Adapter->enabled,
     'audioController' => (string)$m->audioSettings->Adapter->audioController,
     'audioDriver' => (string)$m->audioSettings->Adapter->audioDriver,
中腰中腰

レイアウト修正

画面レイアウトの修正 ・・・ 作業中

ここらへんね。

課題
  • フォルダ選択ダイアログ
     セキュリティの観点からブラウザの仕組みに入ってないから出来なさそう。
     -> phpならローカルフォルダを掘れそう。
中腰中腰

日本語対応

日本語対応の背景と調査

「Graphics Controller」が英語のままなので日本語にしようと思い、
languages\ja.xmlに追加すればいいと思ったが、そんな単純ではなかった。
languages\source\ja.datに追加が必要そう。構成を解析中

aはArray、sは文字列っぽい。a:1はArrayの中身が1つ。s:8は文字列が8桁。

Arrayの中身は項目+値の構成っぽい。
a:1{s:8:項目;a:204:値}となっていそう。
a:2であれば
{
  s:7:"comment";  ・・・Array[0]の項目
  s:25:"Language name, in English";  ・・Array[0]の値
  s:11:"translation";  ・・・Array[1]の項目
  s:8:"Japanese";  ・・・Array[1]の値
}

解析ツールを作ったところ、VBoxGlobalにビデオメモリーが入っているので、ここに入れればよさそう。

対応方法

できた

中腰中腰

開発メモ

Cache Busting対策

javascriptソースを変更しても反映されずに見落としたことがあった。
紛らわしいのでCache Bustingを施しておく。

変更前
phpvirtualbox-develop\index.html
変更後
phpvirtualbox-develop\index.php

index.php
<?php
 $phpvirtualboxJsDate = date('YmdHis', filemtime('./js/phpvirtualbox.js'));
 $dialogsJsDate = date('YmdHis', filemtime('./js/dialogs.js'));
?>

 中略

<script type="text/javascript" src="js/phpvirtualbox.js?<?php echo $phpvirtualboxJsDate ?>"></script>
 
<script type="text/javascript" src="js/dialogs.js?<?php echo $dialogsJsDate ?>"></script></script>
内部dataの確認方法

ブラウザのConsoleで確認できた。
「$('#vboxPane').data('vboxHostDetails')」などを出力可能。