2016-03-23 29 views
0

私は現金登録機と通信するプロジェクトに取り組んでいます。そのマシンには、DOTNETで書かれた独自のDLLがあります。私はPHPでプロジェクトを作成しています。これらのDOTNET DLLには通信のためのいくつかのメソッドがあります。そして私はそれらをPHPで呼びます。まず第一に、そのクラスのオブジェクトを作成します。あるPHPページから別のPHPページにDOTNETクラスオブジェクトを渡す

$abc = new DOTNET("FirstDotNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxx", "FirstDotNet.Class1"); 

次に、同じページのメソッドを呼び出します。

$abc->ConnectToMachine(); 
$abc->SignInCashier(); 
$abc->SendPrintItem(); 

同じページにあるものを呼び出すと問題はありませんが、印刷されます。しかし、別のページの最後のメソッドを呼び出すと、エラーが発生するので、印刷されません。

これらのメソッドは30秒かかるので、最初の2つのメソッドを何度も何度も呼び出す必要はありません。私は印刷するたびに長い時間です。

最初のページで作成したオブジェクトを別のページに渡して、他のページで同じオブジェクトのメソッドを使用し続けるにはどうすればよいですか。

+0

(メモリに、DB、ファイルを)それをシリアル化し、どこかに保存し –

+0

...または '$ _SESSION' –

+0

@u_mulderでご返信ありがとうございます。そのオブジェクトをシリアル化すると、文字列値が返されますか?そして、それをどのようにしてメモリに保存できますか?他のページでシリアル化を解除すると、他のマシンに作成された接続は失われますか? –

答えて

0

両方のページでセッションを開始する必要があります。ページ1はオブジェクト&を作成してセッションに格納します。ページ2は、セッションを開始します&オブジェクトを取得します。 DotNetのオブジェクトをセッションに保存できるかどうかはわかりませんが、できません。

ページ1:

<?php 
session_start(); 
$obj = new DOTNET("FirstDotNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxx", "FirstDotNet.Class1"); 
$_SESSION['object'] = $obj; 
?> 

ページ2:

<?php 
session_start(); 
echo $_SESSION['object']->PrintItem(); 
?> 
関連する問題