Helpers for generating code.
Project description
Currently, this utility only outputs equivalent PHP code.
PHP
import langutil.php
Converting ‘scalars’
A scalar in PHP is anything that is not an object (in PHP: !is_object(1) === true).
# Booleans
langutil.php.generate_scalar(True) == 'true'
langutil.php.generate_scalar(True, True) == 'TRUE'
# None turns into null
langutil.php.generate_scalar(None) == 'null'
langutil.php.generate_scalar(None, True) == 'null'
# Numbers are untouched
langutil.php.generate_scalar(1) == '1'
langutil.php.generate_scalar(2.5) == '2.5'
# Strings use single quotes unless it is necessary to use double quotes
# Double quotes are only necessary if the character has any control codes
langutil.php.generate_scalar('php code!') == ''php code!''
langutil.php.generate_scalar('this string has\nnew lines') == '"this string has\nnew lines"'
Converting lists, tuples, dictionaries, etc
These types all resolve to the same type in PHP: the ‘PHP array’. The generate_array() function handles recursive structures but may fail to detect special objects’ underlying structure unless they implement methods like __dict__().
All strings (including keys for dictionaries) will default to single quotes unless double quotes are necessary.
The output will use new lines and two-space indents.
langutil.php.generate_array([]) == 'array();'
langutil.php.generate_array(tuple([])) == 'array();'
langutil.php.generate_array(set(tuple([]))) == 'array();'
langutil.php.generate_array({}) == 'array();'
List/set/tuple conversion
langutil.php.generate_array([
1,
2,
])
Output:
array(
1,
2,
);
Dictionary conversion
For dictionaries, order of keys is not guaranteed. In PHP, hashes are ordered.
langutil.php.generate_array({
'special': '\n',
'special\x05': 'a string',
'key': 1,
'list': [1,2,3],
})
Output:
array(
'key' => 1,
'list' => array(
1,
2,
3,
),
"special\x05" => 'a string',
'special' => "\n",
);
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.