@@ -64,7 +64,98 @@ git clone https://github.com/josantonius/php-cookie.git
64
64
65
65
## Métodos disponibles
66
66
67
- Ver [ documentación] ( /docs/api/packages/Application.html ) generada por [ phpDocumentor] ( https://www.phpdoc.org/ ) .
67
+ ### Establece las opciones de las cookies
68
+
69
+ ``` php
70
+ /**
71
+ * Opciones por defecto:
72
+ *
73
+ * domain: '' - Dominio para el que estará disponible la cookie.
74
+ * expires: 0 - Cuándo expirará la cookie.
75
+ * httpOnly: false - Si la cookie sólo estará disponible a través del protocolo HTTP.
76
+ * path: '/' - Ruta para la que estará disponible la cookie.
77
+ * raw: false - Si la cookie se enviará como una cadena sin procesar.
78
+ * sameSite: null - Impone el uso de una política samesite laxa o estricta.
79
+ * secure: false - Si la cookie sólo estará disponible a través del protocolo HTTPS.
80
+ *
81
+ * Estos ajustes se utilizarán para crear y eliminar cookies.
82
+ */
83
+
84
+ $cookie = new Cookie(
85
+ string $domain = '',
86
+ int|string|DateTime $expires = 0,
87
+ bool $httpOnly = false,
88
+ string $path = '/',
89
+ bool $raw = false,
90
+ null|string $sameSite = null,
91
+ bool $secure = false
92
+ );
93
+ ```
94
+
95
+ ** @see ** < https://www.php.net/manual/en/datetime.formats.php >
96
+ para conocer los formatos de fecha y hora admitidos.
97
+
98
+ ** @throws ** ` CookieException ` si el valor de $sameSite es incorrecto.
99
+
100
+ ### Establece una cookie por nombre
101
+
102
+ ``` php
103
+ $cookie->set(string $name, mixed $value, null|int|string|DateTime $expires = null): void;
104
+ ```
105
+
106
+ ** @throws ** ` CookieException ` si las cabeceras ya han sido enviadas.
107
+
108
+ ** @throws ** ` CookieException ` si falla el análisis de la cadena de fecha/hora.
109
+
110
+ ### Establece varias cookies a la vez
111
+
112
+ Si las cookies existen se sustituyen, si no existen se crean.
113
+
114
+ ``` php
115
+ $cookie->replace(array $data, null|int|string|DateTime $expires = null): void
116
+ ```
117
+
118
+ ** @throws ** ` CookieException ` si las cabeceras ya han sido enviadas.
119
+
120
+ ### Obtiene una cookie por su nombre
121
+
122
+ Opcionalmente define un valor por defecto cuando la cookie no existe.
123
+
124
+ ``` php
125
+ $cookie->get(string $name, mixed $default = null): mixed
126
+ ```
127
+
128
+ ### Obtiene todas las cookies
129
+
130
+ ``` php
131
+ $cookie->all(): array
132
+ ```
133
+
134
+ ### Comprueba si existe una cookie
135
+
136
+ ``` php
137
+ $cookie->has(string $name): bool
138
+ ```
139
+
140
+ ### Elimina una cookie por su nombre y devuelve su valor
141
+
142
+ Opcionalmente define un valor por defecto cuando la cookie no existe.
143
+
144
+ ``` php
145
+ $cookie->pull(string $name, mixed $default = null): mixed
146
+ ```
147
+
148
+ ** @throws ** ` CookieException ` si las cabeceras ya han sido enviadas.
149
+
150
+ ### Borra una cookie por su nombre
151
+
152
+ ``` php
153
+ $cookie->remove(string $name): void
154
+ ```
155
+
156
+ ** @throws ** ` CookieException ` si las cabeceras ya han sido enviadas.
157
+
158
+ ** @throws ** ` CookieException ` si falla el análisis de la cadena de fecha/hora.
68
159
69
160
## Cómo empezar
70
161
@@ -87,34 +178,20 @@ $cookie = new Cookie();
87
178
Alternativamente puedes utilizar una fachada para acceder a los métodos estáticamente:
88
179
89
180
``` php
90
- use Josantonius\Cookie\CookieFacade as Cookie;
181
+ use Josantonius\Cookie\Facades\ Cookie;
91
182
```
92
183
93
184
## Usage
94
185
95
186
Ejemplos de uso de esta biblioteca:
96
187
97
- ### Establece las opciones de las cookies
188
+ ### - Establece las opciones de las cookies
98
189
99
190
[ Utilizando objetos] ( #using-objects ) :
100
191
101
192
Con opciones por defecto:
102
193
103
194
``` php
104
- /**
105
- * Opciones por defecto:
106
- *
107
- * domain: '' - Dominio para el que estará disponible la cookie.
108
- * expires: 0 - Cuándo expirará la cookie.
109
- * httpOnly: false - Si es verdadero, la cookie sólo estará disponible a través del protocolo HTTP.
110
- * path: '/' - Ruta para la que estará disponible la cookie.
111
- * raw: false - Si es verdadero, la cookie se enviará como una cadena sin procesar.
112
- * sameSite: null - Impone el uso de una política samesite laxa o estricta.
113
- * secure: false - Si es verdadero, la cookie sólo estará disponible a través del protocolo HTTPS.
114
- *
115
- * Estos ajustes se utilizarán para crear y eliminar cookies.
116
- */
117
-
118
195
$cookie = new Cookie();
119
196
```
120
197
@@ -141,7 +218,7 @@ Cookie::options(
141
218
);
142
219
```
143
220
144
- ### Establece una cookie por nombre
221
+ ### - Establece una cookie por nombre
145
222
146
223
[ Utilizando objetos] ( #using-objects ) :
147
224
@@ -163,7 +240,7 @@ $cookie->set('foo', 'bar', time() + 3600);
163
240
Cookie::set('foo', 'bar', new DateTime('now +1 hour'));
164
241
```
165
242
166
- ### Establece varias cookies a la vez
243
+ ### - Establece varias cookies a la vez
167
244
168
245
[ Utilizando objetos] ( #using-objects ) :
169
246
@@ -185,7 +262,7 @@ $cookie->replace(['foo' => 'bar', 'bar' => 'foo'], time() + 3600);
185
262
Cookie::replace(['foo' => 'bar', 'bar' => 'foo'], time() + 3600);
186
263
```
187
264
188
- ### Obtiene una cookie por su nombre
265
+ ### - Obtiene una cookie por su nombre
189
266
190
267
[ Utilizando objetos] ( #using-objects ) :
191
268
@@ -207,7 +284,7 @@ $cookie->get('foo', false); // false si la cookie no existe
207
284
Cookie::get('foo', false);
208
285
```
209
286
210
- ### Obtiene todas las cookies
287
+ ### - Obtiene todas las cookies
211
288
212
289
[ Utilizando objetos] ( #using-objects ) :
213
290
@@ -221,7 +298,7 @@ $cookie->all();
221
298
Cookie::all();
222
299
```
223
300
224
- ### Comprueba si existe una cookie
301
+ ### - Comprueba si existe una cookie
225
302
226
303
[ Utilizando objetos] ( #using-objects ) :
227
304
@@ -235,7 +312,7 @@ $cookie->has('foo');
235
312
Cookie::has('foo');
236
313
```
237
314
238
- ### Elimina una cookie por su nombre y devuelve su valor
315
+ ### - Elimina una cookie por su nombre y devuelve su valor
239
316
240
317
[ Utilizando objetos] ( #using-objects ) :
241
318
@@ -257,7 +334,7 @@ $cookie->pull('foo', false); // false si el atributo no existe
257
334
Cookie::pull('foo', false);
258
335
```
259
336
260
- ### Borra una cookie por su nombre
337
+ ### - Borra una cookie por su nombre
261
338
262
339
[ Utilizando objetos] ( #using-objects ) :
263
340
@@ -305,13 +382,16 @@ se utilizará este en lugar del valor de **_expires_** establecido en las opcion
305
382
expires: 'now +1 minute'
306
383
);
307
384
308
- $cookie->set('foo', 'bar'); // Esta cookie expirará en 1 minuto
385
+ $cookie->set('foo', 'bar'); // Esta cookie expirará en 1 minuto
309
386
310
- $cookie->set('bar', 'foo', 'now +8 minutes '); // Esta cookie expirará en 8 minutos
387
+ $cookie->set('bar', 'foo', 'now +8 days '); // Esta cookie expirará en 8 días
311
388
312
- $cookie->replace(['foo' => 'bar']); // Estas cookies expirarán en 1 minuto
389
+ $cookie->replace(['foo' => 'bar']); // Estas cookies expirarán en 1 minuto
313
390
314
- $cookie->replace(['foo' => 'bar'], time() + 3600); // Estas cookies expirarán en 1 hora
391
+ $cookie->replace( // Estas cookies expirarán en 1 hora
392
+ ['foo' => 'bar'],
393
+ time() + 3600
394
+ );
315
395
```
316
396
317
397
- Si el parámetro **expires** pasado en las opciones es una cadena de fecha/hora,
@@ -328,7 +408,8 @@ se formateará cuando se utiliza el método `set` o `replace` y no cuando se est
328
408
329
409
## Tests
330
410
331
- Para ejecutar las [pruebas](tests) necesitarás [Composer](http://getcomposer.org/download/) y seguir los siguientes pasos:
411
+ Para ejecutar las [pruebas](tests) necesitarás [Composer](http://getcomposer.org/download/)
412
+ y seguir los siguientes pasos:
332
413
333
414
```console
334
415
git clone https://github.com/josantonius/php-cookie.git
0 commit comments