The RPF provides a ide-compatible PHP interface to the DomainFactory RP²-API for developers and collects a bunch of ready-to-use extensions for admins and customers. The system is modularly structured and can be extended easily.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
class
config
htdocs
logs
.gitignore
README.md
bootstrap.php

README.md

RPF - The DomainFactory RP²-Framework

The RPF provides a ide-compatible PHP interface to the DomainFactory RP²-API for developers and collects a bunch of ready-to-use extensions for admins and customers. The system is modularly structured and can be extended easily.

RPF-Extensions

  • DomainExport
    CSV-Export of all (sub-)domains with order name, PHP version and target.
    Can be used to check for deprecated domain-settings in the seventh server-generation
    Status: Implemented and published

  • contaoLogChecker (WIP)
    Exports all Contao logs from all hosted databases
    Status: Implemented, but not published yet

  • emailExport (WIP)
    Exports the complete e-mail-configuration as copy&paste template for customer service
    Status: Implemented, but not published yet

  • inconsistencyChecker (WIP)
    Checks and alerts for some RP² inconsistencies such as active unregistered domains
    Status: Implemented, but not published yet

  • invoiceTextExport (WIP)
    Exports the invoice texts for each order as copy&paste template
    Status: Implemented, but not published yet

  • mysqlBackup (WIP)
    Backup & Restore-Manager for MySQL databases
    Status: Not implemented yet

  • mysqlExport (WIP)
    CSV-Export of all MySQL databases.
    Status: Implemented and published

  • mgntRatioExport (WIP)
    Calculation sheet with costs and contribution margin for each article
    Status: Implemented, but not published yet

  • siteMonitoring (WIP)
    Monitor all (Sub-)Domains based on a screenshot-diff
    Status: Implemented, but not published yet

Installation of RPF-Extensions

  • Download the latest release and unzip it on your server
    (On Bash: wget https://github.com/ADoebeling/RP2-Framework/archive/XXX.tgz && tar xzf XXX.tgz)
  • Create a new subdomain (with ssl-wildcard-cert and php 5.6) and point the target to htdocs
  • Open the subdomain in your browser. You're done.
  • By default no configuration is necessary.

RPF-API

For developers it is quite easy to use the API. You need to export all domains from OrderId XY with nameserver settings?

That's easy!

require_once '../bootstrap.php';                // Include the framework
$rpf = new \rpf\system\rpf();                   // Instantiate the framework

$rpf
    ->getApi()                                  // Load the API
    ->getDomainReadEntry()                      // Load the API-module domainReadEntry (bbDomain::readEntry)
    ->setOeid('ZY')                             // Optional: Get domains by hidden rp2-order-id
    ->addNameserver()                           // Optional: Add dns-records
    ->get();                                    // Return result as array, primary-key set to domain

You don't want to config sensitive data like api-user, api-password, ...? Neither do I! The api-user and api-password can be requested by http-auth:

$rpf
    ->getApi()                                  // Load the api
    ->getUser()                                 // Load the user-module
    ->httpAuth();                               // Send http-auth if you need to authenticate first

Using the RPF-API

  • Install the rpf-extensions as described above
  • Have a look at the example-folder and the api-documentation
  • Have a look at the
  • Create your first extension and start over
  • The code is 100% ide-compatible and well documented, so code-completion works fine.
  • Every action and every call is logged in detail and can be monitored using tail -f logs/syslog_YYMMDD_1SRV.log on bash.

Class-Structure

  • If you create a instance of RPF, the moduleManager will always store itself to $GLOBALS['rpfModules']
  • Every core, api and extension-module (=class) is represented by a private instance in moduleManger()::modules[]
  • You can access all api-Methodes with $rpf->getApi(), e.g., $rpf->getApi()->getDomainEntry which represents all api-methodes of bbDomain::readEntry
  • You can access all extensions with $rpf->getExtension(), e.g., $rpf->getExtension()->getDomainExport

Namespaces = File-structure

The namespaces represent the file-structure

  • \class\system\rpf.php: The core-module
  • \class\api\api.php: The api-module
  • \class\api\module\bbDomain_readEntry.php: The implementation of bbDomain::readEntry() as module of the api-module
  • \class\extension\extension.php: The extension-module
  • \class\extension\module\domainExport.php: The extension domainExport as module of the extension-module

Contact

Support? FR/Bug? Extension-Request?

I'd be happy to hear from you! Please send me your feature request or bug report as GitHub Issue. If you don't have a GitHub Account please post into the DF Forum. If you need paid support contact me on support@1601.com or give me a call: +49 9131 506770 and ask for Andreas Döbeling.

Credits

Author: Andreas Döbeling
Copyright: 1601.production siegler&thümmler ohg
License: cc-by-sa