<pman>Intégration de la branche dev74
This commit is contained in:
commit
5cc6b84287
@ -24,6 +24,8 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"nulib/tests": "^8.2",
|
"nulib/tests": "^8.2",
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"ext-iconv": "*",
|
||||||
"ext-posix": "*",
|
"ext-posix": "*",
|
||||||
"ext-pcntl": "*",
|
"ext-pcntl": "*",
|
||||||
"ext-curl": "*",
|
"ext-curl": "*",
|
||||||
|
7
php/src/app/TODO.md
Normal file
7
php/src/app/TODO.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# nulib\app
|
||||||
|
|
||||||
|
* [ ] ajouter des méthodes normalisées `app::get_cachedir()` et
|
||||||
|
`app::get_cachefile($name)` avec la valeur par défaut
|
||||||
|
`cachedir = $vardir/cache`
|
||||||
|
|
||||||
|
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
|
@ -366,13 +366,14 @@ class CapacitorChannel implements ITransactor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* méthode appelée lors du parcours des éléments avec
|
* méthode appelée lors du parcours des éléments avec {@link Capacitor::each()}
|
||||||
* {@link Capacitor::each()}
|
|
||||||
*
|
*
|
||||||
* @param ?array $row la ligne courante. l'élément courant est accessible via
|
* @param ?array $row la ligne courante. l'élément courant est accessible via
|
||||||
* $row["item"]
|
* $row["item"]
|
||||||
* @return ?array le cas échéant, un tableau non null utilisé pour mettre à
|
* @return ?array le cas échéant, un tableau non null utilisé pour mettre à
|
||||||
* jour la ligne courante
|
* jour la ligne courante
|
||||||
|
* Retourner [false] pour arrêter le parcours des éléments (la ligne courante
|
||||||
|
* ainsi que les autres lignes ne sont plus mise à jour)
|
||||||
*
|
*
|
||||||
* - Il est possible de mettre à jour $item en le retourant avec la clé "item"
|
* - Il est possible de mettre à jour $item en le retourant avec la clé "item"
|
||||||
* - La clé primaire (il s'agit généralement de "id_") ne peut pas être
|
* - La clé primaire (il s'agit généralement de "id_") ne peut pas être
|
||||||
|
@ -661,7 +661,9 @@ abstract class CapacitorStorage {
|
|||||||
foreach ($rows as $row) {
|
foreach ($rows as $row) {
|
||||||
$rowIds = $this->getRowIds($channel, $row);
|
$rowIds = $this->getRowIds($channel, $row);
|
||||||
$updates = $onEach->invoke([$row, ...$args]);
|
$updates = $onEach->invoke([$row, ...$args]);
|
||||||
if (is_array($updates) && $updates) {
|
if ($updates === [false]) {
|
||||||
|
break;
|
||||||
|
} elseif ($updates !== null) {
|
||||||
if (!array_key_exists("modified_", $updates)) {
|
if (!array_key_exists("modified_", $updates)) {
|
||||||
$updates["modified_"] = date("Y-m-d H:i:s");
|
$updates["modified_"] = date("Y-m-d H:i:s");
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,11 @@ use nulib\db\pdo\Pdo;
|
|||||||
class Mysql extends Pdo {
|
class Mysql extends Pdo {
|
||||||
const PREFIX = "mysql";
|
const PREFIX = "mysql";
|
||||||
|
|
||||||
|
static function config_unbufferedQueries(self $mysql): void {
|
||||||
|
$mysql->db->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
|
||||||
|
}
|
||||||
|
const CONFIG_unbufferedQueries = [self::class, "config_unbufferedQueries"];
|
||||||
|
|
||||||
function getDbname(): ?string {
|
function getDbname(): ?string {
|
||||||
$url = $this->dbconn["name"] ?? null;
|
$url = $this->dbconn["name"] ?? null;
|
||||||
if ($url !== null && preg_match('/^mysql(?::|.*;)dbname=([^;]+)/i', $url, $ms)) {
|
if ($url !== null && preg_match('/^mysql(?::|.*;)dbname=([^;]+)/i', $url, $ms)) {
|
||||||
|
@ -40,11 +40,6 @@ class Pdo implements IDatabase {
|
|||||||
}
|
}
|
||||||
const CONFIG_errmodeException_lowerCase = [self::class, "config_errmodeException_lowerCase"];
|
const CONFIG_errmodeException_lowerCase = [self::class, "config_errmodeException_lowerCase"];
|
||||||
|
|
||||||
static function config_unbufferedQueries(self $pdo): void {
|
|
||||||
$pdo->db->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
|
|
||||||
}
|
|
||||||
const CONFIG_unbufferedQueries = [self::class, "config_unbufferedQueries"];
|
|
||||||
|
|
||||||
protected const OPTIONS = [
|
protected const OPTIONS = [
|
||||||
\PDO::ATTR_PERSISTENT => true,
|
\PDO::ATTR_PERSISTENT => true,
|
||||||
];
|
];
|
||||||
|
@ -276,7 +276,7 @@ class txt {
|
|||||||
* supprimer les diacritiques de la chaine $text
|
* supprimer les diacritiques de la chaine $text
|
||||||
*
|
*
|
||||||
* la translitération se fait avec les règles de la locale spécifiée.
|
* la translitération se fait avec les règles de la locale spécifiée.
|
||||||
* NB: la translitération ne fonctionne pas si LC_CTYPE == C ou POISX
|
* NB: la translitération ne fonctionne pas si LC_CTYPE == C ou POSIX
|
||||||
*/
|
*/
|
||||||
static final function remove_diacritics(?string $text, string $locale="fr_FR.UTF-8"): ?string {
|
static final function remove_diacritics(?string $text, string $locale="fr_FR.UTF-8"): ?string {
|
||||||
if ($text === null) return null;
|
if ($text === null) return null;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user