定制 maplephp/dto 二次开发

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

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

maplephp/dto

最新稳定版本:v3.0.0

Composer 安装命令:

composer require maplephp/dto

包简介

DTO library in PHP provides benefits such as encapsulating data, enforcing immutability and facilitating data transformation.

README 文档

README

DTO stands for Darn Tidy Object, a playful twist on the traditional Data Transfer Object. But this isn’t your average DTO. It’s a fully-loaded toolkit for traversing, transforming, and tidying up structured data in PHP with style, power, and simplicity.

📦 Installation

composer require maplephp/dto

📘 Documentation

How It Works

DTO wraps your data arrays into a powerful, fluent object structure. Instead of cluttered array access, your code becomes expressive and self-documenting.

Before DTO

$name = isset($data['user']['profile']['name'])
    ? ucfirst(strip_tags($data['user']['profile']['name']))
    : 'Guest';

With DTO

$name = $obj->user->profile->name
    ->strStripTags()
    ->strUcFirst()
    ->fallback('Guest')
    ->get();

Much tidier, right?

✨ Core Features

Smart Data Traversal

Access deeply nested data without ever worrying about undefined keys.

echo $obj->article->tagline->strToUpper();  
// Result: 'HELLO WORLD'

echo $obj->article->content->strExcerpt()->strUcFirst();  
// Result: 'Lorem ipsum dolor sit amet...'

Built-In Data Transformation

Transform values directly using built-in helpers like:

Strings (str)

echo $obj->title->strSlug();  
// Result: 'my-awesome-title'

Numbers (num)

echo $obj->filesize->numToFilesize();  
// Result: '1.95 kb'

echo $obj->price->numRound(2)->numToCurrency("USD");  
// Result: $1,999.99

Dates (clock)

echo $obj->created_at->clockFormat('d M, Y', 'sv_SE');  
// Result: '21 augusti 2025'

echo $obj->created_at->clockIsToday();  
// Result: true

HTML DOM Builder (dom)

echo $obj->heading->domTag("h1.title");  
// Result: <h1 class="title">My Heading</h1>

Or nest elements with ease:

echo $obj->title->domTag("h1.title")->domTag("header");  
// Result: <header><h1 class="title">Hello</h1></header>

Built-In Collection Support

Work with arrays of objects just as cleanly:

foreach ($obj->users->fetch() as $user) {
    echo $user->firstName->strUcFirst();
}

Modify Data on the Fly

Change values directly without verbose conditionals:

$updated = $obj->shoppingList->replace([0 => 'Shampoo']);
print_r($updated->toArray());

Now go forth, write cleaner code, and let DTO handle the messy parts.

统计信息

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

GitHub 信息

  • Stars: 4
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2023-11-29