PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.20
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.20
1.10.20 1.10.19 1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 1.9.16 All 164 releases
woocommerce-pos / vendor / ramsey / collection / src / Tool / ValueExtractorTrait.php

ValueExtractorTrait.php in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.10.20, at vendor/ramsey/collection/src/Tool/ValueExtractorTrait.php

62 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * This file is part of the ramsey/collection library
5 *
6 * For the full copyright and license information, please view the LICENSE
7 * file that was distributed with this source code.
8 *
9 * @copyright Copyright (c) Ben Ramsey <[email protected]>
10 * @license http://opensource.org/licenses/MIT MIT
11 */
12
13 declare(strict_types=1);
14
15 namespace Ramsey\Collection\Tool;
16
17 use Ramsey\Collection\Exception\ValueExtractionException;
18
19 use function get_class;
20 use function is_object;
21 use function method_exists;
22 use function property_exists;
23 use function sprintf;
24
25 /**
26 * Provides functionality to extract the value of a property or method from an object.
27 */
28 trait ValueExtractorTrait
29 {
30 /**
31 * Extracts the value of the given property or method from the object.
32 *
33 * @param mixed $object The object to extract the value from.
34 * @param string $propertyOrMethod The property or method for which the
35 * value should be extracted.
36 *
37 * @return mixed the value extracted from the specified property or method.
38 *
39 * @throws ValueExtractionException if the method or property is not defined.
40 */
41 // phpcs:ignore SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint
42 protected function extractValue($object, string $propertyOrMethod)
43 {
44 if (!is_object($object)) {
45 throw new ValueExtractionException('Unable to extract a value from a non-object');
46 }
47
48 if (property_exists($object, $propertyOrMethod)) {
49 return $object->$propertyOrMethod;
50 }
51
52 if (method_exists($object, $propertyOrMethod)) {
53 return $object->{$propertyOrMethod}();
54 }
55
56 throw new ValueExtractionException(
57 // phpcs:ignore SlevomatCodingStandard.Classes.ModernClassNameReference.ClassNameReferencedViaFunctionCall
58 sprintf('Method or property "%s" not defined in %s', $propertyOrMethod, get_class($object)),
59 );
60 }
61 }
62