Skip to main content

Helpers for generating code.

Project description

Language Utility

Currently, this utility only outputs equivalent PHP code.


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


Dictionary conversion

For dictionaries, order of keys is not guaranteed. In PHP, hashes are ordered.

  'special': '\n',
  'special\x05': 'a string',
  'key': 1,
  'list': [1,2,3],


  'key' => 1,
  'list' => array(
  "special\x05" => 'a string',
  'special' => "\n",


Use php.serialize(data_arg) for serialising data in PHP’s special serialisation format. The module will try to use the module phpserialize for this first but has a fallback version in pure Python for simple values (does not handle ‘classes’, references, or ‘objects’).

Note that the types list, tuple, set, and dict become PHP arrays (the serialisation format requires ‘keys’ to be created for lists so these become integers but should be an equivalent ‘integer-based array’ in PHP (the number keys do not become string keys).

To unserialize, use php.unserialize(str_arg) which requires the phpserialize module.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
LangUtil-0.1.5.tar.gz (4.4 kB) Copy SHA256 hash SHA256 Source None Jun 15, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page