Skip to content

Commit e1138ff

Browse files
authored
Merge pull request mouredev#4447 from miguelex/main
#25 - php
2 parents fa3c134 + bd78bc4 commit e1138ff

File tree

1 file changed

+175
-0
lines changed

1 file changed

+175
-0
lines changed

Roadmap/25 - LOGS/php/miguelex.php

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
<?php
2+
ini_set('display_errors', 1);
3+
ini_set('display_startup_errors', 1);
4+
error_reporting(E_ALL);
5+
6+
ini_set('log_errors', 1);
7+
ini_set('error_log', './log.txt');
8+
9+
// Error fatal
10+
if (false) {
11+
// Este código nunca se ejecutará
12+
error_log("Este es un ejemplo de mensaje de error fatal", 0);
13+
}
14+
15+
// Advertencia
16+
$result = @file_get_contents('non_existing_file.txt');
17+
if ($result === false) {
18+
error_log("Este es un ejemplo de mensaje de advertencia", 0);
19+
}
20+
21+
// Notificación
22+
$undefined_var;
23+
error_log("Este es un ejemplo de mensaje de notificación", 0);
24+
25+
// Deprecado
26+
function oldFunction() {
27+
error_log("Este es un ejemplo de mensaje de función obsoleta", 0);
28+
}
29+
30+
oldFunction();
31+
32+
// 5. Estricto
33+
class MyClass {
34+
function MyClass() {
35+
error_log("Este es un ejemplo de mensaje de nivel estricto", 0);
36+
}
37+
}
38+
$obj = new MyClass();
39+
40+
// 6. Mensaje personalizado
41+
error_log("Este es un ejemplo de mensaje de log personalizado", 0);
42+
43+
echo "Logs enviados al archivo configurado.";
44+
45+
46+
// Extra
47+
48+
class TaskManager {
49+
private $tasks = [];
50+
51+
public function addTask($name, $description) {
52+
$start_time = microtime(true);
53+
54+
if (isset($this->tasks[$name])) {
55+
error_log("Advertencia: La tarea '$name' ya existe.", 0);
56+
return false;
57+
}
58+
59+
$this->tasks[$name] = $description;
60+
error_log("Información: Tarea '$name' añadida.", 0);
61+
62+
$end_time = microtime(true);
63+
$execution_time = $end_time - $start_time;
64+
error_log("Tiempo de ejecución para añadir tarea '$name': $execution_time segundos.", 0);
65+
66+
return true;
67+
}
68+
69+
public function deleteTask($name) {
70+
$start_time = microtime(true);
71+
72+
if (!isset($this->tasks[$name])) {
73+
error_log("Advertencia: La tarea '$name' no existe.", 0);
74+
return false;
75+
}
76+
77+
unset($this->tasks[$name]);
78+
error_log("Información: Tarea '$name' eliminada.", 0);
79+
80+
$end_time = microtime(true);
81+
$execution_time = $end_time - $start_time;
82+
error_log("Tiempo de ejecución para eliminar tarea '$name': $execution_time segundos.", 0);
83+
84+
return true;
85+
}
86+
87+
public function listTasks() {
88+
$start_time = microtime(true);
89+
90+
if (empty($this->tasks)) {
91+
error_log("Información: No hay tareas para listar.", 0);
92+
return [];
93+
}
94+
95+
$end_time = microtime(true);
96+
$execution_time = $end_time - $start_time;
97+
error_log("Tiempo de ejecución para listar tareas: $execution_time segundos.", 0);
98+
99+
return $this->tasks;
100+
}
101+
}
102+
103+
$taskManager = new TaskManager();
104+
105+
echo "\n\nEJERCICIO EXTRA\n\n";
106+
107+
function showMenu() {
108+
echo "\nGestión de Tareas\n";
109+
echo "1. Añadir tarea\n";
110+
echo "2. Eliminar tarea\n";
111+
echo "3. Listar tareas\n";
112+
echo "4. Salir\n";
113+
echo "Seleccione una opción: ";
114+
}
115+
116+
function addTask($taskManager) {
117+
echo "Ingrese el nombre de la tarea: ";
118+
$name = trim(fgets(STDIN));
119+
echo "Ingrese la descripción de la tarea: ";
120+
$description = trim(fgets(STDIN));
121+
122+
if ($taskManager->addTask($name, $description)) {
123+
echo "Tarea '$name' añadida con éxito.\n";
124+
} else {
125+
echo "Error al añadir la tarea '$name'.\n";
126+
}
127+
}
128+
129+
function deleteTask($taskManager) {
130+
echo "Ingrese el nombre de la tarea a eliminar: ";
131+
$name = trim(fgets(STDIN));
132+
133+
if ($taskManager->deleteTask($name)) {
134+
echo "Tarea '$name' eliminada con éxito.\n";
135+
} else {
136+
echo "Error al eliminar la tarea '$name'.\n";
137+
}
138+
}
139+
140+
function listTasks($taskManager) {
141+
$tasks = $taskManager->listTasks();
142+
if (empty($tasks)) {
143+
echo "No hay tareas.\n";
144+
} else {
145+
echo "Lista de Tareas:\n";
146+
foreach ($tasks as $name => $description) {
147+
echo " - $name: $description\n";
148+
}
149+
}
150+
}
151+
152+
while (true) {
153+
showMenu();
154+
$choice = trim(fgets(STDIN));
155+
156+
switch ($choice) {
157+
case '1':
158+
addTask($taskManager);
159+
break;
160+
case '2':
161+
deleteTask($taskManager);
162+
break;
163+
case '3':
164+
listTasks($taskManager);
165+
break;
166+
case '4':
167+
echo "Saliendo...\n";
168+
exit;
169+
default:
170+
echo "Opción no válida. Por favor, intente de nuevo.\n";
171+
}
172+
}
173+
174+
175+

0 commit comments

Comments
 (0)