Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loader is not scopable #360

Closed
veewee opened this issue Aug 19, 2022 · 1 comment
Closed

Loader is not scopable #360

veewee opened this issue Aug 19, 2022 · 1 comment
Assignees
Labels
Type: Bug Inconsistencies or issues which will cause an issue or problem for users or implementors.

Comments

@veewee
Copy link
Collaborator

veewee commented Aug 19, 2022

If you try to add psl to a phar (with box and scoper), the loader can not deal with scoped namespaces:

public const CONSTANTS = ['_HumbugBox0f71ea1f2338\\Psl\\Internal\\ALPHABET_BASE64', '_HumbugBox0f71ea1f2338\\Psl\\Internal\\ALPHABET_BASE64_URL', '_HumbugBox0f71ea1f2338\\Psl\\Internal\\CASE_FOLD', '_HumbugBox0f71ea1f2338\\Psl\\Math\\INT64_MAX', '_HumbugBox0f71ea1f2338\\Psl\\Math\\INT64_MIN', '_HumbugBox0f71ea1f2338\\Psl\\Math\\INT53_MAX', '_HumbugBox0f71ea1f2338\\Psl\\Math\\INT53_MIN', '_HumbugBox0f71ea1f2338\\Psl\\Math\\INT32_MAX', '_HumbugBox0f71ea1f2338\\Psl\\Math\\INT32_MIN', '_HumbugBox0f71ea1f2338\\Psl\\Math\\INT16_MAX', '_HumbugBox0f71ea1f2338\\Psl\\Math\\INT16_MIN', '_HumbugBox0f71ea1f2338\\Psl\\Math\\UINT32_MAX', '_HumbugBox0f71ea1f2338\\Psl\\Math\\UINT16_MAX', '_HumbugBox0f71ea1f2338\\Psl\\Math\\PI', '_HumbugBox0f71ea1f2338\\Psl\\Math\\E', '_HumbugBox0f71ea1f2338\\Psl\\Math\\INFINITY', '_HumbugBox0f71ea1f2338\\Psl\\Math\\NAN', '_HumbugBox0f71ea1f2338\\Psl\\Str\\ALPHABET', '_HumbugBox0f71ea1f2338\\Psl\\Str\\ALPHABET_ALPHANUMERIC', '_HumbugBox0f71ea1f2338\\Psl\\Password\\DEFAULT_ALGORITHM', '_HumbugBox0f71ea1f2338\\Psl\\Password\\BCRYPT_ALGORITHM', '_HumbugBox0f71ea1f2338\\Psl\\Password\\BCRYPT_DEFAULT_COST', '_HumbugBox0f71ea1f2338\\Psl\\Password\\ARGON2I_ALGORITHM', '_HumbugBox0f71ea1f2338\\Psl\\Password\\ARGON2ID_ALGORITHM', '_HumbugBox0f71ea1f2338\\Psl\\Password\\ARGON2_DEFAULT_MEMORY_COST', '_HumbugBox0f71ea1f2338\\Psl\\Password\\ARGON2_DEFAULT_TIME_COST', '_HumbugBox0f71ea1f2338\\Psl\\Password\\ARGON2_DEFAULT_THREADS', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\SEPARATOR'];
public const FUNCTIONS = ['_HumbugBox0f71ea1f2338\\Psl\\Arr\\at', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\concat', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\contains', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\contains_key', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\count', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\count_values', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\equal', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\fill', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\first', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\first_key', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\firstx', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\flatten', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\flat_map', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\flip', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\group_by', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\idx', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\keys', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\last', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\last_key', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\lastx', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\merge', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\partition', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\random', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\select_keys', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\shuffle', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\sort', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\sort_by', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\sort_by_key', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\sort_with_keys', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\sort_with_keys_by', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\unique', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\unique_by', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\values', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\drop', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\drop_while', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\slice', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\take', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\take_while', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\filter', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\filter_keys', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\filter_nulls', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\filter_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\map', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\map_keys', '_HumbugBox0f71ea1f2338\\Psl\\Arr\\map_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\associate', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\count_values', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\drop', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\drop_while', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\equal', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\filter', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\filter_nulls', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\filter_keys', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\filter_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\flatten', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\flip', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\from_entries', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\from_iterable', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\from_keys', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\group_by', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\map', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\map_keys', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\map_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\merge', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\partition', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\partition_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\pull', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\pull_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\reindex', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\select_keys', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\slice', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\sort', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\sort_by', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\sort_by_key', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\take', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\take_while', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\unique', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\unique_by', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\unique_scalar', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\diff', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\diff_by_key', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\intersect', '_HumbugBox0f71ea1f2338\\Psl\\Dict\\intersect_by_key', '_HumbugBox0f71ea1f2338\\Psl\\Fun\\after', '_HumbugBox0f71ea1f2338\\Psl\\Fun\\identity', '_HumbugBox0f71ea1f2338\\Psl\\Fun\\pipe', '_HumbugBox0f71ea1f2338\\Psl\\Fun\\rethrow', '_HumbugBox0f71ea1f2338\\Psl\\Fun\\when', '_HumbugBox0f71ea1f2338\\Psl\\Internal\\boolean', '_HumbugBox0f71ea1f2338\\Psl\\Internal\\type', '_HumbugBox0f71ea1f2338\\Psl\\Internal\\suppress', '_HumbugBox0f71ea1f2338\\Psl\\Internal\\box', '_HumbugBox0f71ea1f2338\\Psl\\Internal\\validate_offset', '_HumbugBox0f71ea1f2338\\Psl\\Internal\\validate_offset_lower_bound', '_HumbugBox0f71ea1f2338\\Psl\\Internal\\internal_encoding', '_HumbugBox0f71ea1f2338\\Psl\\Internal\\is_encoding_valid', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\all', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\any', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\apply', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\chain', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\chunk', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\chunk_with_keys', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\contains', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\contains_key', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\count', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\diff_by_key', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\drop', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\drop_while', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\enumerate', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\filter', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\filter_keys', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\filter_nulls', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\filter_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\first', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\first_key', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\flat_map', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\flatten', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\flip', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\from_entries', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\from_keys', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\is_empty', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\keys', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\last', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\last_key', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\map', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\map_keys', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\map_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\merge', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\product', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\pull', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\pull_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\random', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\range', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\reduce', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\reduce_keys', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\reduce_with_keys', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\reductions', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\reindex', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\repeat', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\reproduce', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\reverse', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\rewindable', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\search', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\slice', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\take', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\take_while', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\to_array', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\to_array_with_keys', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\to_iterator', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\values', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\zip', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\chunk', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\chunk_with_keys', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\concat', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\enumerate', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\fill', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\filter', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\filter_keys', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\filter_nulls', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\filter_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\flat_map', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\keys', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\partition', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\range', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\reductions', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\map', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\map_with_key', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\reproduce', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\reverse', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\shuffle', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\sort', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\sort_by', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\values', '_HumbugBox0f71ea1f2338\\Psl\\Vec\\zip', '_HumbugBox0f71ea1f2338\\Psl\\Math\\abs', '_HumbugBox0f71ea1f2338\\Psl\\Math\\base_convert', '_HumbugBox0f71ea1f2338\\Psl\\Math\\ceil', '_HumbugBox0f71ea1f2338\\Psl\\Math\\clamp', '_HumbugBox0f71ea1f2338\\Psl\\Math\\cos', '_HumbugBox0f71ea1f2338\\Psl\\Math\\div', '_HumbugBox0f71ea1f2338\\Psl\\Math\\exp', '_HumbugBox0f71ea1f2338\\Psl\\Math\\floor', '_HumbugBox0f71ea1f2338\\Psl\\Math\\from_base', '_HumbugBox0f71ea1f2338\\Psl\\Math\\log', '_HumbugBox0f71ea1f2338\\Psl\\Math\\max', '_HumbugBox0f71ea1f2338\\Psl\\Math\\max_by', '_HumbugBox0f71ea1f2338\\Psl\\Math\\maxva', '_HumbugBox0f71ea1f2338\\Psl\\Math\\mean', '_HumbugBox0f71ea1f2338\\Psl\\Math\\median', '_HumbugBox0f71ea1f2338\\Psl\\Math\\min', '_HumbugBox0f71ea1f2338\\Psl\\Math\\min_by', '_HumbugBox0f71ea1f2338\\Psl\\Math\\minva', '_HumbugBox0f71ea1f2338\\Psl\\Math\\round', '_HumbugBox0f71ea1f2338\\Psl\\Math\\sin', '_HumbugBox0f71ea1f2338\\Psl\\Math\\sqrt', '_HumbugBox0f71ea1f2338\\Psl\\Math\\sum', '_HumbugBox0f71ea1f2338\\Psl\\Math\\sum_floats', '_HumbugBox0f71ea1f2338\\Psl\\Math\\tan', '_HumbugBox0f71ea1f2338\\Psl\\Math\\to_base', '_HumbugBox0f71ea1f2338\\Psl\\Result\\wrap', '_HumbugBox0f71ea1f2338\\Psl\\Regex\\split', '_HumbugBox0f71ea1f2338\\Psl\\Regex\\matches', '_HumbugBox0f71ea1f2338\\Psl\\Regex\\replace', '_HumbugBox0f71ea1f2338\\Psl\\Regex\\replace_with', '_HumbugBox0f71ea1f2338\\Psl\\Regex\\replace_every', '_HumbugBox0f71ea1f2338\\Psl\\Regex\\Internal\\get_prec_error', '_HumbugBox0f71ea1f2338\\Psl\\Regex\\Internal\\call_preg', '_HumbugBox0f71ea1f2338\\Psl\\SecureRandom\\bytes', '_HumbugBox0f71ea1f2338\\Psl\\SecureRandom\\float', '_HumbugBox0f71ea1f2338\\Psl\\SecureRandom\\int', '_HumbugBox0f71ea1f2338\\Psl\\SecureRandom\\string', '_HumbugBox0f71ea1f2338\\Psl\\PseudoRandom\\float', '_HumbugBox0f71ea1f2338\\Psl\\PseudoRandom\\int', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\capitalize', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\capitalize_words', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\chr', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\chunk', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\compare', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\compare_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\contains', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\contains_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\ends_with', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\ends_with_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\length', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\lowercase', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\ord', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\pad_left', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\pad_right', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\replace', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\replace_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\replace_every', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\replace_every_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\reverse', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\rot13', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\search', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\search_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\search_last', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\search_last_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\shuffle', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\slice', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\splice', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\split', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\starts_with', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\starts_with_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\strip_prefix', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\strip_suffix', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\trim', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\trim_left', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\trim_right', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\uppercase', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\words', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\wrap', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\after', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\after_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\after_last', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\after_last_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\before', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\before_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\before_last', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Byte\\before_last_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\capitalize', '_HumbugBox0f71ea1f2338\\Psl\\Str\\capitalize_words', '_HumbugBox0f71ea1f2338\\Psl\\Str\\chr', '_HumbugBox0f71ea1f2338\\Psl\\Str\\chunk', '_HumbugBox0f71ea1f2338\\Psl\\Str\\concat', '_HumbugBox0f71ea1f2338\\Psl\\Str\\contains', '_HumbugBox0f71ea1f2338\\Psl\\Str\\contains_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\detect_encoding', '_HumbugBox0f71ea1f2338\\Psl\\Str\\convert_encoding', '_HumbugBox0f71ea1f2338\\Psl\\Str\\is_utf8', '_HumbugBox0f71ea1f2338\\Psl\\Str\\ends_with', '_HumbugBox0f71ea1f2338\\Psl\\Str\\ends_with_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\fold', '_HumbugBox0f71ea1f2338\\Psl\\Str\\format', '_HumbugBox0f71ea1f2338\\Psl\\Str\\format_number', '_HumbugBox0f71ea1f2338\\Psl\\Str\\from_code_points', '_HumbugBox0f71ea1f2338\\Psl\\Str\\is_empty', '_HumbugBox0f71ea1f2338\\Psl\\Str\\join', '_HumbugBox0f71ea1f2338\\Psl\\Str\\length', '_HumbugBox0f71ea1f2338\\Psl\\Str\\levenshtein', '_HumbugBox0f71ea1f2338\\Psl\\Str\\lowercase', '_HumbugBox0f71ea1f2338\\Psl\\Str\\metaphone', '_HumbugBox0f71ea1f2338\\Psl\\Str\\ord', '_HumbugBox0f71ea1f2338\\Psl\\Str\\pad_left', '_HumbugBox0f71ea1f2338\\Psl\\Str\\pad_right', '_HumbugBox0f71ea1f2338\\Psl\\Str\\repeat', '_HumbugBox0f71ea1f2338\\Psl\\Str\\replace', '_HumbugBox0f71ea1f2338\\Psl\\Str\\replace_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\replace_every', '_HumbugBox0f71ea1f2338\\Psl\\Str\\replace_every_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\search', '_HumbugBox0f71ea1f2338\\Psl\\Str\\search_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\search_last', '_HumbugBox0f71ea1f2338\\Psl\\Str\\search_last_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\slice', '_HumbugBox0f71ea1f2338\\Psl\\Str\\splice', '_HumbugBox0f71ea1f2338\\Psl\\Str\\split', '_HumbugBox0f71ea1f2338\\Psl\\Str\\starts_with', '_HumbugBox0f71ea1f2338\\Psl\\Str\\starts_with_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\strip_prefix', '_HumbugBox0f71ea1f2338\\Psl\\Str\\strip_suffix', '_HumbugBox0f71ea1f2338\\Psl\\Str\\to_int', '_HumbugBox0f71ea1f2338\\Psl\\Str\\trim', '_HumbugBox0f71ea1f2338\\Psl\\Str\\trim_left', '_HumbugBox0f71ea1f2338\\Psl\\Str\\trim_right', '_HumbugBox0f71ea1f2338\\Psl\\Str\\truncate', '_HumbugBox0f71ea1f2338\\Psl\\Str\\uppercase', '_HumbugBox0f71ea1f2338\\Psl\\Str\\width', '_HumbugBox0f71ea1f2338\\Psl\\Str\\wrap', '_HumbugBox0f71ea1f2338\\Psl\\Str\\after', '_HumbugBox0f71ea1f2338\\Psl\\Str\\after_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\after_last', '_HumbugBox0f71ea1f2338\\Psl\\Str\\after_last_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\before', '_HumbugBox0f71ea1f2338\\Psl\\Str\\before_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\before_last', '_HumbugBox0f71ea1f2338\\Psl\\Str\\before_last_ci', '_HumbugBox0f71ea1f2338\\Psl\\invariant', '_HumbugBox0f71ea1f2338\\Psl\\invariant_violation', '_HumbugBox0f71ea1f2338\\Psl\\sequence', '_HumbugBox0f71ea1f2338\\Psl\\Type\\map', '_HumbugBox0f71ea1f2338\\Psl\\Type\\mutable_map', '_HumbugBox0f71ea1f2338\\Psl\\Type\\vector', '_HumbugBox0f71ea1f2338\\Psl\\Type\\mutable_vector', '_HumbugBox0f71ea1f2338\\Psl\\Type\\array_key', '_HumbugBox0f71ea1f2338\\Psl\\Type\\bool', '_HumbugBox0f71ea1f2338\\Psl\\Type\\float', '_HumbugBox0f71ea1f2338\\Psl\\Type\\int', '_HumbugBox0f71ea1f2338\\Psl\\Type\\intersection', '_HumbugBox0f71ea1f2338\\Psl\\Type\\iterable', '_HumbugBox0f71ea1f2338\\Psl\\Type\\mixed', '_HumbugBox0f71ea1f2338\\Psl\\Type\\null', '_HumbugBox0f71ea1f2338\\Psl\\Type\\nullable', '_HumbugBox0f71ea1f2338\\Psl\\Type\\optional', '_HumbugBox0f71ea1f2338\\Psl\\Type\\positive_int', '_HumbugBox0f71ea1f2338\\Psl\\Type\\num', '_HumbugBox0f71ea1f2338\\Psl\\Type\\object', '_HumbugBox0f71ea1f2338\\Psl\\Type\\resource', '_HumbugBox0f71ea1f2338\\Psl\\Type\\string', '_HumbugBox0f71ea1f2338\\Psl\\Type\\non_empty_string', '_HumbugBox0f71ea1f2338\\Psl\\Type\\scalar', '_HumbugBox0f71ea1f2338\\Psl\\Type\\shape', '_HumbugBox0f71ea1f2338\\Psl\\Type\\union', '_HumbugBox0f71ea1f2338\\Psl\\Type\\vec', '_HumbugBox0f71ea1f2338\\Psl\\Type\\dict', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_array', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_arraykey', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_bool', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_callable', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_float', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_instanceof', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_int', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_iterable', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_nan', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_null', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_numeric', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_object', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_resource', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_scalar', '_HumbugBox0f71ea1f2338\\Psl\\Type\\is_string', '_HumbugBox0f71ea1f2338\\Psl\\Type\\literal_scalar', '_HumbugBox0f71ea1f2338\\Psl\\Json\\encode', '_HumbugBox0f71ea1f2338\\Psl\\Json\\decode', '_HumbugBox0f71ea1f2338\\Psl\\Json\\typed', '_HumbugBox0f71ea1f2338\\Psl\\Env\\args', '_HumbugBox0f71ea1f2338\\Psl\\Env\\current_dir', '_HumbugBox0f71ea1f2338\\Psl\\Env\\current_exec', '_HumbugBox0f71ea1f2338\\Psl\\Env\\get_var', '_HumbugBox0f71ea1f2338\\Psl\\Env\\get_vars', '_HumbugBox0f71ea1f2338\\Psl\\Env\\join_paths', '_HumbugBox0f71ea1f2338\\Psl\\Env\\remove_var', '_HumbugBox0f71ea1f2338\\Psl\\Env\\set_current_dir', '_HumbugBox0f71ea1f2338\\Psl\\Env\\set_var', '_HumbugBox0f71ea1f2338\\Psl\\Env\\split_paths', '_HumbugBox0f71ea1f2338\\Psl\\Env\\temp_dir', '_HumbugBox0f71ea1f2338\\Psl\\Password\\algorithms', '_HumbugBox0f71ea1f2338\\Psl\\Password\\get_information', '_HumbugBox0f71ea1f2338\\Psl\\Password\\hash', '_HumbugBox0f71ea1f2338\\Psl\\Password\\needs_rehash', '_HumbugBox0f71ea1f2338\\Psl\\Password\\verify', '_HumbugBox0f71ea1f2338\\Psl\\Hash\\hash', '_HumbugBox0f71ea1f2338\\Psl\\Hash\\algorithms', '_HumbugBox0f71ea1f2338\\Psl\\Hash\\equals', '_HumbugBox0f71ea1f2338\\Psl\\Hash\\Hmac\\hash', '_HumbugBox0f71ea1f2338\\Psl\\Hash\\Hmac\\algorithms', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\contains', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\contains_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\ends_with', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\ends_with_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\length', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\search', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\search_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\search_last', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\search_last_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\slice', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\starts_with', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\starts_with_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\strip_prefix', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\strip_suffix', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\after', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\after_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\after_last', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\after_last_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\before', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\before_ci', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\before_last', '_HumbugBox0f71ea1f2338\\Psl\\Str\\Grapheme\\before_last_ci', '_HumbugBox0f71ea1f2338\\Psl\\Encoding\\Base64\\encode', '_HumbugBox0f71ea1f2338\\Psl\\Encoding\\Base64\\decode', '_HumbugBox0f71ea1f2338\\Psl\\Encoding\\Hex\\encode', '_HumbugBox0f71ea1f2338\\Psl\\Encoding\\Hex\\decode', '_HumbugBox0f71ea1f2338\\Psl\\Shell\\escape_command', '_HumbugBox0f71ea1f2338\\Psl\\Shell\\escape_argument', '_HumbugBox0f71ea1f2338\\Psl\\Shell\\execute', '_HumbugBox0f71ea1f2338\\Psl\\Html\\encode', '_HumbugBox0f71ea1f2338\\Psl\\Html\\encode_special_characters', '_HumbugBox0f71ea1f2338\\Psl\\Html\\decode', '_HumbugBox0f71ea1f2338\\Psl\\Html\\decode_special_characters', '_HumbugBox0f71ea1f2338\\Psl\\Html\\strip_tags', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\Internal\\write_file', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\change_group', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\change_owner', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\change_permissions', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\copy', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\create_directory', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\create_file', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\delete_directory', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\delete_file', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\exists', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\file_size', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_group', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_owner', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_permissions', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_basename', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_directory', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_extension', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_filename', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\is_directory', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\is_file', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\is_symbolic_link', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\is_readable', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\is_writable', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\canonicalize', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\is_executable', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\read_directory', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\read_file', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\read_symbolic_link', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\append_file', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\write_file', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\create_temporary_file', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\create_hard_link', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\create_symbolic_link', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_access_time', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_change_time', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_modification_time', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\get_inode', '_HumbugBox0f71ea1f2338\\Psl\\IO\\Internal\\open', '_HumbugBox0f71ea1f2338\\Psl\\IO\\input_handle', '_HumbugBox0f71ea1f2338\\Psl\\IO\\output_handle', '_HumbugBox0f71ea1f2338\\Psl\\IO\\error_handle'];
public const INTERFACES = ['_HumbugBox0f71ea1f2338\\Psl\\DataStructure\\PriorityQueueInterface', '_HumbugBox0f71ea1f2338\\Psl\\DataStructure\\QueueInterface', '_HumbugBox0f71ea1f2338\\Psl\\DataStructure\\StackInterface', '_HumbugBox0f71ea1f2338\\Psl\\Exception\\ExceptionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\CollectionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\IndexAccessInterface', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\MutableCollectionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\MutableIndexAccessInterface', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\AccessibleCollectionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\MutableAccessibleCollectionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\VectorInterface', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\MutableVectorInterface', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\MapInterface', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\MutableMapInterface', '_HumbugBox0f71ea1f2338\\Psl\\Observer\\SubjectInterface', '_HumbugBox0f71ea1f2338\\Psl\\Observer\\ObserverInterface', '_HumbugBox0f71ea1f2338\\Psl\\Result\\ResultInterface', '_HumbugBox0f71ea1f2338\\Psl\\Math\\Exception\\ExceptionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Encoding\\Exception\\ExceptionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Type\\TypeInterface', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Exception\\ExceptionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Regex\\Exception\\ExceptionInterface', '_HumbugBox0f71ea1f2338\\Psl\\SecureRandom\\Exception\\ExceptionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Shell\\Exception\\ExceptionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\Exception\\ExceptionInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\Exception\\ExceptionInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\CloseHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\CloseReadHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\CloseReadWriteHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\CloseSeekHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\CloseSeekReadHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\CloseSeekReadWriteHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\CloseSeekWriteHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\CloseWriteHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\HandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\ReadHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\ReadWriteHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\SeekHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\SeekReadHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\SeekReadWriteHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\SeekWriteHandleInterface', '_HumbugBox0f71ea1f2338\\Psl\\IO\\WriteHandleInterface'];
public const TRAITS = [];
public const CLASSES = ['_HumbugBox0f71ea1f2338\\Psl\\Exception\\InvariantViolationException', '_HumbugBox0f71ea1f2338\\Psl\\DataStructure\\PriorityQueue', '_HumbugBox0f71ea1f2338\\Psl\\DataStructure\\Queue', '_HumbugBox0f71ea1f2338\\Psl\\DataStructure\\Stack', '_HumbugBox0f71ea1f2338\\Psl\\Iter\\Iterator', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\Vector', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\MutableVector', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\Map', '_HumbugBox0f71ea1f2338\\Psl\\Collection\\MutableMap', '_HumbugBox0f71ea1f2338\\Psl\\Exception\\InvalidArgumentException', '_HumbugBox0f71ea1f2338\\Psl\\Exception\\RuntimeException', '_HumbugBox0f71ea1f2338\\Psl\\Exception\\InvariantViolationException', '_HumbugBox0f71ea1f2338\\Psl\\Result\\Failure', '_HumbugBox0f71ea1f2338\\Psl\\Result\\Success', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\ArrayKeyType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\MapType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\MutableMapType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\VectorType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\MutableVectorType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\BoolType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\FloatType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\IntersectionType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\IntType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\IterableType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\MixedType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\NullType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\NullableType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\OptionalType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\PositiveIntType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\NumType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\ObjectType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\ResourceType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\StringType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\ShapeType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\NonEmptyStringType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\UnionType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\VecType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\DictType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\ScalarType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Internal\\LiteralScalarType', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Exception\\TypeTrace', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Exception\\AssertException', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Exception\\CoercionException', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Exception\\Exception', '_HumbugBox0f71ea1f2338\\Psl\\Type\\Type', '_HumbugBox0f71ea1f2338\\Psl\\Json\\Exception\\DecodeException', '_HumbugBox0f71ea1f2338\\Psl\\Json\\Exception\\EncodeException', '_HumbugBox0f71ea1f2338\\Psl\\Hash\\Exception\\ExceptionInterface', '_HumbugBox0f71ea1f2338\\Psl\\Hash\\Exception\\RuntimeException', '_HumbugBox0f71ea1f2338\\Psl\\Hash\\Context', '_HumbugBox0f71ea1f2338\\Psl\\Encoding\\Exception\\IncorrectPaddingException', '_HumbugBox0f71ea1f2338\\Psl\\Encoding\\Exception\\RangeException', '_HumbugBox0f71ea1f2338\\Psl\\SecureRandom\\Exception\\InsufficientEntropyException', '_HumbugBox0f71ea1f2338\\Psl\\Regex\\Exception\\InvalidPatternException', '_HumbugBox0f71ea1f2338\\Psl\\Regex\\Exception\\RuntimeException', '_HumbugBox0f71ea1f2338\\Psl\\Shell\\Exception\\FailedExecutionException', '_HumbugBox0f71ea1f2338\\Psl\\Shell\\Exception\\RuntimeException', '_HumbugBox0f71ea1f2338\\Psl\\Shell\\Exception\\PossibleAttackException', '_HumbugBox0f71ea1f2338\\Psl\\Math\\Exception\\ArithmeticException', '_HumbugBox0f71ea1f2338\\Psl\\Math\\Exception\\DivisionByZeroException', '_HumbugBox0f71ea1f2338\\Psl\\Filesystem\\Exception\\RuntimeException', '_HumbugBox0f71ea1f2338\\Psl\\IO\\Exception\\AlreadyClosedException', '_HumbugBox0f71ea1f2338\\Psl\\IO\\Exception\\RuntimeException', '_HumbugBox0f71ea1f2338\\Psl\\IO\\Exception\\BlockingException', '_HumbugBox0f71ea1f2338\\Psl\\IO\\Internal\\ResourceHandle', '_HumbugBox0f71ea1f2338\\Psl\\IO\\Internal\\ReadOnlyHandleDecorator', '_HumbugBox0f71ea1f2338\\Psl\\IO\\Internal\\WriteOnlyHandleDecorator', '_HumbugBox0f71ea1f2338\\Psl\\IO\\Writer', '_HumbugBox0f71ea1f2338\\Psl\\IO\\Reader', '_HumbugBox0f71ea1f2338\\Psl\\IO\\MemoryHandle'];

Resulting in:

PHP Fatal error: Uncaught Error: Failed opening required 'phar:///Projects/xxx/xxxx.phar/vendor/azjezz/psl/src/_HumbugBox0f71ea1f2338/Psl/Internal/constants.php' (include_path='.:/usr/local/Cellar/php/8.1.0/share/php/pear') in phar:///Projects/xxx/xxxx.phar/vendor/azjezz/psl/src/Psl/Internal/Loader.php:62
Stack trace:
#0 phar:///Projects/xxx/xxxx.phar/vendor/azjezz/psl/src/Psl/Internal/Loader.php(83): _HumbugBox0f71ea1f2338\Psl\Internal\Loader::load('_HumbugBox0f71e...', 1)
#1 phar:///Projects/xxx/xxxx.phar/vendor/azjezz/psl/src/Psl/Internal/Loader.php(51): _HumbugBox0f71ea1f2338\Psl\Internal\Loader::loadConstants()
#2 phar:///Projects/xxx/xxxx.phar/vendor/azjezz/psl/src/Psl/Internal/Loader.php(44):

I currently ignored psl from being scoped to overcome the issue.
What also is a bit annoying: if you add something to PSL, you need to also include it in the loader.

Maybe we could make the loading part a bit more dynamic. I was thinking somewhere along the lines of dynamically building the CONSTANTS, FUNCTIONS, INTERFACES, ... and cache them in a php file the first time you load psl.
During development on psl's git repo, we could skip this caching step so that any additional file is recognised automatically?

An alternative could be: convert the constants into a lookup dictionarry with key FQCN and value the path to the file.
That way it works more or less how composer works internally

WDYT?

@veewee veewee added the Type: Bug Inconsistencies or issues which will cause an issue or problem for users or implementors. label Aug 19, 2022
@azjezz
Copy link
Owner

azjezz commented Aug 19, 2022

and cache them in a php file the first time you load psl.

I don't think that's a good idea, i have worked on projects where vendor/ is set to be non-writable after deployment, so if that's the case, PSL will fail to create the file.

I'm open to other ideas that don't involve writing to files at runtime.

@veewee veewee mentioned this issue Aug 26, 2022
@veewee veewee closed this as completed Aug 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Bug Inconsistencies or issues which will cause an issue or problem for users or implementors.
Projects
None yet
Development

No branches or pull requests

2 participants