ceus-media/common

0.9.1 2023-10-31 03:13 UTC

README

一个PHP类库,用于执行常见任务。

Branch Release PHP version PHPStan level Total downloads Package version License

特性

  • 针对不同基本任务的分类类
    • 文件和文件夹索引
    • 文件处理(CSV、iCal、INI、JSON、vCard、YAML、XML等)
    • HTTP & FTP 处理
    • CLI 处理
    • HTML & 图片
    • 数据类型和算法
  • 具有命名空间的类名
  • 类型属性
  • 类型方法参数
  • 代码质量
    • PHPStan 9 级完整 + 额外严格规则
    • Rector 7.4 规则集完整
    • PHPUnit 9.5 & 一些单元测试
  • 用于开发的Composer脚本

用法

通过composer和Packagist安装库。

composer require ceus-media/common

用法

require_once 'vendor/autoload.php';

$atomDateTime = CeusMedia\Common\Net\AtomTime::get();
print 'Atom Time: '.$atomDateTime->format( DATE_COOKIE ).PHP_EOL;

这将显示当前的Atom时间。

示例脚本

require_once 'vendor/autoload.php';

use CeusMedia\Common\Alg\Time\DurationPhraser;
use CeusMedia\Common\FS\File;

$file = new File( __FILE__ );

$timeRangePhrases = [
    0       => '{s} seconds',
    60      => '{m} minutes',
    3600    => '{h} hours',
    24*3600 => 'ages'
];

$phraser	= DurationPhraser::fromArray( $timeRangePhrases );
$duration	= $phraser->getPhraseFromTimestamp( $file->getTime() );

echo vsprintf( 'This file (%s) has been modified %s ago.'.PHP_EOL, [
	$file->getName(),
	$duration,
] );

这将显示此脚本文件的年龄。
从这里,您可以使用 DurationPhraser 对其他实体时间戳进行操作,例如存储在数据库中的注释。此外,此示例还显示了基本的文件访问。
这仅仅是冰山一角。

从0.8.x迁移

在迁移基于0.8.x版本的老项目时,您可以使用向后兼容模式

require 'vendor/ceus-media/common/src/compat8.php';

但在生产环境中不应这样做以获得最佳性能。