All code generated by the SNAC project will be written in one of the following languages.
* PHP 7 (preferred)
* PHP 5
* PHP 7
* Java
* XSLT
## Coding Style Specifications
Source code must match the following style guidelines:
* 4-space tabs with literal spaces
* Maximum line-length of 100 characters
* Maximum line-length of 140 characters
* Variables and Class names follow standard camel casing syntax, with descriptive names
* Class names start with upper-case letters
* Variable and field names start with lower-clase letters
...
...
@@ -21,10 +19,14 @@ Source code must match the following style guidelines:
* Filenames must match the name of the class defined within (exactly)
* Directory structure must mirror the namespace structure (PHP)
Data storage classes, i.e. those in the `src/snac/data` directory, must have `toArray()`, `fromArray()`, and `equals()` methods. *Note: any update to the data fields in a data storage class must also include an update to these three methods.*
## Test-Driven Development
Each class that is written should have matching and appropriate unit tests written. For PHP code, those tests will be executed using the [PHPUnit](https://phpunit.de/index.html) unit testing framework.
Data storage classes must also have tests for their `equals()` methods that test both equality and non-equality.
## Internal Documentation of Code
All code will be internally-documented using [Javadoc](http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html) style documentation, which has been ported to PHP as [phpdoc](http://www.phpdoc.org/docs/latest/guides/docblocks.html) and XSLT as [XSLTdoc](http://www.pnp-software.com/XSLTdoc/). Tools to generate documentation from the code is also available for [Java](http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html), [PHP](http://www.phpdoc.org/), and [XSLT](http://www.pnp-software.com/XSLTdoc/).
...
...
@@ -38,9 +40,6 @@ All code will be internally-documented using [Javadoc](http://www.oracle.com/tec