| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #
- # S P Y C
- # a simple php yaml class
- #
- # Load this README!
- # >> $readme = Spyc::YAMLLoad('README');
- #
- --- %YAML:1.1
- title: Spyc -- a Simple PHP YAML Class
- version: 0.5
- authors: [chris wanstrath (chris@ozmm.org), vlad andersen (vlad.andersen@gmail.com)]
- websites: [http://www.yaml.org, http://spyc.sourceforge.net]
- license: [MIT License, http://www.opensource.org/licenses/mit-license.php]
- copyright: "(c) 2005-2006 Chris Wanstrath, 2006-2011 Vlad Andersen"
- tested on: [php 5.2.x]
- installation: >
- Copy spyc.php to a directory you can
- access with your YAML-ready PHP script.
- That's it!
- about: >
- From www.yaml.org:
- "YAML(tm) (rhymes with 'camel') is a human-friendly, cross language,
- Unicode based data serialization language designed around the common
- native data structures of agile programming languages. It is broadly
- useful for programming needs ranging from configuration files to
- Internet messaging to object persistence to data auditing. Together
- with the Unicode standard for characters, the YAML specification provides
- all the information necessary to understand YAML Version 1.1 and to
- creating programs that process YAML information.
- YAML(tm) is a balance of the following design goals:
- - YAML documents are very readable by humans.
- - YAML interacts well with scripting languages.
- - YAML uses host languages' native data structures.
- - YAML has a consistent information model.
- - YAML enables stream-based processing.
- - YAML is expressive and extensible.
- - YAML is easy to implement."
- YAML makes a lot of sense. It's easy to use, easy to learn, and cool.
- As the lucky stiff named why once said, "YAML is a beacon of light."
- If you're new to YAML, may we suggest YAML In Five Minutes:
- - http://yaml.kwiki.org/?YamlInFiveMinutes
- If you don't have five minutes, realize that this README is a completely
- valid YAML document. Dig in, load this or any YAML file into an array
- with Spyc and see how easy it is to translate friendly text into usable
- data.
- The purpose of Spyc is to provide a pure PHP alternative to Syck, a
- simple API for loading and dumping YAML documents, a YAML loader which
- understands a usable subset of the YAML spec, and to further spread
- the glory of YAML to the PHP masses.
- If you're at all hesitant ("usable subset of YAML?!"), navigate
- http://yaml.org/start.html. Spyc completely understands the YAML
- document shown there, a document which has features way beyond the
- scope of what normal config files might require. Try it for yourself,
- and then start enjoying the peace of mind YAML brings to your life.
- meat and a few potatoes:
- - concept: Loading a YAML document into PHP
- brief: >
- $yaml will become an array of all the data in wicked.yaml
- code: |
- include('spyc.php');
- $yaml = Spyc::YAMLLoad('wicked.yaml');
- - concept: Loading a YAML string into PHP
- brief: >
- $array will look like this:
- array('A YAML','document in a','string')
- code: |
- include('spyc.php');
- $yaml = '- A YAML\n- document in a\n- string.';
- $array = Spyc::YAMLLoad($yaml);
- - concept: Dumping a PHP array to YAML
- brief: >
- $yaml will become a string of a YAML document created from
- $array.
- code: |
- include('spyc.php');
- $array['name'] = 'chris';
- $array['sport'] = 'curbing';
- $yaml = Spyc::YAMLDump($array);
- prior art:
- - who: [Brian Ingerson, Clark Evans, Oren Ben-Kiki]
- why?: >
- The YAML spec is really a piece of work, and these guys
- did a great job on it. A simple and elegant language like
- YAML was a long time coming and it's refreshing to know
- such able minded individuals took the task to heart and
- executed it with cunning and strength. In addition to
- their various noteworthy contributions to YAML parsers
- and related projects, YAML.pm's README is a treasure trove
- of information for knowledge seekers. Thanks, guys.
- - who: why the lucky stiff
- why?: >
- As the author of Syck, the code used in Ruby for the language's
- YAML class and methods, why is indirectly (directly?) responsible
- for my first exposure to YAML (as a config file in a Ruby web-app)
- and the countless hours I spent playing with this sheik new data
- format afterwards. Syck's README is a YAML file and thus the
- inspiration for this file and, even, this very piece of software.
- - who: Steve Howell
- why?: >
- Python's YAML implementation. PyYAML's README file is also YAML,
- so it too inspired the YAML format of this README file.
- - who: [Rasmus Lerdorf, Zeev Suraski, Andi Gutmans, et al]
- why?: >
- PHP is great at what it does best. It's also paid a lot of my bills.
- Thanks.
- bugs:
- report: >
- Please see Spyc's Sourceforge project page for information on reporting bugs.
- speed: >
- This implementation was not designed for speed. Rather, it
- was designed for those who need a pure PHP implementation of
- a YAML parser and who are not overly concerned with performance.
- If you want speed, check out Syck.
- depth: >
- This parser is by no means a comprehensive YAML parser. For supported
- features and future plans, check the website.
- unicode: >
- YAML is supposed to be unicode, but for now we're just using ASCII.
- PHP has crappy unicode support but who knows what the future holds.
- resources:
- - http://www.yaml.org
- - http://www.yaml.org/spec/
- - http://yaml.kwiki.org/?YamlInFiveMinutes
- - http://www.whytheluckystiff.net/syck/
- - http://yaml4r.sourceforge.net/cookbook/
- thanks:
- - Adam Wood
- - Daniel Ferreira
- - Aaron Jensen
- - Mike Thornton
- - Fabien Potencier
- - Mustafa Kumas
|