2011-12-14 2 views
2

Похожие: Apache Thrift: Serializing dataМогу ли я непосредственно сериализовать файл, используя библиотеку бережливости?

Привет ребята: Я отметить, что расширения бережливость PHP, кажется, не имеют класс TFileTransport. Это заставляет меня задаться вопросом: каков механизм написания объекта бережливости FILE в PHP?

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

ответ

1

Попробуйте простирающийся TPhpStream переопределив:

private static function inStreamName() { 
    if (php_sapi_name() == 'cli') { 
     return 'php://stdin'; 
    } 
    return 'php://input'; } 

и вы также, вероятно, потребуется изменить открытый метод, чтобы открыть файл для записи вашего выбора. В случае необходимости, здесь nice tutorial about php streams.

Если это не сработает, подумайте о том, как использовать TMemoryBuffer для сериализации в строку, и вы найдете способ вставить его в файл.

+0

Спасибо .... Итак ... Каково значение волшебной струны «cli»? – jayunit100

+0

, насколько я его читаю, он проверяет, запущен ли php в качестве командной строки (cli = интерфейс командной строки), если это так, используйте стандартный вход unix. В противном случае используйте входной поток, предоставляемый http-сервером. –