reformo/backendbase-utility

Backendbase 库的标准库。

1.3 2024-05-13 09:08 UTC

This package is auto-updated.

Last update: 2024-09-13 09:51:55 UTC


README

Build Status Coverage Status Scrutinizer Code Quality

Backendbase 和其他库的标准库。

EqualsBuilder

此类提供构建任何类 equals 方法的函数。旨在用于比较值对象。

<?php 
declare(strict_types=1);

use Backendbase\Utility\EqualsBuilder;

class SomeValueObject()
{
	private $value1;
	private $value2;
	
	public function __construct(string $value1, string $value2)
	{
		$this->value1 = $value1;
		$this->value2 = $value2;
	}
	
	public function getValue1() :string 
	{
		return $value1;
	}
	
	public function getValue2() : string
	{
		return $value2;
	}
	
	public function equals($otherObject) : bool
	{
		return EqualsBuilder::create()
			->append($this->value1, $otherObject->getValue1())
			->append($this->value2, $otherObject->getValue2())
        	->isEquals(); 
	}
}

Resolver

此类提供获取方法类型提示的方法。旨在用于自动装配类。

<?php
declare(strict_types=1);

use Backendbase\Utility\Resolver;

class BlogService {}

class Controller
{
	private $argument;
	private $service;
	public function __construct(BlogService $service, array $argument)
	{
		$this->service = $service;
		$this->argument = $argument;
	}
}

$arguments = Resolver::getParameterHints(Controller::class, '__construct');

var_dump($arguments);

/* Prints 
array(2) {
  ["service"]=>
  string(11) "BlogService"
  ["argument"]=>
  string(5) "array"
}
*/

CaseConverter

此类提供将字符串转换为 camelCase、PascalCase 或 snake_case 字符串的方法。

<?php
declare(strict_types=1);

use Backendbase\Utility\CaseConverter;

$source = 'test string';
$result = CaseConverter::toCamelCase($source); // returns: testString
$result = CaseConverter::toPascalCase($source); // returns: TestString
$result = CaseConverter::toSnakeCase($source); // returns: test_string

Git\Version

此类提供获取 git 短版本号的方法。对于使用 git 的部署,它可以用于为 JS、CSS 文件提供版本号,以确保缓存这些文件的更新版本。

<?php // common.php

declare(strict_types=1);

use Backendbase\Utility\Git\Version;

$gitVersion = Version::short();

$twig->addGlobal('version', $gitVersion);
<!-- main.twig -->
<html>
<head>
    <link href="/assets/css/main.css?v={{version}}" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="/assets/js/main.min.js?v={{version}}"></script>
</head>
<body>
...
</body>
</html>

BaseUrlExtractor

此类提供获取应用程序运行的基础 URL 的方法。

注意:如果您在 Cloudflare 等服务之后,或使用灵活 SSL 功能时,此方法可能不会返回实际的基 URL。

<?php
declare(strict_types=1);

use Backendbase\Utility\BaseUrlExtractor;

$baseUrl = BaseUrlExtractor::getBaseUrl($_SERVER);

echo $baseUrl;

/* Prints base url like:
http://127.0.0.1:8080

http://127.0.0.1:8080/myapp

https://myapp.com
*/