定制 phrity/o 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱: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

phrity/o 适用场景与选型建议

phrity/o 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 48 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 04 月 17 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「queue」 「array」 「object」 「stack」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 phrity/o 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 phrity/o 我们能提供哪些服务?
定制开发 / 二次开发

基于 phrity/o 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

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