simplecomplex / utils
Dependency injection container abstraction; PHP CLI made easy; various basic utilities.
Requires
- php: >=7.0
- ext-ctype: *
- psr/container: ^1.0
- psr/log: ^1.0
Requires (Dev)
- phpunit/phpunit: ^6.5
Suggests
- ext-mbstring: PHP native multibyte features.
- simplecomplex/inspect: Utils' CLI command features do NOT work without Inspect, however CliEnvironment do.
This package is auto-updated.
Last update: 2025-03-29 00:33:06 UTC
README
Main features
Dependency injection container abstraction
As Wikipedia sums it up:
Ironically, dependency injection can encourage dependence on a dependency injection framework.
Dependency
is a simple tool for mitigating dependency of a particular injection container.
Wraps a PSR-11
or Pimple container or creates it's own lightweight PSR-11 container.
PHP CLI (command line/console) made easy
CliCommand
+ CliCommandInterface
specify a simple way of defining PHP CLI commands, and auto-generate --help output.
CliEnvironment
- resolves CLI input arguments and options
- maps to a
CliCommand
and executes it - lists --help of all defined commands
- finds document root
Utils' own CLI commands
# List all commands in the system, and their providers. php cli.php -h # One command's help. php cli.php utils-xxx -h # (RISKY) Execute included PHP script. php cli.php utils-execute include-file
Time
Time
extends the native DateTime class to fix shortcomings and defects,
and provide more, simpler and safer getters and setters.
Features:
- is stringable (sic!), to ISO-8601
- JSON serializes to string ISO-8601 with timezone marker
- freezable
- enhanced timezone awareness
- diff (diffConstant, that is) works correctly across differing timezones
- simpler and safer getters and setters
It's inspired by Javascript's Date class, and secures better Javascript interoperability
by stresssing and facilitating timezone awareness, and by JSON serializing to ISO-8601 timestamp string;
not a phoney Javascript object representing a PHP DateTime's inner properties.
Explorable
The abstract Explorable
class provides simple means for making protected members of an object readable,
and optionally mutable via dedicated methods.
Odds and ends
Unicode
abstracts mbstring.
Sanitize
delivers basic string sanitizers and converters.
PathList
hides the complexity of using FilesystemIterators.
Utils
parses ini strings/files, and delivers a range of other handy methods.
Bootstrap::prepareDependencies()
for easy dependency setup.
NB: Bootstrap::prepareDependencies() requires packages not listed among composer requirements:
Cache,
Config,
(optional) JsonLog,
Inspect,
Locale,
Validate.
Requirements
- PHP >=7.0
- PSR-11 Container
- PSR-3 Log
Development requirements
Suggestions
- PHP mbstring extension
- SimpleComplex Inspect