2016-03-23 3 views
0

Я работаю над проектом, который общается с кассовыми машинами. У этой машины есть собственные библиотеки DLL, которые были написаны на DOTNET. Я создаю проект на PHP. У этих DOTNET DLL есть несколько способов общения. И я называю их на PHP. Прежде всего создаю объект этого класса;Передача объекта класса DOTNET с одной страницы php на другой

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

Затем я вызываю методы на той же странице;

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

Если я вызываю их на той же странице, нет проблем, он печатает. Но если я вызываю последний метод на другой странице, он дает ошибку, поэтому не печатает.

Я не хочу вызывать первые два метода снова и снова на каждой странице, потому что эти методы занимают 30 секунд. Я долгое время хочу печатать.

Как передать объект, который я создал на первой странице, на другую страницу, чтобы продолжить использование методов одного и того же объекта на других страницах.

+0

сериализовать его и хранить его где-нибудь (Д.Б., файл, в памяти) –

+0

... или в '$ _SESSION' –

+0

@u_mulder Спасибо за ваш ответ. Если я сериализую этот объект, он возвращает строковое значение? И как я могу хранить его в памяти? Когда я не инициализирую его на другой странице, мое соединение, которое создается на другой машине, будет потеряно или нет? –

ответ

0

Обе страницы должны будут начать сеанс; страница 1 создаст объект & сохранит его в сеансе; страница 2 запустит сеанс &. Примечание. Я никогда раньше не использовал материал DotNet, поэтому я не знаю, можно ли хранить объекты DotNet в сеансах, но я не могу найти ничего, что говорит, что не может.

Page 1:

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

Page 2:

<?php 
session_start(); 
echo $_SESSION['object']->PrintItem(); 
?> 
Смежные вопросы