Updated Index and actually configured PHPStan.

This commit is contained in:
flash 2024-08-04 22:26:20 +00:00
parent 5ae9a68f63
commit 457b1fb30b
13 changed files with 613 additions and 81 deletions

View file

@ -1,12 +1,11 @@
{
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"flashwave/index": "dev-master",
"flashwave/sasae": "dev-master",
"flashwave/syokuhou": "dev-master",
"flashwave/index": "^0.2408.40014",
"flashwave/sasae": "^1.1",
"flashwave/syokuhou": "^1.2",
"erusev/parsedown": "~1.6",
"sentry/sdk": "^4.0"
"sentry/sdk": "^4.0",
"nesbot/carbon": "^3.7"
},
"autoload": {
"classmap": [
@ -20,6 +19,6 @@
"preferred-install": "dist"
},
"require-dev": {
"phpstan/phpstan": "^1.10"
"phpstan/phpstan": "^1.11"
}
}

617
composer.lock generated
View file

@ -4,8 +4,77 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "65f487afe026e7f9861ae3e4a6a7f0c6",
"content-hash": "2b09221cee42b366070c9da9bec346b6",
"packages": [
{
"name": "carbonphp/carbon-doctrine-types",
"version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
"reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
"reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
"shasum": ""
},
"require": {
"php": "^8.1"
},
"conflict": {
"doctrine/dbal": "<4.0.0 || >=5.0.0"
},
"require-dev": {
"doctrine/dbal": "^4.0.0",
"nesbot/carbon": "^2.71.0 || ^3.0.0",
"phpunit/phpunit": "^10.3"
},
"type": "library",
"autoload": {
"psr-4": {
"Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "KyleKatarn",
"email": "kylekatarnls@gmail.com"
}
],
"description": "Types to use Carbon in Doctrine",
"keywords": [
"carbon",
"date",
"datetime",
"doctrine",
"time"
],
"support": {
"issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
"source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
},
"funding": [
{
"url": "https://github.com/kylekatarnls",
"type": "github"
},
{
"url": "https://opencollective.com/Carbon",
"type": "open_collective"
},
{
"url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
"type": "tidelift"
}
],
"time": "2024-02-09T16:56:22+00:00"
},
{
"name": "erusev/parsedown",
"version": "1.7.4",
@ -58,30 +127,26 @@
},
{
"name": "flashwave/index",
"version": "dev-master",
"version": "v0.2408.40014",
"source": {
"type": "git",
"url": "https://patchii.net/flash/index.git",
"reference": "e4c8ed711e045cffe840ba10a239ede14b0b171f"
"reference": "fbca708fbd75e8ecc6b36b39c1307a67bf250808"
},
"require": {
"ext-mbstring": "*",
"php": ">=8.1"
"php": ">=8.3"
},
"require-dev": {
"phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^10.2"
"phpstan/phpstan": "^1.11",
"phpunit/phpunit": "^11.2"
},
"suggest": {
"ext-mysqli": "Support for the Index\\Data\\MariaDB namespace (both mysqlnd and libmysql are supported).",
"ext-sqlite3": "Support for the Index\\Data\\SQLite namespace."
},
"default-branch": true,
"type": "library",
"autoload": {
"files": [
"index.php"
],
"psr-4": {
"Index\\": "src"
}
@ -100,27 +165,26 @@
],
"description": "Composer package for the common library for my projects.",
"homepage": "https://railgun.sh/index",
"time": "2024-04-10T23:40:14+00:00"
"time": "2024-08-04T00:14:17+00:00"
},
{
"name": "flashwave/sasae",
"version": "dev-master",
"version": "v1.1.0",
"source": {
"type": "git",
"url": "https://patchii.net/flash/sasae.git",
"reference": "c8a9f2974e6591215b3f898dd5525de1e8367f66"
"reference": "ad63107a4387aa35c45bce71c2d6262a15b96f9d"
},
"require": {
"flashwave/index": "dev-master",
"php": ">=8.2",
"twig/html-extra": "^3.7",
"twig/twig": "^3.7"
"flashwave/index": "^0.2408.40014",
"php": ">=8.3",
"twig/html-extra": "^3.10",
"twig/twig": "^3.10"
},
"require-dev": {
"phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^10.2"
"phpstan/phpstan": "^1.11",
"phpunit/phpunit": "^11.2"
},
"default-branch": true,
"type": "library",
"autoload": {
"psr-4": {
@ -141,25 +205,24 @@
],
"description": "A wrapper for Twig with added common functionality.",
"homepage": "https://railgun.sh/sasae",
"time": "2024-01-04T02:13:42+00:00"
"time": "2024-08-04T00:48:17+00:00"
},
{
"name": "flashwave/syokuhou",
"version": "dev-master",
"version": "v1.2.0",
"source": {
"type": "git",
"url": "https://patchii.net/flash/syokuhou.git",
"reference": "954a07b95110a43e64dd6e20b2a25f4676c71a08"
"reference": "129a46c0d917382f9bc195cce278be51984eb87d"
},
"require": {
"flashwave/index": "dev-master",
"php": ">=8.2"
"flashwave/index": "^0.2408.40014",
"php": ">=8.3"
},
"require-dev": {
"phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^10.4"
"phpstan/phpstan": "^1.11",
"phpunit/phpunit": "^11.2"
},
"default-branch": true,
"type": "library",
"autoload": {
"psr-4": {
@ -180,7 +243,7 @@
],
"description": "Configuration library for PHP.",
"homepage": "https://railgun.sh/syokuhou",
"time": "2024-06-03T22:59:30+00:00"
"time": "2024-08-04T01:07:23+00:00"
},
{
"name": "guzzlehttp/psr7",
@ -357,6 +420,160 @@
},
"time": "2024-03-08T09:58:59+00:00"
},
{
"name": "nesbot/carbon",
"version": "3.7.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "cb4374784c87d0a0294e8513a52eb63c0aff3139"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cb4374784c87d0a0294e8513a52eb63c0aff3139",
"reference": "cb4374784c87d0a0294e8513a52eb63c0aff3139",
"shasum": ""
},
"require": {
"carbonphp/carbon-doctrine-types": "*",
"ext-json": "*",
"php": "^8.1",
"psr/clock": "^1.0",
"symfony/clock": "^6.3 || ^7.0",
"symfony/polyfill-mbstring": "^1.0",
"symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0"
},
"provide": {
"psr/clock-implementation": "1.0"
},
"require-dev": {
"doctrine/dbal": "^3.6.3 || ^4.0",
"doctrine/orm": "^2.15.2 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.57.2",
"kylekatarnls/multi-tester": "^2.5.3",
"ondrejmirtes/better-reflection": "^6.25.0.4",
"phpmd/phpmd": "^2.15.0",
"phpstan/extension-installer": "^1.3.1",
"phpstan/phpstan": "^1.11.2",
"phpunit/phpunit": "^10.5.20",
"squizlabs/php_codesniffer": "^3.9.0"
},
"bin": [
"bin/carbon"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.x-dev",
"dev-2.x": "2.x-dev"
},
"laravel": {
"providers": [
"Carbon\\Laravel\\ServiceProvider"
]
},
"phpstan": {
"includes": [
"extension.neon"
]
}
},
"autoload": {
"psr-4": {
"Carbon\\": "src/Carbon/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Brian Nesbitt",
"email": "brian@nesbot.com",
"homepage": "https://markido.com"
},
{
"name": "kylekatarnls",
"homepage": "https://github.com/kylekatarnls"
}
],
"description": "An API extension for DateTime that supports 281 different languages.",
"homepage": "https://carbon.nesbot.com",
"keywords": [
"date",
"datetime",
"time"
],
"support": {
"docs": "https://carbon.nesbot.com/docs",
"issues": "https://github.com/briannesbitt/Carbon/issues",
"source": "https://github.com/briannesbitt/Carbon"
},
"funding": [
{
"url": "https://github.com/sponsors/kylekatarnls",
"type": "github"
},
{
"url": "https://opencollective.com/Carbon#sponsor",
"type": "opencollective"
},
{
"url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
"type": "tidelift"
}
],
"time": "2024-07-16T22:29:20+00:00"
},
{
"name": "psr/clock",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/clock.git",
"reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
"reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
"shasum": ""
},
"require": {
"php": "^7.0 || ^8.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Psr\\Clock\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for reading the clock.",
"homepage": "https://github.com/php-fig/clock",
"keywords": [
"clock",
"now",
"psr",
"psr-20",
"time"
],
"support": {
"issues": "https://github.com/php-fig/clock/issues",
"source": "https://github.com/php-fig/clock/tree/1.0.0"
},
"time": "2022-11-25T14:36:26+00:00"
},
{
"name": "psr/http-factory",
"version": "1.1.0",
@ -703,6 +920,80 @@
],
"time": "2024-07-16T13:45:27+00:00"
},
{
"name": "symfony/clock",
"version": "v7.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
"reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/clock/zipball/3dfc8b084853586de51dd1441c6242c76a28cbe7",
"reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7",
"shasum": ""
},
"require": {
"php": ">=8.2",
"psr/clock": "^1.0",
"symfony/polyfill-php83": "^1.28"
},
"provide": {
"psr/clock-implementation": "1.0"
},
"type": "library",
"autoload": {
"files": [
"Resources/now.php"
],
"psr-4": {
"Symfony\\Component\\Clock\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Decouples applications from the system clock",
"homepage": "https://symfony.com",
"keywords": [
"clock",
"psr20",
"time"
],
"support": {
"source": "https://github.com/symfony/clock/tree/v7.1.1"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2024-05-31T14:57:53+00:00"
},
{
"name": "symfony/deprecation-contracts",
"version": "v3.5.0",
@ -1398,6 +1689,254 @@
],
"time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-php83",
"version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php83.git",
"reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9",
"reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "library",
"extra": {
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Php83\\": ""
},
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2024-06-19T12:35:24+00:00"
},
{
"name": "symfony/translation",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "8d5e50c813ba2859a6dfc99a0765c550507934a1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/8d5e50c813ba2859a6dfc99a0765c550507934a1",
"reference": "8d5e50c813ba2859a6dfc99a0765c550507934a1",
"shasum": ""
},
"require": {
"php": ">=8.2",
"symfony/polyfill-mbstring": "~1.0",
"symfony/translation-contracts": "^2.5|^3.0"
},
"conflict": {
"symfony/config": "<6.4",
"symfony/console": "<6.4",
"symfony/dependency-injection": "<6.4",
"symfony/http-client-contracts": "<2.5",
"symfony/http-kernel": "<6.4",
"symfony/service-contracts": "<2.5",
"symfony/twig-bundle": "<6.4",
"symfony/yaml": "<6.4"
},
"provide": {
"symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
"nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
"symfony/config": "^6.4|^7.0",
"symfony/console": "^6.4|^7.0",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/finder": "^6.4|^7.0",
"symfony/http-client-contracts": "^2.5|^3.0",
"symfony/http-kernel": "^6.4|^7.0",
"symfony/intl": "^6.4|^7.0",
"symfony/polyfill-intl-icu": "^1.21",
"symfony/routing": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3",
"symfony/yaml": "^6.4|^7.0"
},
"type": "library",
"autoload": {
"files": [
"Resources/functions.php"
],
"psr-4": {
"Symfony\\Component\\Translation\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/translation/tree/v7.1.3"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2024-07-26T12:41:01+00:00"
},
{
"name": "symfony/translation-contracts",
"version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
"reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
"reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
"shasum": ""
},
"require": {
"php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Translation\\": ""
},
"exclude-from-classmap": [
"/Test/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Generic abstractions related to translation",
"homepage": "https://symfony.com",
"keywords": [
"abstractions",
"contracts",
"decoupling",
"interfaces",
"interoperability",
"standards"
],
"support": {
"source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2024-04-18T09:32:20+00:00"
},
{
"name": "twig/html-extra",
"version": "v3.10.0",
@ -1549,16 +2088,16 @@
"packages-dev": [
{
"name": "phpstan/phpstan",
"version": "1.11.8",
"version": "1.11.9",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "6adbd118e6c0515dd2f36b06cde1d6da40f1b8ec"
"reference": "e370bcddadaede0c1716338b262346f40d296f82"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/6adbd118e6c0515dd2f36b06cde1d6da40f1b8ec",
"reference": "6adbd118e6c0515dd2f36b06cde1d6da40f1b8ec",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/e370bcddadaede0c1716338b262346f40d296f82",
"reference": "e370bcddadaede0c1716338b262346f40d296f82",
"shasum": ""
},
"require": {
@ -1603,17 +2142,13 @@
"type": "github"
}
],
"time": "2024-07-24T07:01:22+00:00"
"time": "2024-08-01T16:25:18+00:00"
}
],
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
"flashwave/index": 20,
"flashwave/sasae": 20,
"flashwave/syokuhou": 20
},
"prefer-stable": true,
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": [],

View file

@ -1,7 +1,6 @@
<?php
namespace Makai;
use Index\Environment;
use Index\Data\DbTools;
use Syokuhou\SharpConfig;
@ -16,7 +15,9 @@ define('MKI_DIR_MIGRATIONS', MKI_ROOT . '/database');
require_once MKI_ROOT . '/vendor/autoload.php';
Environment::setDebug(MKI_DEBUG);
error_reporting(MKI_DEBUG ? -1 : 0);
mb_internal_encoding('UTF-8');
date_default_timezone_set('GMT');
$cfg = SharpConfig::fromFile(MKI_ROOT . '/makai.cfg');

8
phpstan.neon Normal file
View file

@ -0,0 +1,8 @@
parameters:
level: 5
paths:
- src
bootstrapFiles:
- makai.php
dynamicConstantNames:
- MKI_DEBUG

View file

@ -1,7 +1,7 @@
<?php
namespace Makai;
use Index\Security\CSRFP;
use Index\CSRFP;
final class CSRFPContainer {
private ?CSRFP $instance = null;

View file

@ -5,11 +5,9 @@ use Index\Data\DbStatementCache;
use Index\Data\IDbConnection;
class Contacts {
private IDbConnection $dbConn;
private DbStatementCache $cache;
public function __construct(IDbConnection $dbConn) {
$this->dbConn = $dbConn;
$this->cache = new DbStatementCache($dbConn);
}

View file

@ -1,11 +1,8 @@
<?php
namespace Makai;
use Index\Environment;
use Index\Data\IDbConnection;
use Index\Data\Migration\IDbMigrationRepo;
use Index\Data\Migration\DbMigrationManager;
use Index\Data\Migration\FsDbMigrationRepo;
use Index\Data\Migration\{IDbMigrationRepo,DbMigrationManager,FsDbMigrationRepo};
use Sasae\SasaeEnvironment;
final class MakaiContext {
@ -69,12 +66,10 @@ final class MakaiContext {
}
public function startTemplating(): void {
$isDebug = Environment::isDebug();
$this->templating = new SasaeEnvironment(
MKI_DIR_TEMPLATES,
cache: $isDebug ? null : ['Makai', GitInfo::hash(true)],
debug: $isDebug,
cache: MKI_DEBUG ? null : ['Makai', GitInfo::hash(true)],
debug: MKI_DEBUG,
);
$this->templating->addFunction('csrfp_token', $this->csrfp->createToken(...));
$this->templating->addFunction('csrfp_available', $this->csrfp->isAvailable(...));

View file

@ -1,9 +1,8 @@
<?php
namespace Makai\Projects;
use Index\DateTime;
use Index\Colour\Colour;
use Index\Colour\ColourRGB;
use Carbon\CarbonImmutable;
use Index\Colour\{Colour,ColourRGB};
use Index\Data\IDbResult;
class ProjectInfo {
@ -125,16 +124,16 @@ class ProjectInfo {
return $this->createdAt;
}
public function getCreatedAt(): DateTime {
return DateTime::fromUnixTimeSeconds($this->createdAt);
public function getCreatedAt(): CarbonImmutable {
return CarbonImmutable::createFromTimestampUTC($this->createdAt);
}
public function getArchivedTime(): ?int {
return $this->archivedAt;
}
public function getArchivedAt(): ?DateTime {
return $this->archivedAt === null ? null : DateTime::fromUnixTimeSeconds($this->archivedAt);
public function getArchivedAt(): ?CarbonImmutable {
return $this->archivedAt === null ? null : CarbonImmutable::createFromTimestampUTC($this->archivedAt);
}
public function isArchived(): bool {
@ -145,8 +144,8 @@ class ProjectInfo {
return $this->deletedAt;
}
public function getDeletedAt(): ?DateTime {
return $this->deletedAt === null ? null : DateTime::fromUnixTimeSeconds($this->deletedAt);
public function getDeletedAt(): ?CarbonImmutable {
return $this->deletedAt === null ? null : CarbonImmutable::createFromTimestampUTC($this->deletedAt);
}
public function isDeleted(): bool {

View file

@ -7,11 +7,9 @@ use Index\Data\DbStatementCache;
use Index\Data\IDbConnection;
class Projects {
private IDbConnection $dbConn;
private DbStatementCache $cache;
public function __construct(IDbConnection $dbConn) {
$this->dbConn = $dbConn;
$this->cache = new DbStatementCache($dbConn);
}

View file

@ -1,7 +1,7 @@
<?php
namespace Makai\SSHKeys;
use Index\DateTime;
use Carbon\CarbonImmutable;
use Index\Data\IDbResult;
class SSHKeyInfo {
@ -47,8 +47,8 @@ class SSHKeyInfo {
return $this->createdAt;
}
public function getCreatedAt(): DateTime {
return DateTime::fromUnixTimeSeconds($this->createdAt);
public function getCreatedAt(): CarbonImmutable {
return CarbonImmutable::createFromTimestampUTC($this->createdAt);
}
public function isDeprecated(): bool {
@ -59,8 +59,8 @@ class SSHKeyInfo {
return $this->deprecatedAt;
}
public function getDeprecatedAt(): ?DateTime {
return $this->deprecatedAt === null ? null : DateTime::fromUnixTimeSeconds($this->deprecatedAt);
public function getDeprecatedAt(): ?CarbonImmutable {
return $this->deprecatedAt === null ? null : CarbonImmutable::createFromTimestampUTC($this->deprecatedAt);
}
public function toString(bool $includeComment): string {

View file

@ -5,11 +5,9 @@ use Index\Data\DbStatementCache;
use Index\Data\IDbConnection;
class SSHKeys {
private IDbConnection $dbConn;
private DbStatementCache $cache;
public function __construct(IDbConnection $dbConn) {
$this->dbConn = $dbConn;
$this->cache = new DbStatementCache($dbConn);
}

View file

@ -1,6 +1,7 @@
<?php
namespace Makai\SSHKeys;
use DateTimeInterface;
use Index\Http\Routing\{HttpGet,RouteHandler};
class SSHKeysRoutes extends RouteHandler {
@ -25,7 +26,7 @@ class SSHKeysRoutes extends RouteHandler {
$item->key = $key->getBody();
if($includeComment) {
$item->comment = (string)$key->getComment();
$item->created = $key->getCreatedAt()->format(\DateTime::ATOM);
$item->created = $key->getCreatedAt()->format(DateTimeInterface::ATOM);
$item->level = $key->getLevel();
}
}

View file

@ -25,7 +25,7 @@ class WhoisRoutes extends RouteHandler {
}
#[HttpPost('/tools/whois/lookup')]
public function postLookup($response, $request): array {
public function postLookup($response, $request) {
if(!$request->isFormContent())
return 400;