gamernetwork/yolk-core

玩家网络PHP框架核心

v1.0 2015-07-24 13:23 UTC

This package is not auto-updated.

Last update: 2024-09-24 04:00:26 UTC


README

想为玩家网络工作吗? 我们正在招聘!

Yolk Core

Scrutinizer Code Quality

玩家网络PHP框架的轻量级核心。提供错误和异常处理以及常用的辅助函数。

要求

此库需要PHP 5.4或更高版本以及Yolk Contracts包(gamernetwork/yolk-contracts)。

安装

可以通过Composer安装和自动加载,名称为gamernetwork/yolk-core

或者,下载一个版本或克隆此存储库,并将\yolk命名空间添加到自动加载器中。

许可

Yolk Core是开源软件,使用MIT许可证。

快速开始

Yolk Core为代码块提供基本的异常和错误处理包装,无论是命令行脚本、完整的Web应用还是简单的函数。

使用Yolk运行代码,就像调用带有callable参数的静态run()方法一样简单。

use yolk\Yolk;

// Using a closure
Yolk::run(function() {
  echo "Hello World";
});

// Using a function name
function hello() {
  echo "Hello World";
}
Yolk::run('hello');

// Using an object...
class Foo {
  public static function hello() {
    echo "Hello World";
  }
  public function helloWorld() {
    echo "Hello World";
  }
  public function __invoke() {
    $this->helloWorld();
  }
}

// ...static callback
Yolk::run(['Foo', 'hello']);

// ...instance callback
$o = new Foo();
Yolk::run([$o, 'hello']);

// ...invokable object
Yolk::run($o);

错误和异常处理

Yolk Core提供默认的错误和异常处理器

  • 错误被转换为ErrorExceptions()并传递给异常处理器。
  • 异常会导致显示错误页面(对于Web脚本)或异常被输出到stdout(对于CLI脚本)

您可以通过传递给适当方法的调用可调用来覆盖默认处理器

use yolk\Yolk;

Yolk::setErrorHandler($callback);

Yolk::setExceptionHandler($callback);

调试标志

Yolk提供通过以下方式访问的调试标志

use yolk\Yolk;

// enabled/disable debug flag
Yolk::setDebug(true);

// Return current setting of debug flag
Yolk::isDebug();

调试标志的使用几乎完全留给客户端。框架内的唯一用途是

  • 确定是否显示详细错误页面(如果设置了调试标志)或简单静态错误页面
  • 如果未设置调试标志,则忽略对d()dd()丢弃函数的调用

默认简单静态错误页面可以被覆盖:通过传递路径和文件名到

use yolk\Yolk;

Yolk::setErrorPage($path_to_file);

变量丢弃

Yolk提供了一个增强的var_dump()实现,可以将详细变量信息以纯文本、HTML或终端(CLI)格式输出。

use yolk\Yolk;

/**
 * $var - any variable or constant
 * $format - one of null, Yolk::DUMP_TEXT, Yolk::DUMP_HTML, Yolk::DUMP_TERMINAL
 */
Yolk::dump($var, $format = null);

如果没有指定格式或为null,则Yolk将自动检测适当的输出 - DUMP_TERMINAL将在CLI环境中使用,而DUMP_HTML将在Web环境中使用。

Yolk还将定义两个用于访问变量丢弃功能的快捷函数

  • d() - 对每个传递的参数调用Yolk::dump()
  • dd() - 与d()相同,但在参数被丢弃后将调用die()

如果未设置调试标志,则这些快捷方法不做任何事情。

辅助函数

Yolk提供各种辅助函数,并且可以轻松添加更多。辅助函数作为静态类方法实现,并可通过传递类名到Yolk::registerHelper()方法(注册所有公共静态方法)或传递类和方法名到Yolk::addHelperMethod()(注册单个方法)进行注册。一旦注册,辅助函数可以通过对Yolk的静态方法调用进行调用。

use yolk\Yolk;

class MyHelper {
  public static function foo() {
    echo 'foo';
  }
  public static function bar() {
    echo 'bar';
  }
}

Yolk::registerHelper('\\MyHelper');

Yolk::foo();
Yolk::bar();

通用辅助函数

  • isCLI() - 确定脚本是否在CLI环境中运行

数组辅助函数

  • uniqueIntegers() - 返回一个唯一的整数数组
  • isTraversable() - 确定变量是否可以使用foreach迭代
  • isAssoc() - 确定数组是否为关联数组
  • filterObjects() - 过滤数组以得到特定类的实例
  • get() - 从数组、对象中返回一个项目,如果项目不存在则返回默认值
  • getNullItems() - 过滤数组以得到空值的项目
  • pluck() - 从对象数组中提取单个字段
  • sum() - 计算数组中指定项目的总和
  • min() - 计算数组中指定项目的最小值
  • max() - 计算数组中指定项目的最大值
  • implodeAssoc() - 将关联数组展开为键/值对的数组
  • makeComparer() - 创建用于排序多维数组的比较函数

日期/时间助手

  • makeTimestamp - 将值转换为时间戳
  • seconds() - 将包含一个或多个小时、分钟和秒的字符串表示转换为总秒数

字符串助手

  • parseURL() - 将URL解析为组件数组

  • randomHex() - 生成指定长度的随机十六进制字符串

  • randomString() - 生成指定长度的随机字符串

  • uncamelise() - 将驼峰式字符串转换为带有下划线的小写形式

  • slugify() - 将字符串转换为适合URL的格式

  • removeAccents() - 将带重音的字符转换为它们的普通对应字符

  • latin1() - 将UTF-8字符串转换为Latin1 (ISO-8859-1)

  • utf8() - 将Latin1 (ISO-8859-1)转换为UTF-8

  • ordinal() - 返回数字的序数后缀(st, nd, rd, th)

  • sizeFormat() - 将字节数转换为使用最大合适单位的人性化字符串

  • xssClean() - 从字符串中删除XSS漏洞

  • stripControlChars() - 从字符串中删除控制字符

变形助手

  • pluralise() - 确定单词的复数形式(仅限英语)
  • singularise() - 确定单词的单数形式(仅限英语)