Developing for WISECP

9 Aufrufe Markdown

WISECP is a hosting automation platform you extend rather than fork. Modules add capability, themes own the public surface, and hooks change behaviour without touching a line of the core.

Overview

An installation does three jobs at once. It sells (catalog, cart, invoices, payments), it provisions (servers, domains, licences, add-ons), and it supports (tickets, knowledge base, notifications). Every one of those is a place a developer can plug into. The platform is built so that plugging in never means editing the files an upgrade will replace.

That last sentence is the whole design. There is a supported way to do each kind of extension, and a version upgrade brings its own copy of the core. Work that lives in the supported places survives; work that lives in an edited core file does not.

The Four Ways In

Module A new capability the platform did not have: another control panel to provision on, another payment provider, another registrar, another notification channel. There are sixteen types and each one is a contract you implement.
Theme The entire public website and client area. A theme is not a skin over fixed markup; it owns the markup, and the installation shows whichever theme is active.
Hook A point the platform already announces where you can react, change a value, block an operation or print markup. This is how you change behaviour that already exists.
API The way another system talks to an installation: read and write clients, orders, services and tickets from outside.

Most real work uses more than one. An external billing system usually needs a module for the credentials and the screens. It also needs hooks for the moments it has to react, and the API for what the other side pulls.

What Runs Where

Three surfaces share one codebase and one database. The admin panel is fixed and ships with the product. The website and client area are themed. Scheduled work runs from the command line on a timer. Long or repeated jobs belong there rather than in a web request.

Pitfalls

Editing a core file is not a shortcut, it is a deadline

It works until the next upgrade. Then it silently stops working or, worse, gets restored on top of a database that has moved on. If there is no hook for what you need, ask for one instead of editing around it.

Read the contract before you implement it

Each module type expects specific methods with specific return shapes, and each hook documents its parameters and what your return value does. Both are written down; guessing from a name is where most integration bugs start.

War das hilfreich?

Vielen Dank für Ihre Rückmeldung!

Brauchen Sie weitere Hilfe?

Unser Support-Team ist rund um die Uhr für Sie da, wenn Sie oben nicht fündig werden.