jitsu / util
PHP的通用工具
Requires
- php: >=5.4.0
This package is auto-updated.
Last update: 2024-09-11 18:30:57 UTC
README
本包包含一系列用于PHP的通用工具。
本包是Jitsu项目的一部分。
安装
使用Composer安装此包
composer require jitsu/util
命名空间
类定义在命名空间Jitsu
下。
API
class Jitsu\Util
一组通用静态方法。
Util::str($var)
获取值的字符串表示形式。
返回内置函数print_r
的结果。
Util::repr($var)
获取值的PHP代码表示形式(作为字符串)。
返回内置函数var_export
的结果。
Util::p($args...)
将值打印到stdout。用于调试。
使用var_export
将所有参数打印到stdout,参数之间用空格分隔,并以换行符结束。返回最后一个参数,这使得将调用插入到表达式中间以打印中间值变得容易。
Util::template($filename, $variables)
在私有变量作用域内包含PHP文件。
此include
在其自己的变量作用域内包含一个文件,可以可选地用值数组填充。
Util::has($arr_or_obj, $key_or_name)
判断数组或对象是否具有某个键或属性。
与isset
不同,即使所讨论的值是null
,此函数也能正常工作。
Util::get($arr_or_obj, $key_or_name)
在数组中的键或对象中的属性下获取值。
可选地提供一个默认值,如果键或属性不存在则使用。
Util::set($arr_or_obj, $key_or_name, $value)
在数组中设置键或对象中的属性为某个值。
Util::hasKey($array, $key)
确定数组是否包含某个键。
即使值是null
也能工作。
Util::getKey($array, $key, $default = null)
从数组获取值,如果键不存在则返回默认值。
Util::hasProp($obj, $name)
确定对象是否具有某个名称的属性。
Util::getProp($obj, $name, $default = null)
获取对象中属性的值,如果对象没有该名称的属性则返回默认值。
class Jitsu\MetaUtil
用于自省和反射的实用工具。
MetaUtil::constantExists($name)
确定是否已定义了具有特定名称的常量。
MetaUtil::functionExists($name)
确定是否已定义了具有特定名称的函数。
MetaUtil::classExists($name)
确定是否已定义了具有特定名称的类。
MetaUtil::hasMethod($obj, $name)
确定对象是否具有具有特定名称的方法。
MetaUtil::hasStaticMethod($class_name, $name)
确定类是否具有具有特定名称的静态方法。
MetaUtil::callFunction($name, $args...)
调用具有特定名称的函数。
MetaUtil::callMethod($obj, $name, $args...)
在对象上调用具有特定名称的方法。
MetaUtil::callStaticMethod($class_name, $name, $args...)
从特定类中调用具有特定名称的静态方法。
MetaUtil::callConstructor($class_name, $args...)
调用具有特定名称的类的构造函数。
MetaUtil::applyFunction($name, $args)
用数组参数调用函数。
MetaUtil::applyMethod($obj, $name, $args)
用数组参数在对象上调用方法。
MetaUtil::applyStaticMethod($class_name, $name, $args)
调用带参数数组的一个静态方法。
MetaUtil::applyConstructor($class_name, $args)
调用带参数数组的类构造函数。
MetaUtil::typeName($value)
获取值的类或类型,以字符串形式。
MetaUtil::publicMethods($obj)
列举一个对象的所有公共方法。
MetaUtil::registerAutoloader($callback)
将回调函数添加到自动加载回调链中。
如果使用Composer,则不是必需的。
MetaUtil::autoloadNamespace($namespace, $dirs)
注册一个自动加载器,将命名空间映射到一个或多个文件系统目录。
如果使用Composer,则不是必需的。
class Jitsu\Util\Lazy
用于定义延迟实例化类的基类。
Lazy对象的行为就像另一个类的对象,但它们直到第一次访问它们的成员时才被实例化。
从此类派生并定义 const T
为代理类的名称。该子类是延迟类。
new Lazy()
$lazy->__call($name, $args)
$lazy->__get($name)
$lazy->__set($name, $value)
$lazy->__isset($name)
$lazy->__unset($name)
$lazy->__toString()
$lazy->__clone()
$lazy->__invoke()
$lazy->__debugInfo()
$lazy->__sleep()
$lazy->__wakeup()
$lazy->instantiate()
在不引用其成员的情况下实例化底层对象。
$lazy->isInstantiated()
判断底层对象是否已被实例化。
trait Jitsu\Util\Singleton
用于创建单例类的混入(mixin)。
重写 instantiate
方法以返回某个对象。该对象的全部方法都成为派生类的静态方法,且对象仅在这些方法被调用时才被实例化。
$singleton->instantiate() [protected]
重写此方法以返回单例实例。
Singleton::instance()
获取单例实例。