from wphp import PHPApp import os here = os.path.dirname(os.path.abspath(__file__)) wordpress_dir = os.path.join(here, 'src') class WordpressApp(PHPApp): def __init__(self, db_name, db_user, db_password, db_host='localhost', table_prefix='wp_', wplang='', src_dir=wordpress_dir, logger='wphp', log_level=None, php_options=None): self.db_name = db_name self.db_user = db_user self.db_password = db_password self.db_host = db_host self.table_prefix = table_prefix self.wplang = wplang PHPApp.__init__( self, base_dir=src_dir, logger=logger, log_level=log_level, php_options=php_options) def __call__(self, environ, start_response): environ['DB_NAME'] = self.db_name environ['DB_USER'] = self.db_user environ['DB_PASSWORD'] = self.db_password environ['DB_HOST'] = self.db_host environ['WPLANG'] = self.wplang environ['WP_TABLE_PREFIX'] = self.table_prefix return PHPApp.__call__( self, environ, start_response) def make_app( global_conf, db_name, db_user, db_password, db_host='localhost', table_prefix='wp_', wplang='', logger='wphp', log_level=None, **kw): php_options = {} for name, value in kw.items(): if name.startswith('php_option'): del kw[name] name = name[len('php_option'):].strip() php_options[name] = value app = WordpressApp( db_name=db_name, db_user=db_user, db_password=db_password, db_host=db_host, table_prefix=table_prefix, wplang=wplang, logger=logger, log_level=log_level or None, php_options=php_options, ) return app