techdivision / lang
提供基本PHP数据类型的Lang包实现。
Requires
- php: >=5.4.0
- herrera-io/annotations: 1.0.*
Requires (Dev)
- appserver-io/build: 0.1.*
- phpunit/phpunit: 3.7.*
README
介绍
此包提供基本PHP数据类型的实现。
安装
如果您想在应用程序中使用此库,可以通过将以下内容添加到您的 composer.json
来安装它,并在项目中运行 composer update
。
{ "require": { "techdivision/lang": "dev-master" }, }
使用
此包提供代表某些基本数据类型面向对象实现的类。
由于关于PHP和类型安全的讨论很多(现在仍然很多),我决定实现一个小型、真正基础的库,它将提供几乎所有项目中都需要的最基本的数据类型。说实话,我真的很喜欢像Java这样的语言提供的几乎所有美好可能性,但PHP不是Java,你总是需要找到一种在PHP环境中有意义的方式来实现类似的事情。
实现这些类的主要目的是使您的关键函数和方法类型安全,一方面可以通过它们用于类型提示,另一方面可以通过快速简单易用的数据验证机制。
正如您可能知道的那样,使用类型提示可能会稍微减慢您的代码,因此在使用它们时请小心,并始终关注通过定期运行性能测试可能带来的性能影响。
此库将提供的数据类型实现包括
- 对象
- 布尔值
- 整数
- 浮点数
- 字符串
以下示例将简要介绍每个类将提供的功能以及如何在您的代码中使用它。请注意,这些示例并不旨在有意义,它们只是为了给您一个可能的思路。
对象
Object
抽象类实现了一个类的基本表示。此库中的所有其他类都将其用作超类。
布尔值
使用 Boolean
实例进行比较或尝试用非布尔值实例化它。
// initialize a new Integer instance $bool = new Boolean(true); $bool->equals(new Boolean(false)); // false // throws a ClassCastException $invalid = new Boolean('aValue');
整数
以下是一些如何使用 Integer
类的示例
// initialize a new Integer instance $int = new Integer(17); // get the float value of the Integer echo $int->floatValue() . PHP_EOL; // 17.0 echo $int->stringValue() . PHP_EOL; // '17' // check that the two Integer instances are equal $int->equals(Integer::valueOf(new String('17'))); // true
浮点数
使用 Float
的示例显示了如何向实例添加值并打印浮点数
// initialize a new Float instance $float = new Float(10.005); $float->add(new Float(10.105)); // check the value echo $float->floatValue() . PHP_EOL; // 20.11
字符串
为了向您展示如何使用 String
类,我们将简单地连接实例
// initialize a new String instance $string = new String('value to'); // check that String was successfully concatenated echo $string->concat(new String(' search')) . PHP_EOL; // 'value to search'
是的,这些都是非常简单的示例,正如我之前所说,在大多数情况下,我会用这些类来处理像类型提示等简单事情。
如果您也想使用这些功能,请随意实现您自己的类型,并将 pull request 发送给我 :)
外部链接
- 文档位于 appserver.io
- 在 GitHub 上的文档
- 入门指南