modifs.mineures sans commentaires
This commit is contained in:
parent
ef5a0ee730
commit
c37816e56d
@ -10,13 +10,13 @@ class MysqlCapacitorApp extends AbstractCapacitorApp {
|
|||||||
"merge" => parent::ARGS,
|
"merge" => parent::ARGS,
|
||||||
"purpose" => "gestion d'un capacitor mysql",
|
"purpose" => "gestion d'un capacitor mysql",
|
||||||
"usage" => [
|
"usage" => [
|
||||||
"DBCONN [CHANNEL_NAME | -t TABLE | -c CHANNEL_CLASS] [--query] key=value...",
|
"DBCONN [channelName | -t table | -c ChannelClass] [--query] key=value...",
|
||||||
"DBCONN [CHANNEL_NAME | -t TABLE | -c CHANNEL_CLASS] --sql-create",
|
"DBCONN [channelName | -t table | -c ChannelClass] --sql-create",
|
||||||
],
|
],
|
||||||
["-t", "--table-name", "args" => 1,
|
["-t:table", "--table-name",
|
||||||
"help" => "nom de la table porteuse du canal de données",
|
"help" => "nom de la table porteuse du canal de données",
|
||||||
],
|
],
|
||||||
["-c", "--channel-class", "args" => 1,
|
["-c:class", "--channel-class",
|
||||||
"help" => "nom de la classe dérivée de CapacitorChannel",
|
"help" => "nom de la classe dérivée de CapacitorChannel",
|
||||||
],
|
],
|
||||||
["-z", "--reset", "name" => "action", "value" => self::ACTION_RESET,
|
["-z", "--reset", "name" => "action", "value" => self::ACTION_RESET,
|
||||||
|
@ -10,13 +10,13 @@ class PgsqlCapacitorApp extends AbstractCapacitorApp {
|
|||||||
"merge" => parent::ARGS,
|
"merge" => parent::ARGS,
|
||||||
"purpose" => "gestion d'un capacitor pgsql",
|
"purpose" => "gestion d'un capacitor pgsql",
|
||||||
"usage" => [
|
"usage" => [
|
||||||
"DBCONN [CHANNEL_NAME | -t TABLE | -c CHANNEL_CLASS] [--query] key=value...",
|
"DBCONN [channelName | -t table | -c ChannelClass] [--query] key=value...",
|
||||||
"DBCONN [CHANNEL_NAME | -t TABLE | -c CHANNEL_CLASS] --sql-create",
|
"DBCONN [channelName | -t table | -c ChannelClass] --sql-create",
|
||||||
],
|
],
|
||||||
["-t", "--table-name", "args" => 1,
|
["-t:table", "--table-name",
|
||||||
"help" => "nom de la table porteuse du canal de données",
|
"help" => "nom de la table porteuse du canal de données",
|
||||||
],
|
],
|
||||||
["-c", "--channel-class", "args" => 1,
|
["-c:class", "--channel-class",
|
||||||
"help" => "nom de la classe dérivée de CapacitorChannel",
|
"help" => "nom de la classe dérivée de CapacitorChannel",
|
||||||
],
|
],
|
||||||
["-z", "--reset", "name" => "action", "value" => self::ACTION_RESET,
|
["-z", "--reset", "name" => "action", "value" => self::ACTION_RESET,
|
||||||
|
@ -9,13 +9,13 @@ class SqliteCapacitorApp extends AbstractCapacitorApp {
|
|||||||
"merge" => parent::ARGS,
|
"merge" => parent::ARGS,
|
||||||
"purpose" => "gestion d'un capacitor sqlite",
|
"purpose" => "gestion d'un capacitor sqlite",
|
||||||
"usage" => [
|
"usage" => [
|
||||||
"DBFILE [CHANNEL_NAME | -t TABLE | -c CHANNEL_CLASS] [--query] key=value...",
|
"DBFILE [channelName | -t table | -c ChannelClass] [--query] key=value...",
|
||||||
"DBFILE [CHANNEL_NAME | -t TABLE | -c CHANNEL_CLASS] --sql-create",
|
"DBFILE [channelName | -t table | -c ChannelClass] --sql-create",
|
||||||
],
|
],
|
||||||
["-t", "--table-name", "args" => 1,
|
["-t:table", "--table-name",
|
||||||
"help" => "nom de la table porteuse du canal de données",
|
"help" => "nom de la table porteuse du canal de données",
|
||||||
],
|
],
|
||||||
["-c", "--channel-class", "args" => 1,
|
["-c:class", "--channel-class",
|
||||||
"help" => "nom de la classe dérivée de CapacitorChannel",
|
"help" => "nom de la classe dérivée de CapacitorChannel",
|
||||||
],
|
],
|
||||||
["-z", "--reset", "name" => "action", "value" => self::ACTION_RESET,
|
["-z", "--reset", "name" => "action", "value" => self::ACTION_RESET,
|
||||||
|
@ -20,7 +20,7 @@ class _SteamTrainApp extends Application {
|
|||||||
Cette application peut être utilisée pour tester le lancement des tâches de fond
|
Cette application peut être utilisée pour tester le lancement des tâches de fond
|
||||||
EOT,
|
EOT,
|
||||||
|
|
||||||
["-c", "--count", "args" => 1,
|
["-c:count", "--count",
|
||||||
"help" => "spécifier le nombre d'étapes",
|
"help" => "spécifier le nombre d'étapes",
|
||||||
],
|
],
|
||||||
["-f", "--force-enabled", "value" => true,
|
["-f", "--force-enabled", "value" => true,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
MYDIR="$(dirname -- "$0")"
|
MYDIR="$(dirname -- "$0")"
|
||||||
VENDOR="$MYDIR/../vendor"
|
VENDOR="$MYDIR/vendor"
|
||||||
"$VENDOR/bin/phpunit" --bootstrap "$VENDOR/autoload.php" "$@" "$MYDIR/tests"
|
"$VENDOR/bin/phpunit" --bootstrap "$VENDOR/autoload.php" "$@" "$MYDIR/tests"
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib;
|
namespace nulib;
|
||||||
|
|
||||||
use nulib\php\func;
|
|
||||||
use Traversable;
|
use Traversable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3,7 +3,6 @@ namespace nulib\app;
|
|||||||
|
|
||||||
use nulib\A;
|
use nulib\A;
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\app\app;
|
|
||||||
use nulib\file\SharedFile;
|
use nulib\file\SharedFile;
|
||||||
use nulib\os\path;
|
use nulib\os\path;
|
||||||
use nulib\os\sh;
|
use nulib\os\sh;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\app\args;
|
namespace nulib\app\args;
|
||||||
|
|
||||||
use nulib\app\args\ArgsException;
|
|
||||||
use stdClass;
|
use stdClass;
|
||||||
|
|
||||||
abstract class AbstractArgsParser {
|
abstract class AbstractArgsParser {
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
namespace nulib\app\args;
|
namespace nulib\app\args;
|
||||||
|
|
||||||
use nulib\A;
|
use nulib\A;
|
||||||
use nulib\app\args\AbstractArgsParser;
|
|
||||||
use nulib\app\args\Aolist;
|
|
||||||
use nulib\app\args\ArgsException;
|
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\php\akey;
|
use nulib\php\akey;
|
||||||
use nulib\php\func;
|
use nulib\php\func;
|
||||||
@ -84,27 +81,42 @@ class Aodef {
|
|||||||
if ($merge !== null) $this->mergeParse($merge);
|
if ($merge !== null) $this->mergeParse($merge);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static function verifix_args(?array &$options): ?array {
|
||||||
|
$args = null;
|
||||||
|
if ($options !== null) {
|
||||||
|
foreach ($options as &$option) {
|
||||||
|
if (preg_match('/^(.*:)([^:].*)$/', $option, $ms)) {
|
||||||
|
$option = $ms[1];
|
||||||
|
$args ??= explode(",", $ms[2]);
|
||||||
|
}
|
||||||
|
}; unset($option);
|
||||||
|
}
|
||||||
|
return $args;
|
||||||
|
}
|
||||||
|
|
||||||
protected function parse(array $def): void {
|
protected function parse(array $def): void {
|
||||||
[$options, $params] = cl::split_assoc($def);
|
[$options, $params] = cl::split_assoc($def);
|
||||||
|
|
||||||
$this->show ??= $params["show"] ?? true;
|
$this->show ??= $params["show"] ?? true;
|
||||||
$this->extends ??= $params["extends"] ?? null;
|
$this->extends ??= $params["extends"] ?? null;
|
||||||
|
|
||||||
$this->disabled = vbool::withn($params["disabled"] ?? null);
|
$args ??= $params["args"] ?? null;
|
||||||
$removes = varray::withn($params["remove"] ?? null);
|
|
||||||
A::merge($this->_removes, $removes);
|
|
||||||
$adds = varray::withn($params["add"] ?? null);
|
|
||||||
A::merge($this->_adds, $adds);
|
|
||||||
A::merge($this->_adds, $options);
|
|
||||||
|
|
||||||
$args = $params["args"] ?? null;
|
|
||||||
$args ??= $params["arg"] ?? null;
|
$args ??= $params["arg"] ?? null;
|
||||||
if ($args === true) $args = 1;
|
if ($args === true) $args = 1;
|
||||||
elseif ($args === "*") $args = [null];
|
elseif ($args === "*") $args = [null];
|
||||||
elseif ($args === "+") $args = ["value", null];
|
elseif ($args === "+") $args = ["value", null];
|
||||||
if (is_int($args)) $args = array_fill(0, $args, "value");
|
if (is_int($args)) $args = array_fill(0, $args, "value");
|
||||||
$this->_args ??= cl::withn($args);
|
|
||||||
|
|
||||||
|
$this->disabled = vbool::withn($params["disabled"] ?? null);
|
||||||
|
$adds = varray::withn($params["add"] ?? null);
|
||||||
|
A::merge($this->_adds, $adds);
|
||||||
|
A::merge($this->_adds, $options);
|
||||||
|
$args ??= self::verifix_args($this->_adds);
|
||||||
|
$removes = varray::withn($params["remove"] ?? null);
|
||||||
|
A::merge($this->_removes, $removes);
|
||||||
|
self::verifix_args($this->_adds);
|
||||||
|
|
||||||
|
$this->_args ??= cl::withn($args);
|
||||||
$this->argsdesc ??= $params["argsdesc"] ?? null;
|
$this->argsdesc ??= $params["argsdesc"] ?? null;
|
||||||
|
|
||||||
$this->ensureArray ??= $params["ensure_array"] ?? null;
|
$this->ensureArray ??= $params["ensure_array"] ?? null;
|
||||||
@ -286,11 +298,11 @@ class Aodef {
|
|||||||
*/
|
*/
|
||||||
protected function processArgs(): void {
|
protected function processArgs(): void {
|
||||||
$args = $this->_args;
|
$args = $this->_args;
|
||||||
$haveArgs = boolval($args);
|
|
||||||
if ($this->isRemains) {
|
if ($this->isRemains) {
|
||||||
$haveArgs = true;
|
$args ??= [null];
|
||||||
$args = [null];
|
$haveArgs = boolval($args);
|
||||||
} elseif ($args === null) {
|
} elseif ($args === null) {
|
||||||
|
$haveArgs = false;
|
||||||
$optionalArgs = null;
|
$optionalArgs = null;
|
||||||
foreach ($this->_options as $option) {
|
foreach ($this->_options as $option) {
|
||||||
switch ($option["args_type"]) {
|
switch ($option["args_type"]) {
|
||||||
@ -311,6 +323,8 @@ class Aodef {
|
|||||||
$args = ["value"];
|
$args = ["value"];
|
||||||
if ($optionalArgs) $args = [$args];
|
if ($optionalArgs) $args = [$args];
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$haveArgs = boolval($args);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->isRemains) $desc = "remaining args";
|
if ($this->isRemains) $desc = "remaining args";
|
||||||
@ -450,12 +464,12 @@ class Aodef {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isEmpty(): bool {
|
function isEmpty(): bool {
|
||||||
return $this->disabled || !$this->_options;
|
return $this->disabled || (!$this->_options && !$this->isRemains);
|
||||||
}
|
}
|
||||||
|
|
||||||
function printHelp(?array $what=null): void {
|
function printHelp(?array $what=null): void {
|
||||||
$showDef = $what["show"] ?? $this->show;
|
$showDef = $what["show"] ?? $this->show;
|
||||||
if (!$showDef) return;
|
if (!$showDef || $this->isRemains) return;
|
||||||
|
|
||||||
$prefix = $what["prefix"] ?? null;
|
$prefix = $what["prefix"] ?? null;
|
||||||
if ($prefix !== null) echo $prefix;
|
if ($prefix !== null) echo $prefix;
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
namespace nulib\app\args;
|
namespace nulib\app\args;
|
||||||
|
|
||||||
use nulib\A;
|
use nulib\A;
|
||||||
use nulib\app\args\Aolist;
|
|
||||||
use nulib\app\args\ArgsException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Aogroup: groupe d'arguments fonctionnant ensemble
|
* Class Aogroup: groupe d'arguments fonctionnant ensemble
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\app\args;
|
namespace nulib\app\args;
|
||||||
|
|
||||||
use nulib\app\args\Aodef;
|
|
||||||
use nulib\app\args\Aogroup;
|
|
||||||
use nulib\app\args\Aosection;
|
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\str;
|
use nulib\str;
|
||||||
use const true;
|
use const true;
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\app\args;
|
namespace nulib\app\args;
|
||||||
|
|
||||||
use nulib\app\args\Aodef;
|
|
||||||
use nulib\app\args\Aolist;
|
|
||||||
use nulib\php\types\vbool;
|
use nulib\php\types\vbool;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\app\args;
|
namespace nulib\app\args;
|
||||||
|
|
||||||
use nulib\app\args\Aodef;
|
|
||||||
use nulib\app\args\Aolist;
|
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\php\types\vbool;
|
use nulib\php\types\vbool;
|
||||||
use nulib\str;
|
use nulib\str;
|
||||||
@ -122,8 +120,8 @@ class SimpleAolist extends Aolist {
|
|||||||
"help" => "Afficher l'aide",
|
"help" => "Afficher l'aide",
|
||||||
]);
|
]);
|
||||||
$helpArgdef->setup1();
|
$helpArgdef->setup1();
|
||||||
|
$this->aospecials[] = $helpArgdef;
|
||||||
}
|
}
|
||||||
if ($helpArgdef !== null) $this->aospecials[] = $helpArgdef;
|
|
||||||
|
|
||||||
$this->autoremains ??= true;
|
$this->autoremains ??= true;
|
||||||
if ($remainsArgdef === null && $this->autoremains) {
|
if ($remainsArgdef === null && $this->autoremains) {
|
||||||
@ -135,11 +133,9 @@ class SimpleAolist extends Aolist {
|
|||||||
"key" => $this->argskey,
|
"key" => $this->argskey,
|
||||||
]);
|
]);
|
||||||
$remainsArgdef->setup1();
|
$remainsArgdef->setup1();
|
||||||
}
|
|
||||||
if ($remainsArgdef !== null) {
|
|
||||||
$this->remainsArgdef = $remainsArgdef;
|
|
||||||
$this->aospecials[] = $remainsArgdef;
|
$this->aospecials[] = $remainsArgdef;
|
||||||
}
|
}
|
||||||
|
$this->remainsArgdef = $remainsArgdef;
|
||||||
|
|
||||||
# puis calculer nombre d'arguments et actions
|
# puis calculer nombre d'arguments et actions
|
||||||
$this->indexAodefs();
|
$this->indexAodefs();
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\app\args;
|
namespace nulib\app\args;
|
||||||
|
|
||||||
use nulib\app\args\AbstractArgsParser;
|
|
||||||
use nulib\app\args\Aodef;
|
|
||||||
use nulib\app\args\SimpleAolist;
|
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\ExitError;
|
use nulib\ExitError;
|
||||||
use nulib\StateException;
|
use nulib\StateException;
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
# nulib\app\args
|
# nulib\app\args
|
||||||
|
|
||||||
* [ ] supporter "-o:args"
|
|
||||||
* [ ] vérifier que remainArgs honore les bornes, notamment si spécifié par l'utilisateur
|
|
||||||
* [ ] dans la section "profils", rajouter une option pour spécifier un fichier de configuration
|
* [ ] dans la section "profils", rajouter une option pour spécifier un fichier de configuration
|
||||||
* [ ] transformer un schéma en définition d'arguments, un tableau en liste d'arguments, et vice-versa
|
* [ ] transformer un schéma en définition d'arguments, un tableau en liste d'arguments, et vice-versa
|
||||||
* [ ] faire une implémentation ArgsParser qui supporte les commandes, et les options dynamiques
|
* [ ] faire une implémentation ArgsParser qui supporte les commandes, et les options dynamiques
|
||||||
|
@ -4,9 +4,7 @@ namespace nulib\app;
|
|||||||
use nulib\app\config\ConfigManager;
|
use nulib\app\config\ConfigManager;
|
||||||
use nulib\app\config\JsonConfig;
|
use nulib\app\config\JsonConfig;
|
||||||
use nulib\app\config\YamlConfig;
|
use nulib\app\config\YamlConfig;
|
||||||
use nulib\cl;
|
|
||||||
use nulib\os\path;
|
use nulib\os\path;
|
||||||
use nulib\str;
|
|
||||||
use nulib\ValueException;
|
use nulib\ValueException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\db;
|
namespace nulib\db;
|
||||||
|
|
||||||
use nulib\A;
|
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\php\func;
|
use nulib\php\func;
|
||||||
use nulib\ValueException;
|
use nulib\ValueException;
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
namespace nulib\file\csv;
|
namespace nulib\file\csv;
|
||||||
|
|
||||||
use nulib\file;
|
use nulib\file;
|
||||||
use nulib\file\_IFile;
|
|
||||||
use nulib\file\FileReader;
|
use nulib\file\FileReader;
|
||||||
use nulib\file\IReader;
|
use nulib\file\IReader;
|
||||||
use nulib\file\tab\AbstractReader;
|
use nulib\file\tab\AbstractReader;
|
||||||
|
@ -3,7 +3,6 @@ namespace nulib\output;
|
|||||||
|
|
||||||
use nulib\app\app;
|
use nulib\app\app;
|
||||||
use nulib\output\std\ProxyMessenger;
|
use nulib\output\std\ProxyMessenger;
|
||||||
use nulib\output\std\StdMessenger;
|
|
||||||
use nulib\ValueException;
|
use nulib\ValueException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3,7 +3,6 @@ namespace nulib\php\time;
|
|||||||
|
|
||||||
use DateTimeInterface;
|
use DateTimeInterface;
|
||||||
use InvalidArgumentException;
|
use InvalidArgumentException;
|
||||||
use nulib\ValueException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Delay: une durée jusqu'à un moment destination. le moment destination
|
* Class Delay: une durée jusqu'à un moment destination. le moment destination
|
||||||
|
0
php/tbin/output-forever.log
Normal file
0
php/tbin/output-forever.log
Normal file
69
php/tbin/test-application.php
Executable file
69
php/tbin/test-application.php
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/php
|
||||||
|
<?php
|
||||||
|
require __DIR__."/../vendor/autoload.php";
|
||||||
|
|
||||||
|
use nulib\app\app;
|
||||||
|
use nulib\app\cli\Application;
|
||||||
|
use nulib\output\msg;
|
||||||
|
|
||||||
|
Application::run(new class extends Application {
|
||||||
|
const ARGS = [
|
||||||
|
"purpose" => "tester la gestion des arguments",
|
||||||
|
"usage" => "-A|-a|-b",
|
||||||
|
|
||||||
|
"merge" => parent::ARGS,
|
||||||
|
["group",
|
||||||
|
["-A:", "--seta", "args" => "int", "name" => "a",
|
||||||
|
"help" => "spécifier a",
|
||||||
|
],
|
||||||
|
["--seta10", "name" => "a", "value" => 10],
|
||||||
|
["--seta20", "name" => "a", "value" => 20],
|
||||||
|
],
|
||||||
|
["-a", "--inca", "name" => "a",
|
||||||
|
"help" => "incrémenter a",
|
||||||
|
],
|
||||||
|
["-b", "--deca", "name" => "a", "inverse" => true,
|
||||||
|
"help" => "décrémenter a",
|
||||||
|
],
|
||||||
|
["-D::", "--override",
|
||||||
|
"help" => "++remplace celui de la section principale",
|
||||||
|
],
|
||||||
|
"sections" => [
|
||||||
|
[
|
||||||
|
"title" => "Section X",
|
||||||
|
"show" => false,
|
||||||
|
["group",
|
||||||
|
["-X:", "--setx", "args" => "int", "name" => "x",
|
||||||
|
"help" => "spécifier x",
|
||||||
|
],
|
||||||
|
["--setx10", "name" => "x", "value" => 10],
|
||||||
|
["--setx20", "name" => "x", "value" => 20],
|
||||||
|
],
|
||||||
|
["-x", "--incx", "name" => "x"],
|
||||||
|
["-y", "--decx", "name" => "x", "inverse" => true],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
["args" => [["value", "value"]], "name" => "args"],
|
||||||
|
];
|
||||||
|
|
||||||
|
private ?int $a = null;
|
||||||
|
private ?int $x = null;
|
||||||
|
private ?string $override = null;
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
$profile = app::get_profile($productionMode);
|
||||||
|
$profile = self::get_profile($profile);
|
||||||
|
$productionMode = $productionMode? "production": "development";
|
||||||
|
msg::info("profile=$profile ($productionMode)");
|
||||||
|
$debug = app::is_debug()? "DEBUG": "non";
|
||||||
|
msg::info("debug=$debug");
|
||||||
|
|
||||||
|
msg::info([
|
||||||
|
"variables:",
|
||||||
|
"\na=", var_export($this->a, true),
|
||||||
|
"\nx=", var_export($this->x, true),
|
||||||
|
"\noverride=", var_export($this->override, true),
|
||||||
|
"\nargs=", var_export($this->args, true),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
});
|
278
php/tbin/test-console.php
Executable file
278
php/tbin/test-console.php
Executable file
@ -0,0 +1,278 @@
|
|||||||
|
#!/usr/bin/php
|
||||||
|
<?php
|
||||||
|
require(__DIR__.'/../vendor/autoload.php');
|
||||||
|
|
||||||
|
use nulib\output\std\StdMessenger;
|
||||||
|
use nulib\UserException;
|
||||||
|
|
||||||
|
$params = [];
|
||||||
|
$count = count($argv) - 1;
|
||||||
|
for ($i = 1; $i <= $count; $i++) {
|
||||||
|
switch ($argv[$i]) {
|
||||||
|
case "-L": $i++; $params["output"] = $argv[$i]; break;
|
||||||
|
case "-i": $i++; $params["id"] = $argv[$i]; break;
|
||||||
|
case "-t": $params["add_date"] = true; break;
|
||||||
|
case "-n": $params["color"] = false; break;
|
||||||
|
case "+n": $params["color"] = true; break;
|
||||||
|
case "-d": $params["debug"] = true; break;
|
||||||
|
case "+d": $params["debug"] = false; break;
|
||||||
|
case "-D": $params["default_level"] = "debug"; break;
|
||||||
|
case "-m": $params["default_level"] = "minor"; break;
|
||||||
|
case "-M": $params["default_level"] = "major"; break;
|
||||||
|
case "--show-debug":
|
||||||
|
case "--sd": $params["min_level"] = "debug"; break;
|
||||||
|
case "--show-minor":
|
||||||
|
case "--verbose":
|
||||||
|
case "--sm": $params["min_level"] = "minor"; break;
|
||||||
|
case "--show-normal":
|
||||||
|
case "--sn": $params["min_level"] = "normal"; break;
|
||||||
|
case "--show-major":
|
||||||
|
case "--quiet":
|
||||||
|
case "--sM": $params["min_level"] = "major"; break;
|
||||||
|
case "--show-none":
|
||||||
|
case "--silent":
|
||||||
|
case "--sx": $params["min_level"] = "none"; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$msg = new StdMessenger($params);
|
||||||
|
|
||||||
|
$msg->title("title0");
|
||||||
|
$msg->title("title1");
|
||||||
|
$msg->print("print under title1");
|
||||||
|
$msg->end();
|
||||||
|
$msg->print("print under title0");
|
||||||
|
$msg->end();
|
||||||
|
|
||||||
|
$msg->desc("action avec step");
|
||||||
|
$msg->action("action avec step");
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->asuccess("action success");
|
||||||
|
|
||||||
|
$msg->action("action avec step");
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->afailure("action failure");
|
||||||
|
|
||||||
|
$msg->action("action avec step");
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->adone("action neutral");
|
||||||
|
|
||||||
|
$msg->desc("actions sans step");
|
||||||
|
$msg->action("action sans step");
|
||||||
|
$msg->asuccess("action success");
|
||||||
|
|
||||||
|
$msg->action("action sans step");
|
||||||
|
$msg->afailure("action failure");
|
||||||
|
|
||||||
|
$msg->action("action sans step");
|
||||||
|
$msg->adone("action neutral");
|
||||||
|
|
||||||
|
$msg->desc("actions imbriquées");
|
||||||
|
$msg->action("action0");
|
||||||
|
$msg->action("action1");
|
||||||
|
$msg->action("action2");
|
||||||
|
$msg->asuccess("action2 success");
|
||||||
|
$msg->asuccess("action1 success");
|
||||||
|
$msg->asuccess("action0 success");
|
||||||
|
|
||||||
|
$msg->desc("action avec step, sans messages");
|
||||||
|
$msg->action("action avec step, sans messages, success");
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->asuccess();
|
||||||
|
|
||||||
|
$msg->action("action avec step, sans messages, failure");
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->afailure();
|
||||||
|
|
||||||
|
$msg->action("action avec step, sans messages, done");
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->adone();
|
||||||
|
|
||||||
|
$msg->desc("action sans step, sans messages");
|
||||||
|
$msg->action("action sans step, sans messages, success");
|
||||||
|
$msg->asuccess();
|
||||||
|
|
||||||
|
$msg->action("action sans step, sans messages, failure");
|
||||||
|
$msg->afailure();
|
||||||
|
|
||||||
|
$msg->action("action sans step, sans messages, done");
|
||||||
|
$msg->adone();
|
||||||
|
|
||||||
|
$msg->desc("actions imbriquées, sans messages");
|
||||||
|
$msg->action("action0");
|
||||||
|
$msg->action("action1");
|
||||||
|
$msg->action("action2");
|
||||||
|
$msg->asuccess();
|
||||||
|
$msg->asuccess();
|
||||||
|
$msg->asuccess();
|
||||||
|
|
||||||
|
$msg->info("info");
|
||||||
|
$msg->note("note");
|
||||||
|
$msg->warning("warning");
|
||||||
|
$msg->error("error");
|
||||||
|
|
||||||
|
$msg->section("section", function ($msg) {
|
||||||
|
$msg->title("title", function ($msg) {
|
||||||
|
$msg->desc("desc");
|
||||||
|
$msg->print("print");
|
||||||
|
|
||||||
|
$msg->desc("action avec step");
|
||||||
|
$msg->action("action avec step", function ($msg) {
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->asuccess("action success");
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action avec step", function ($msg) {
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->afailure("action failure");
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action avec step", function ($msg) {
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->adone("action done");
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->desc("actions sans step");
|
||||||
|
$msg->action("action sans step", function ($msg) {
|
||||||
|
$msg->asuccess("action success");
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action sans step", function ($msg) {
|
||||||
|
$msg->afailure("action failure");
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action sans step", function ($msg) {
|
||||||
|
$msg->adone("action done");
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->desc("actions imbriquées");
|
||||||
|
$msg->action("action0", function ($msg) {
|
||||||
|
$msg->action("action1", function ($msg) {
|
||||||
|
$msg->action("action2", function ($msg) {
|
||||||
|
$msg->asuccess("action2 success");
|
||||||
|
});
|
||||||
|
$msg->asuccess("action1 success");
|
||||||
|
});
|
||||||
|
$msg->asuccess("action0 success");
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->desc("action avec step, sans messages");
|
||||||
|
$msg->action("action avec step, sans messages, success", function ($msg) {
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->asuccess();
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action avec step, sans messages, failure", function ($msg) {
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->afailure();
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action avec step, sans messages, done", function ($msg) {
|
||||||
|
$msg->step("step");
|
||||||
|
$msg->adone();
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->desc("action sans step, sans messages");
|
||||||
|
$msg->action("action sans step, sans messages, success", function ($msg) {
|
||||||
|
$msg->asuccess();
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action sans step, sans messages, failure", function ($msg) {
|
||||||
|
$msg->afailure();
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action sans step, sans messages, done", function ($msg) {
|
||||||
|
$msg->adone();
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->desc("actions imbriquées, sans messages");
|
||||||
|
$msg->action("action0", function ($msg) {
|
||||||
|
$msg->action("action1", function ($msg) {
|
||||||
|
$msg->action("action2", function ($msg) {
|
||||||
|
$msg->asuccess();
|
||||||
|
});
|
||||||
|
$msg->asuccess();
|
||||||
|
});
|
||||||
|
$msg->asuccess();
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->desc("action avec step, avec code de retour");
|
||||||
|
$msg->action("action avec step, avec code de retour true", function ($msg) {
|
||||||
|
$msg->step("step");
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action avec step, avec code de retour false", function ($msg) {
|
||||||
|
$msg->step("step");
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action avec step, avec code de retour autre", function ($msg) {
|
||||||
|
$msg->step("step");
|
||||||
|
return "autre";
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action avec step, avec code de retour null", function ($msg) {
|
||||||
|
$msg->step("step");
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->desc("action sans step, avec code de retour");
|
||||||
|
$msg->action("action sans step, avec code de retour true", function ($msg) {
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action sans step, avec code de retour false", function ($msg) {
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->action("action sans step, avec code de retour autre", function ($msg) {
|
||||||
|
return "autre";
|
||||||
|
});
|
||||||
|
|
||||||
|
# ici, il n'y aura pas de message du tout
|
||||||
|
$msg->action("action sans step, avec code de retour null", function ($msg) {
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->info("info");
|
||||||
|
$msg->note("note");
|
||||||
|
$msg->warning("warning");
|
||||||
|
$msg->error("error");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->section("multi-line\nsection", function ($msg) {
|
||||||
|
$msg->title("multi-line\ntitle");
|
||||||
|
$msg->title("another\ntitle");
|
||||||
|
|
||||||
|
$msg->print("multi-line\nprint");
|
||||||
|
$msg->info("multi-line\ninfo");
|
||||||
|
$msg->action("multi-line\naction");
|
||||||
|
$msg->asuccess();
|
||||||
|
$msg->action("multi-line\naction");
|
||||||
|
$msg->step("multi-line\nstep");
|
||||||
|
$msg->afailure();
|
||||||
|
$msg->action("multi-line\naction");
|
||||||
|
$msg->step("multi-line\nstep");
|
||||||
|
$msg->asuccess("multi-line\nsuccess");
|
||||||
|
$msg->action("multi-line\naction");
|
||||||
|
$msg->step("multi-line\nstep");
|
||||||
|
$msg->adone("multi-line\ndone");
|
||||||
|
|
||||||
|
$msg->end();
|
||||||
|
$msg->end();
|
||||||
|
});
|
||||||
|
|
||||||
|
$msg->section("Exceptions", function ($msg) {
|
||||||
|
$e = new Exception("message");
|
||||||
|
$u1 = new UserException("userMessage");
|
||||||
|
$u2 = new UserException("userMessage", "techMessage");
|
||||||
|
$msg->title("avec message", function ($msg) use ($e, $u1, $u2) {
|
||||||
|
$msg->info(["exception", $e]);
|
||||||
|
$msg->info(["userException1", $u1]);
|
||||||
|
$msg->info(["userException2", $u2]);
|
||||||
|
});
|
||||||
|
$msg->title("sans message", function ($msg) use ($e, $u1, $u2) {
|
||||||
|
$msg->info($e);
|
||||||
|
$msg->info($u1);
|
||||||
|
$msg->info($u2);
|
||||||
|
});
|
||||||
|
});
|
18
php/tbin/test-output-forever.php
Executable file
18
php/tbin/test-output-forever.php
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/php
|
||||||
|
<?php
|
||||||
|
require(__DIR__.'/../vendor/autoload.php');
|
||||||
|
|
||||||
|
use nulib\UserException;
|
||||||
|
use nulib\output\std\StdMessenger;
|
||||||
|
use nulib\output\msg;
|
||||||
|
|
||||||
|
msg::set_messenger(new StdMessenger(), new StdMessenger([
|
||||||
|
"output" => "output-forever.log",
|
||||||
|
]));
|
||||||
|
|
||||||
|
$index = 1;
|
||||||
|
while (true) {
|
||||||
|
msg::info("info $index");
|
||||||
|
$index++;
|
||||||
|
sleep(1);
|
||||||
|
}
|
@ -1,10 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\app {
|
namespace nulib\app {
|
||||||
use nulib\tests\TestCase;
|
|
||||||
use nulib\app\impl\config;
|
use nulib\app\impl\config;
|
||||||
use nulib\app\impl\myapp;
|
use nulib\app\impl\myapp;
|
||||||
use nulib\app\impl\MyApplication1;
|
use nulib\app\impl\MyApplication1;
|
||||||
use nulib\app\impl\MyApplication2;
|
use nulib\app\impl\MyApplication2;
|
||||||
|
use nulib\tests\TestCase;
|
||||||
|
|
||||||
class appTest extends TestCase {
|
class appTest extends TestCase {
|
||||||
function testWith() {
|
function testWith() {
|
||||||
@ -19,13 +20,15 @@ namespace nulib\app {
|
|||||||
"bindir" => "$projdir/vendor/bin",
|
"bindir" => "$projdir/vendor/bin",
|
||||||
"autoload" => "$projdir/vendor/autoload.php",
|
"autoload" => "$projdir/vendor/autoload.php",
|
||||||
],
|
],
|
||||||
"appcode" => "nur-ture",
|
"projcode" => "nulib-base",
|
||||||
"cwd" => $cwd,
|
"cwd" => $cwd,
|
||||||
"datadir" => "$projdir/devel",
|
"datadir" => "$projdir/devel",
|
||||||
"etcdir" => "$projdir/devel/etc",
|
"etcdir" => "$projdir/devel/etc",
|
||||||
"vardir" => "$projdir/devel/var",
|
"vardir" => "$projdir/devel/var",
|
||||||
"logdir" => "$projdir/devel/log",
|
"logdir" => "$projdir/devel/log",
|
||||||
"profile" => "devel",
|
"profile" => "devel",
|
||||||
|
"facts" => null,
|
||||||
|
"debug" => null,
|
||||||
"appgroup" => null,
|
"appgroup" => null,
|
||||||
"name" => "my-application1",
|
"name" => "my-application1",
|
||||||
"title" => null,
|
"title" => null,
|
||||||
@ -38,13 +41,15 @@ namespace nulib\app {
|
|||||||
"bindir" => "$projdir/vendor/bin",
|
"bindir" => "$projdir/vendor/bin",
|
||||||
"autoload" => "$projdir/vendor/autoload.php",
|
"autoload" => "$projdir/vendor/autoload.php",
|
||||||
],
|
],
|
||||||
"appcode" => "nur-ture",
|
"projcode" => "nulib-base",
|
||||||
"cwd" => $cwd,
|
"cwd" => $cwd,
|
||||||
"datadir" => "$projdir/devel",
|
"datadir" => "$projdir/devel",
|
||||||
"etcdir" => "$projdir/devel/etc",
|
"etcdir" => "$projdir/devel/etc",
|
||||||
"vardir" => "$projdir/devel/var",
|
"vardir" => "$projdir/devel/var",
|
||||||
"logdir" => "$projdir/devel/log",
|
"logdir" => "$projdir/devel/log",
|
||||||
"profile" => "devel",
|
"profile" => "devel",
|
||||||
|
"facts" => null,
|
||||||
|
"debug" => null,
|
||||||
"appgroup" => null,
|
"appgroup" => null,
|
||||||
"name" => "my-application2",
|
"name" => "my-application2",
|
||||||
"title" => null,
|
"title" => null,
|
||||||
@ -63,13 +68,15 @@ namespace nulib\app {
|
|||||||
"bindir" => "$projdir/vendor/bin",
|
"bindir" => "$projdir/vendor/bin",
|
||||||
"autoload" => "$projdir/vendor/autoload.php",
|
"autoload" => "$projdir/vendor/autoload.php",
|
||||||
],
|
],
|
||||||
"appcode" => "nur-ture",
|
"projcode" => "nulib-base",
|
||||||
"cwd" => $cwd,
|
"cwd" => $cwd,
|
||||||
"datadir" => "$projdir/devel",
|
"datadir" => "$projdir/devel",
|
||||||
"etcdir" => "$projdir/devel/etc",
|
"etcdir" => "$projdir/devel/etc",
|
||||||
"vardir" => "$projdir/devel/var",
|
"vardir" => "$projdir/devel/var",
|
||||||
"logdir" => "$projdir/devel/log",
|
"logdir" => "$projdir/devel/log",
|
||||||
"profile" => "devel",
|
"profile" => "devel",
|
||||||
|
"facts" => null,
|
||||||
|
"debug" => null,
|
||||||
"appgroup" => null,
|
"appgroup" => null,
|
||||||
"name" => "my-application1",
|
"name" => "my-application1",
|
||||||
"title" => null,
|
"title" => null,
|
||||||
@ -82,13 +89,15 @@ namespace nulib\app {
|
|||||||
"bindir" => "$projdir/vendor/bin",
|
"bindir" => "$projdir/vendor/bin",
|
||||||
"autoload" => "$projdir/vendor/autoload.php",
|
"autoload" => "$projdir/vendor/autoload.php",
|
||||||
],
|
],
|
||||||
"appcode" => "nur-ture",
|
"projcode" => "nulib-base",
|
||||||
"cwd" => $cwd,
|
"cwd" => $cwd,
|
||||||
"datadir" => "$projdir/devel",
|
"datadir" => "$projdir/devel",
|
||||||
"etcdir" => "$projdir/devel/etc",
|
"etcdir" => "$projdir/devel/etc",
|
||||||
"vardir" => "$projdir/devel/var",
|
"vardir" => "$projdir/devel/var",
|
||||||
"logdir" => "$projdir/devel/log",
|
"logdir" => "$projdir/devel/log",
|
||||||
"profile" => "devel",
|
"profile" => "devel",
|
||||||
|
"facts" => null,
|
||||||
|
"debug" => null,
|
||||||
"appgroup" => null,
|
"appgroup" => null,
|
||||||
"name" => "my-application2",
|
"name" => "my-application2",
|
||||||
"title" => null,
|
"title" => null,
|
||||||
@ -99,12 +108,12 @@ namespace nulib\app {
|
|||||||
|
|
||||||
namespace nulib\app\impl {
|
namespace nulib\app\impl {
|
||||||
|
|
||||||
|
use nulib\app\app;
|
||||||
use nulib\app\cli\Application;
|
use nulib\app\cli\Application;
|
||||||
use nulib\os\path;
|
use nulib\os\path;
|
||||||
use nulib\app\app;
|
|
||||||
|
|
||||||
class config {
|
class config {
|
||||||
const PROJDIR = __DIR__.'/../..';
|
const PROJDIR = __DIR__.'/../../..';
|
||||||
|
|
||||||
static function get_projdir(): string {
|
static function get_projdir(): string {
|
||||||
return path::abspath(self::PROJDIR);
|
return path::abspath(self::PROJDIR);
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
namespace nulib\app;
|
namespace nulib\app;
|
||||||
|
|
||||||
use nulib\tests\TestCase;
|
use nulib\tests\TestCase;
|
||||||
use nulib\app\args;
|
|
||||||
|
|
||||||
class argsTest extends TestCase {
|
class argsTest extends TestCase {
|
||||||
function testFrom_array() {
|
function testFrom_array() {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
namespace nulib\app\cli;
|
namespace nulib\app\cli;
|
||||||
|
|
||||||
use nulib\app\args\Aodef;
|
use nulib\app\args\Aodef;
|
||||||
use nur\t\TestCase;
|
use nulib\tests\TestCase;
|
||||||
|
|
||||||
class AodefTest extends TestCase {
|
class AodefTest extends TestCase {
|
||||||
protected static function assertArg(
|
protected static function assertArg(
|
||||||
@ -156,4 +156,18 @@ class AodefTest extends TestCase {
|
|||||||
true, true, false,
|
true, true, false,
|
||||||
false, 0, 0, "");
|
false, 0, 0, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testArgsdesc() {
|
||||||
|
$aodef = new Aodef(["-o:value", "--longo"]);
|
||||||
|
self::assertArg($aodef,
|
||||||
|
["-o", "--longo"],
|
||||||
|
true, true, false,
|
||||||
|
true, 1, 1, "VALUE");
|
||||||
|
|
||||||
|
$aodef = new Aodef(["-o:file,suffix", "--longo"]);
|
||||||
|
self::assertArg($aodef,
|
||||||
|
["-o", "--longo"],
|
||||||
|
true, true, false,
|
||||||
|
true, 2, 2, "FILE SUFFIX");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ namespace nulib\app\cli;
|
|||||||
use nulib\app\args\Aogroup;
|
use nulib\app\args\Aogroup;
|
||||||
use nulib\app\args\Aolist;
|
use nulib\app\args\Aolist;
|
||||||
use nulib\app\args\Aosection;
|
use nulib\app\args\Aosection;
|
||||||
use nur\t\TestCase;
|
use nulib\tests\TestCase;
|
||||||
|
|
||||||
class AolistTest extends TestCase {
|
class AolistTest extends TestCase {
|
||||||
function testGroup() {
|
function testGroup() {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
namespace nulib\app\cli;
|
namespace nulib\app\cli;
|
||||||
|
|
||||||
use nulib\app\args\SimpleAolist;
|
use nulib\app\args\SimpleAolist;
|
||||||
use nur\t\TestCase;
|
use nulib\tests\TestCase;
|
||||||
|
|
||||||
class SimpleAolistTest extends TestCase {
|
class SimpleAolistTest extends TestCase {
|
||||||
function testOverride() {
|
function testOverride() {
|
||||||
@ -56,4 +56,21 @@ class SimpleAolistTest extends TestCase {
|
|||||||
|
|
||||||
self::assertTrue(true);
|
self::assertTrue(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testRemainingArgs() {
|
||||||
|
$aolist = new SimpleAolist([]);
|
||||||
|
echo "$aolist\n"; #XXX
|
||||||
|
|
||||||
|
$aolist = new SimpleAolist([
|
||||||
|
["name" => "args"],
|
||||||
|
]);
|
||||||
|
echo "$aolist\n"; #XXX
|
||||||
|
|
||||||
|
$aolist = new SimpleAolist([
|
||||||
|
["args" => 2, "name" => "args"],
|
||||||
|
]);
|
||||||
|
echo "$aolist\n"; #XXX
|
||||||
|
|
||||||
|
self::assertTrue(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
namespace nulib\app\cli;
|
namespace nulib\app\cli;
|
||||||
|
|
||||||
use nulib\app\args\SimpleArgsParser;
|
use nulib\app\args\SimpleArgsParser;
|
||||||
use nur\t\TestCase;
|
use nulib\tests\TestCase;
|
||||||
|
|
||||||
class SimpleArgsParserTest extends TestCase {
|
class SimpleArgsParserTest extends TestCase {
|
||||||
const NORMALIZE_ARGS = [
|
const NORMALIZE_ARGS = [
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\app\config {
|
namespace nulib\app\config {
|
||||||
use PHPUnit\Framework\TestCase;
|
|
||||||
|
|
||||||
use nulib\app\config\impl\result;
|
|
||||||
use nulib\app\config\impl\config1;
|
use nulib\app\config\impl\config1;
|
||||||
use nulib\app\config\impl\config2;
|
use nulib\app\config\impl\config2;
|
||||||
|
use nulib\app\config\impl\result;
|
||||||
|
use nulib\tests\TestCase;
|
||||||
|
|
||||||
class ConfigManagerTest extends TestCase {
|
class ConfigManagerTest extends TestCase {
|
||||||
function testConfigurators() {
|
function testConfigurators() {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\db\sqlite;
|
namespace nulib\db\sqlite;
|
||||||
|
|
||||||
use nulib\tests\TestCase;
|
|
||||||
use nulib\cl;
|
use nulib\cl;
|
||||||
use nulib\db\Capacitor;
|
use nulib\db\Capacitor;
|
||||||
use nulib\db\CapacitorChannel;
|
use nulib\db\CapacitorChannel;
|
||||||
|
use nulib\tests\TestCase;
|
||||||
|
|
||||||
class SqliteStorageTest extends TestCase {
|
class SqliteStorageTest extends TestCase {
|
||||||
static function Txx(...$values): void {
|
static function Txx(...$values): void {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\mail;
|
namespace nulib\mail;
|
||||||
|
|
||||||
use nur\t\TestCase;
|
use nulib\tests\TestCase;
|
||||||
|
|
||||||
class MailTemplateTest extends TestCase {
|
class MailTemplateTest extends TestCase {
|
||||||
function testTemplate() {
|
function testTemplate() {
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace nulib\php {
|
namespace nulib\php {
|
||||||
use nulib\tests\TestCase;
|
|
||||||
use nulib\ValueException;
|
|
||||||
use nulib\php\impl\C0;
|
use nulib\php\impl\C0;
|
||||||
use nulib\php\impl\C1;
|
use nulib\php\impl\C1;
|
||||||
use nulib\php\impl\SC;
|
use nulib\php\impl\SC;
|
||||||
|
use nulib\tests\TestCase;
|
||||||
|
use nulib\ValueException;
|
||||||
use ReflectionException;
|
use ReflectionException;
|
||||||
|
|
||||||
class funcTest extends TestCase {
|
class funcTest extends TestCase {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user