<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