@@ -250,6 +250,65 @@ representation of the object.
250
250
parsers will likely not recognize the ``php/object `` tag and non-PHP
251
251
implementations certainly won't - use with discretion!
252
252
253
+ Syntax Validation
254
+ ~~~~~~~~~~~~~~~~~
255
+
256
+ The syntax of YAML contents can be validated through the CLI using the
257
+ :class: `Symfony\\ Component\\ Yaml\\ Command\\ LintCommand ` command.
258
+
259
+ First, install the Console component:
260
+
261
+ .. code-block :: bash
262
+
263
+ $ composer require symfony/console
264
+
265
+ Create a script containing a console application:
266
+
267
+ .. code-block :: php
268
+
269
+ // lint.php
270
+
271
+ use Symfony\Component\Console\Application;
272
+ use Symfony\Component\Yaml\Command\LintCommand;
273
+
274
+ (new Application('yaml/lint'))
275
+ ->add(new LintCommand())
276
+ ->getApplication()
277
+ ->setDefaultCommand('lint:yaml', true)
278
+ ->run();
279
+
280
+ Then, execute the script for validating contents:
281
+
282
+ .. code-block :: bash
283
+
284
+ # validates a single file
285
+ $ php lint.php path/to/file.yml
286
+
287
+ # or all the files in a directory
288
+ $ php lint.php path/to/directory
289
+
290
+ # or contents passed to STDIN
291
+ $ cat path/to/file.yml | php lint.php
292
+
293
+ The result will be written on STDOUT, default in TXT format:
294
+
295
+ .. code-block :: bash
296
+
297
+ [OK] All 1 YAML files contain valid syntax.
298
+
299
+ For a JSON output, use the ``format `` option:
300
+
301
+ .. code-block :: bash
302
+
303
+ $ php lint.php path/to/file.yml --format json
304
+
305
+ [
306
+ {
307
+ " file" : " path/to/file.yml" ,
308
+ " valid" : true
309
+ }
310
+ ]
311
+
253
312
Learn More
254
313
----------
255
314
0 commit comments