jitsu/util

PHP的通用工具

0.1.2 2016-05-07 08:01 UTC

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()

获取单例实例。

Singleton::__callStatic($name, $args)