selami / stdlib

该包已被废弃且不再维护。没有建议替代包。

Selami库的标准库。

2.6 2022-12-06 08:09 UTC

This package is auto-updated.

Last update: 2023-02-17 21:59:13 UTC


README

Build Status Coverage Status Scrutinizer Code Quality

为Selami和其他库提供标准库。

EqualsBuilder

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

<?php 
declare(strict_types=1);

use Selami\Stdlib\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 Selami\Stdlib\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 Selami\Stdlib\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 Selami\Stdlib\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 Selami\Stdlib\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
*/