upgrade idiorm to php8.1-patched version (aaronpk/idiorm)

This commit is contained in:
Andrew Dolgov
2022-07-12 22:26:21 +03:00
parent 4b61618920
commit 80d3db1dcf
189 changed files with 17077 additions and 12739 deletions

View File

@@ -4,35 +4,56 @@ namespace Safe;
use Safe\Exceptions\ComException;
/**
* Generates a Globally Unique Identifier (GUID).
*
* A GUID is generated in the same way as DCE UUID's, except that the
* Microsoft convention is to enclose a GUID in curly braces.
*
* @return string Returns the GUID as a string.
* @throws ComException
*
*/
function com_create_guid(): string
{
error_clear_last();
$result = \com_create_guid();
if ($result === false) {
throw ComException::createFromPhpError();
}
return $result;
}
/**
* Instructs COM to sink events generated by
* comobject into the PHP object
* sinkobject.
* variant into the PHP object
* sink_object.
*
* Be careful how you use this feature; if you are doing something similar
* to the example below, then it doesn't really make sense to run it in a
* web server context.
*
* @param object $comobject
* @param object $sinkobject sinkobject should be an instance of a class with
* @param object $variant
* @param object $sink_object sink_object should be an instance of a class with
* methods named after those of the desired dispinterface; you may use
* com_print_typeinfo to help generate a template class
* for this purpose.
* @param mixed $sinkinterface PHP will attempt to use the default dispinterface type specified by
* the typelibrary associated with comobject, but
* @param mixed $sink_interface PHP will attempt to use the default dispinterface type specified by
* the typelibrary associated with variant, but
* you may override this choice by setting
* sinkinterface to the name of the dispinterface
* sink_interface to the name of the dispinterface
* that you want to use.
* @throws ComException
*
*/
function com_event_sink(object $comobject, object $sinkobject, $sinkinterface = null): void
function com_event_sink(object $variant, object $sink_object, $sink_interface = null): void
{
error_clear_last();
if ($sinkinterface !== null) {
$result = \com_event_sink($comobject, $sinkobject, $sinkinterface);
if ($sink_interface !== null) {
$result = \com_event_sink($variant, $sink_object, $sink_interface);
} else {
$result = \com_event_sink($comobject, $sinkobject);
$result = \com_event_sink($variant, $sink_object);
}
if ($result === false) {
throw ComException::createFromPhpError();
@@ -44,15 +65,15 @@ function com_event_sink(object $comobject, object $sinkobject, $sinkinterface =
* Loads a type-library and registers its constants in the engine, as though
* they were defined using define.
*
* Note that it is much more efficient to use the configuration setting to pre-load and
* Note that it is much more efficient to use the com.typelib-file php.ini setting to pre-load and
* register the constants, although not so flexible.
*
* If you have turned on , then
* If com.autoregister-typelib is turned on, then
* PHP will attempt to automatically register the constants associated with a
* COM object when you instantiate it. This depends on the interfaces
* provided by the COM object itself, and may not always be possible.
*
* @param string $typelib_name typelib_name can be one of the following:
* @param string $typelib typelib can be one of the following:
*
*
*
@@ -86,16 +107,16 @@ function com_event_sink(object $comobject, object $sinkobject, $sinkinterface =
*
* The type library name, e.g. Microsoft OLE DB ActiveX Data
* Objects 1.0 Library.
* @param bool $case_sensitive The case_sensitive behaves inversely to
* @param bool $case_insensitive The case_insensitive behaves inversely to
* the parameter $case_insensitive in the define
* function.
* @throws ComException
*
*/
function com_load_typelib(string $typelib_name, bool $case_sensitive = true): void
function com_load_typelib(string $typelib, bool $case_insensitive = true): void
{
error_clear_last();
$result = \com_load_typelib($typelib_name, $case_sensitive);
$result = \com_load_typelib($typelib, $case_insensitive);
if ($result === false) {
throw ComException::createFromPhpError();
}
@@ -108,20 +129,68 @@ function com_load_typelib(string $typelib_name, bool $case_sensitive = true): vo
* object, provided that it supports enough of the introspection interfaces,
* and that you know the name of the interface you want to display.
*
* @param object $comobject comobject should be either an instance of a COM
* @param object $variant variant should be either an instance of a COM
* object, or be the name of a typelibrary (which will be resolved according
* to the rules set out in com_load_typelib).
* @param string $dispinterface The name of an IDispatch descendant interface that you want to display.
* @param bool $wantsink If set to TRUE, the corresponding sink interface will be displayed
* @param string $dispatch_interface The name of an IDispatch descendant interface that you want to display.
* @param bool $display_sink If set to TRUE, the corresponding sink interface will be displayed
* instead.
* @throws ComException
*
*/
function com_print_typeinfo(object $comobject, string $dispinterface = null, bool $wantsink = false): void
function com_print_typeinfo(object $variant, string $dispatch_interface = null, bool $display_sink = false): void
{
error_clear_last();
$result = \com_print_typeinfo($comobject, $dispinterface, $wantsink);
if ($display_sink !== false) {
$result = \com_print_typeinfo($variant, $dispatch_interface, $display_sink);
} elseif ($dispatch_interface !== null) {
$result = \com_print_typeinfo($variant, $dispatch_interface);
} else {
$result = \com_print_typeinfo($variant);
}
if ($result === false) {
throw ComException::createFromPhpError();
}
}
/**
* Converts variant from a VT_DATE
* (or similar) value into a Unix timestamp. This allows easier
* interopability between the Unix-ish parts of PHP and COM.
*
* @param object $variant The variant.
* @return int Returns a unix timestamp.
* @throws ComException
*
*/
function variant_date_to_timestamp(object $variant): int
{
error_clear_last();
$result = \variant_date_to_timestamp($variant);
if ($result === null) {
throw ComException::createFromPhpError();
}
return $result;
}
/**
* Returns the value of value rounded to
* decimals decimal places.
*
* @param mixed $value The variant.
* @param int $decimals Number of decimal places.
* @return mixed Returns the rounded value.
* @throws ComException
*
*/
function variant_round($value, int $decimals)
{
error_clear_last();
$result = \variant_round($value, $decimals);
if ($result === null) {
throw ComException::createFromPhpError();
}
return $result;
}