kphp icon indicating copy to clipboard operation
kphp copied to clipboard

Refactor stream_functions to C++ style

Open NikOsint opened this issue 1 year ago • 1 comments

In this PR stream_functions struct is refactored as a base class with virtual functions.

Classes derived from stream_functions:

  • php_stream_functions
  • ssl_stream_functions
  • tcp_stream_functions
  • udp_stream_functions
  • file_stream_functions

Base class functions implementation just aborts KPHP - it is unexpected to call them. Functions implementations in derived classes either do the same if corresponding protocol does not support particular function, or are valid implementations if the protocol supports it. An array<string, bool> was added to the stream_functions struct to store supported functions and avoid throwing and handling exceptions.

NikOsint avatar Feb 01 '24 00:02 NikOsint

TODO Implement tests

NikOsint avatar Feb 02 '24 04:02 NikOsint