phrity/o 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

phrity/o

Composer 安装命令:

composer require phrity/o

包简介

Consistent object representation of data types. Inheritance friendly implementation. Provides wrapper classes for array, object, string, float, int and bool, plus Queue and Stack collections.

README 文档

README

Build Status Coverage Status

O

Consistent object representation of data types.

Contains a number of traits that provide interface implementation and other functionality. These traits can be included in any class that require supported functionality.

Also provides ready-made wrapper classes for array, object, string, float, int and bool, plus Queue and Stack collections. Inheritance friendly implementation.

Installation

Install with Composer;

composer require phrity/o

Content by source type

Factory

The factory class converts scalars, arrays and objects into corresponding "O" instance.

$factory = new Factory();
$instance = $factory->convert([1, 2, 3]); // -> Arr instance

Classes

The following ready-made classes are available.

Class Source Implements
Arr array ArrayAccess Comparable Countable Equalable Iterator JsonSerializable Stringable Traversable
Boolean bool Comparable Equalable Stringable
Integer int Comparable Equalable Stringable
Number float Comparable Equalable Stringable
Obj object Comparable Equalable IteratorAggregate JsonSerializable Stringable Traversable
Stack array Comparable Countable Equalable IteratorAggregate Stringable Traversable
Str string Comparable Equalable Stringable
Queue array Comparable Countable Equalable IteratorAggregate Stringable Traversable

Traits

Traits are defined by source type. The following traits are available.

Trait Provides By source type
ArrayAccessTrait ArrayAccess Array
CoercionTrait Array Boolean Integer Number Object String
ComparableTrait Comparable Equalable Array Boolean Integer Number Object String
CountableTrait Countable Array
InvokableTrait Boolean Integer Number String
IteratorAggregateTrait IteratorAggregate Traversable Array Object
IteratorTrait Iterator Traversable Array
JsonSerializableTrait JsonSerializable Array Object
PropertyAccessTrait Object
QueueIteratorTrait IteratorAggregate Traversable Array
QueueTrait Array
StackIteratorTrait IteratorAggregate Traversable Array
StackTrait Array
StringableTrait Stringable Array Boolean Integer Number Object String
TypeTrait Array Boolean Integer Number Object String

Examples

Brief examples of classes below.

Scalar types

$str = new Str('hello world');
$str(); // Getter
$str('world'); // Setter

$int = new Integer(1234);
$int(); // Getter
$int(5678); // Setter

$num = new Number(12.34);
$num(); // Getter
$num(56.78); // Setter

$bool = new Boolean(true);
$bool(); // Getter
$bool(false); // Setter

Complex types

$array = new Arr([1, 2, 3]);
$array[] = 7; // ArrayAccess support
count($array); // Countable support
foreach ($array as $key => $value) {} // Iterator support
$array->equals(new Arr([2, 3, 4])); // Comparison support

$object = new Obj(['a' => 1, 'b' => 2, 'c' => 3]);
$object->b = 5; // Property access
$object->equals(new Obj(['c' => 1, 'd' => 2])); // Comparison support

Collection types

$queue = new Queue([1, 2, 3]);
$queue->enqueue(4);
$queue->dequeue();
count($queue); // Countable support
foreach ($queue as $key => $item) {} // Consuming iterator support
$queue->equals(new Queue([2, 3, 4])); // Comparison support

$stack = new Stack([1, 2, 3]);
$stack->push(4);
$stack->pop();
count($stack); // Countable support
foreach ($stack as $key => $item) {} // Consuming iterator support
$stack->equals(new Stack([2, 3, 4])); // Comparison support

Versions

Version PHP
2.1 ^8.0 JsonSerializable, improved ArrayAccess and PropertyAccess
2.0 ^8.0 Implementation as Traits
1.5 ^8.0 Fix for PHP 8.x versions
1.4 ^7.1|^8.0
1.3 ^7.1 Queue and Stack collection classes
1.2 ^7.1 Str (string), Number (float), Integer (int) and Boolean (bool) classes
1.1 >=5.6 Comparison support
1.0 >=5.6 Arr (array) and Obj (object) classes

统计信息

  • 总下载量: 48
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-04-17

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固