eden / type
Eden 数据类型组件
1.0.4
2015-08-13 20:06 UTC
Requires
- php: >=5.3.1
- eden/core: 1.*
This package is auto-updated.
Last update: 2024-09-13 21:01:30 UTC
README
当在一行中使用多个 PHP 字符串或数组函数时,会使代码难以阅读。这是因为程序员需要训练从内到外阅读代码,而不是传统地从左到右(除非你住在日本)。Eden 的数据类型是对象,可以纠正这个可读性问题。
图 1. 从内到外
echo substr(strtolower(str_replace(' ', '-', 'Hello World')), 0, 8); //--> hello-wo
上面的图 1 展示了我们必须这样阅读:先读 str_replace()
,然后 strtolower()
,接着是 substr()
,这是内部函数先向外扩展。下面的例子展示了使用类型如何使这一行更容易阅读。
图 2. 从左到右
echo eden('type', 'Hello World')->str_replace(' ','-')->strtolower()->substr(0, 8); //--> hello-wo
Eden\\Type\\StringType
,当输出时会自动转换回字符串。Eden 覆盖了 PHP 提供的大多数字符串和数组函数。以下是你可以线性执行的字符串方法列表。
图 3. 字符串方法
$string->camelize('-'); //looks for dashes and transforms to camel casing
$string->uncamelize('-'); //replaces camel casing to lower case with dash between
$string->dasherize(); //transforms spaces to dashes or URL friendly name
$string->titlze('-'); //transforms a dashed string to a Title (Caps and spaces)
//Supported PHP String Methods
$string->addSlashes();
$string->bin2hex()
$string->chunkSplit();
$string->convertUudecode();
$string->convertUuencode();
$string->crypt();
$string->htmlEntityDecode();
$string->htmlentities();
$string->htmlspecialcharsDecode();
$string->htmlspecialchars();
$string->lcfirst();
$string->ltrim();
$string->md5();
$string->nl2br();
$string->quotedPrintableDecode();
$string->quotedPrintableEncode();
$string->quotemeta();
$string->rtrim();
$string->sha1();
$string->sprintf('val1', 'val2');
$string->pad();
$string->repeat();
$string->rot13();
$string->shuffle();
$string->stripTags();
$string->stripcslashes();
$string->stripslashes();
$string->strpbrk();
$string->stristr();
$string->strrev();
$string->strstr();
$string->strtok();
$string->strtolower();
$string->strtoupper();
$string->strtr();
$string->substrReplace();
$string->substr(1, 2);
$string->trim();
$string->ucfirst();
$string->ucwords();
$string->vsprintf();
$string->wordwrap();
$string->countChars();
$string->hex2bin();
$string->strlen();
$string->strpos();
$string->substrCompare();
$string->substrCount();
$string->strIreplace();
$string->strReplace(' ', '-');
$string->pregReplace('/[A-Z]/', '-');
$string->explode(' '); //returns Eden\\Type\\ArrayType
与 Eden 中的字符串对象可以输出类似,Eden 中的数组对象也可以被视为数组。
图 4. 数组对象作为数组
$array = eden('type', 1, 2, 3); //instantiate
$array[] = 4;
echo $array[1]; //--> 2
foreach($array as $key => $value) {} //loop through array
echo $array; // outputs a json version of the array
以下是你可以线性执行的数组方法列表。
图 5. 数组方法
$array = eden('type', 1, 2, 3); //instantiate
$array->isEmpty(); //returns true if array is empty
$array->copy('Key1', 'Key2'); //copies the value of 'Key1' to 'Key2'
$array->cut(2); //removes index of 2 and reindexes array
$array->paste('Key1', 'Key3', 'value'); //adds 'Key3' with the value of 'value' after 'Key1'
//Supported PHP Array Methods
$array->changeKeyCase();
$array->chunk();
$array->combine();
$array->countDatas();
$array->diffAssoc();
$array->diffKey();
$array->diffUassoc();
$array->diffUkey();
$array->diff();
$array->fillKeys();
$array->filter();
$array->flip();
$array->intersectAssoc();
$array->intersectKey();
$array->intersectUassoc();
$array->intersectUkey();
$array->intersect();
$array->keys();
$array->mergeRecursive();
$array->merge();
$array->pad();
$array->reverse();
$array->shift();
$array->slice();
$array->splice();
$array->sum();
$array->udiffAssoc();
$array->udiffUassoc();
$array->udiff();
$array->uintersectAssoc();
$array->uintersectAassoc();
$array->uintersect();
$array->unique();
$array->datas();
$array->count();
$array->current();
$array->each();
$array->end();
$array->extract();
$array->key();
$array->next();
$array->prev();
$array->sizeof();
$array->fill();
$array->map();
$array->search();
$array->compact();
$array->implode(' '); //returns Eden\\Type\\StringType
$array->in_array();
$array->unshift();
$array->walkRecursive();
$array->walk();
$array->arsort();
$array->asort();
$array->krsort();
$array->ksort();
$array->natcasesort();
$array->natsort();
$array->reset();
$array->rsort();
$array->shuffle();
$array->sort();
$array->uasort();
$array->uksort();
$array->usort();
$array->push();
====
# 向 Eden 贡献
## 配置机器以使用 Eden 存储库和您的分支
- 将主 Eden 存储库分支(https://github.com/Eden-PHP/Type)进行分支
- 在您的本地终端中运行以下命令以克隆主 Eden 存储库(git clone git://github.com/Eden-PHP/Type.git)
- 将您的分支 FORKED EDEN REPOSITORY 添加为远程存储库(git remote add fork git@github.com:github_username/Type.git)
## 提交拉取请求
- 在开始之前,请确保更新主 Eden 存储库。(git checkout master; git pull origin master)
- 如果此包中包含 PHP 单元测试,请确保更新它并运行测试以确保一切正常工作(phpunit)
- 一旦更新了最新代码,创建一个新分支,分支名称应描述您的更改(git checkout -b bugfix/fix-twitter-auth)可能类型
- bugfix
- feature
- improvement
- 进行代码更改。始终确保在所有提交上签出(git commit -s -m "提交信息")
- 一旦将所有代码提交到该分支,请将该分支推送到您的 FORKED EDEN REPOSITORY(git push fork bugfix/fix-twitter-auth)
- 回到您的 GitHub 上的 FORKED EDEN REPOSITORY 并提交拉取请求。
- Eden 开发者将审查您的代码,并在其被分类为适合时将其合并。