PHPackages                             azozzalfiras/aapanel-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. azozzalfiras/aapanel-api

ActiveLibrary[API Development](/categories/api)

azozzalfiras/aapanel-api
========================

A comprehensive PHP client library for the aaPanel (BaoTa) API - manage websites, databases, FTP, SSL, files, cron, firewall and more

4186PHP

Since Mar 14Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/AzozzALFiras/aapanel-api)[ Packagist](https://packagist.org/packages/azozzalfiras/aapanel-api)[ RSS](/packages/azozzalfiras-aapanel-api/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

aaPanel API PHP Client
======================

[](#aapanel-api-php-client)

A comprehensive PHP client library for the [aaPanel](https://www.aapanel.com/) (BaoTa) API. Manage websites, databases, FTP, SSL certificates, files, cron jobs, firewall, DNS and more — all from PHP.

**350+ methods** across **27 modules** covering the full aaPanel API surface.

Features
--------

[](#features)

ModuleTypesHighlights**Websites**PHP, Node.js, Python, ProxyCreate/delete/start/stop sites, domains, SSL, redirects, rewrite rules, backups, traffic limits, hotlink protection, password access, logs**Databases**MySQL, PostgreSQL, MongoDB, Redis, SQL ServerCRUD, passwords, permissions, backup/restore, sync, remote servers, table maintenance, binlog, slow logs, SSL**FTP**—Accounts CRUD, password change, enable/disable, remarks**Files**—Directory listing, read/write, upload/download, compress/extract, copy/move, permissions**SSL**—Let's Encrypt, custom certificates, deploy, renew, close**Cron**—Create/delete scheduled tasks, run immediately, logs, enable/disable**Firewall**—Port rules, IP block/allow, SSH/ping toggle**DNS**—A/AAAA/CNAME/MX/TXT records via dns\_manager plugin**System**—System stats, disk info, network, panel updates, logs, server configRequirements
------------

[](#requirements)

- PHP 7.2+ or 8.0+
- ext-curl
- ext-json

Installation
------------

[](#installation)

```
composer require azozzalfiras/aapanel-api
```

Quick Start
-----------

[](#quick-start)

```
require_once 'vendor/autoload.php';

use AzozzALFiras\AAPanelAPI\AaPanel;

$panel = new AaPanel('your_api_key', 'https://your-server:8888');

// Get system info
$info = $panel->system()->getSystemTotal();

// List PHP websites
$sites = $panel->website()->getList();

// Create a MySQL database
$panel->database()->create('mydb', 'myuser', 'mypass');
```

### Options

[](#options)

```
$panel = new AaPanel('your_api_key', 'https://your-server:8888', [
    'timeout'    => 120,        // Request timeout in seconds (default: 60)
    'verify_ssl' => true,       // Verify SSL certificate (default: false)
    'cookie_dir' => '/tmp',     // Cookie storage directory (default: sys_get_temp_dir())
]);
```

---

System
------

[](#system)

```
// System statistics (OS, CPU, memory, uptime, panel version)
$panel->system()->getSystemTotal();

// Disk partition info
$panel->system()->getDiskInfo();

// Real-time CPU, memory, network, load
$panel->system()->getNetWork();

// Panel logs
$panel->system()->getLogs(20, 1);

// Check installation tasks
$panel->system()->getTaskCount();

// Check for / perform panel update
$panel->system()->updatePanel(true, false);

// Server configuration
$panel->system()->getConfig();
$panel->system()->setConfig(['param' => 'value']);
```

---

Websites
--------

[](#websites)

The website module supports **4 project types**, each with its own class plus **shared features** (SSL, domains, redirects, backups, logs, etc.) available on all types.

### Access Patterns

[](#access-patterns)

```
// Via facade (backward compatible — defaults to PHP)
$panel->website()->getList();
$panel->website()->create('example.com', '/www/wwwroot/example.com', 'My site');

// Via facade → specific type
$panel->website()->php()->getList();
$panel->website()->node()->getList();
$panel->website()->python()->getList();
$panel->website()->proxy()->getList();

// Direct shortcuts (skip facade)
$panel->phpSite()->getList();
$panel->nodeSite()->getList();
$panel->pythonSite()->getList();
$panel->proxySite()->getList();
```

### PHP Sites

[](#php-sites)

```
$php = $panel->website()->php();

// List / query
$php->getList(20, 1, 'example');
$php->getListV2(50, 1);                    // v2 endpoint
$php->getSiteTypes();                       // Get categories
$php->getPHPVersions();                     // Installed PHP versions

// Create
$php->create(
    'example.com',                          // Domain
    '/www/wwwroot/example.com',             // Root path
    'Production site',                      // Remarks
    ['www.example.com'],                    // Additional domains
    0,                                      // Category ID
    '81',                                   // PHP version
    '80',                                   // Port
    true, 'ftpuser', 'ftppass',            // Create FTP
    true, 'dbuser', 'dbpass'               // Create database
);

// Delete (with optional cleanup)
$php->delete(1, 'example.com', true, true, true);  // delete FTP + DB + files

// Start / Stop
$php->start(1, 'example.com');
$php->stop(1, 'example.com');

// PHP version management
$php->setPHPVersion('example.com', '82');
$php->getSitePHPVersion('example.com');

// Site categories
$php->addSiteType('E-commerce');
$php->setSiteType(1, 2);                   // Assign site to category
$php->removeSiteType(2);

// Default pages
$php->getDefaultSite();
$php->setDefaultSite('example.com');

// Deny file extensions
$php->getDenyAccess(1, 'example.com');
$php->setDenyAccess(1, 'example.com', 'sql,log,env');
```

### Node.js Projects

[](#nodejs-projects)

```
$node = $panel->website()->node();

// Create project
$node->create(
    'my-app',                               // Project name
    '/www/node/my-app',                     // Project path
    'start',                                // npm script to run
    3000,                                   // Port
    'v18',                                  // Node version
    'www',                                  // User (www or root)
    'app.example.com',                      // Domain
    'My Node.js API'                        // Remarks
);

// Lifecycle
$node->start('my-app');
$node->stop('my-app');
$node->restart('my-app');
$node->delete('my-app');

// Info & monitoring
$node->getList();
$node->getProjectInfo('my-app');
$node->getProjectConfig('my-app');
$node->getRunState('my-app');
$node->getLoadInfo('my-app');

// Node.js versions
$node->isNodeInstalled();
$node->getNodeVersions();
$node->getProjectNodeVersion('my-app');
$node->setProjectNodeVersion('my-app', 'v20');

// Port & network
$node->setListenPort('my-app', 3001);
$node->checkPort(3001);
$node->bindExtranet('my-app');              // Enable Nginx/Apache mapping
$node->unbindExtranet('my-app');

// Domain management
$node->getProjectDomains('my-app');
$node->addProjectDomain('my-app', 'api.example.com');
$node->removeProjectDomain('my-app', 'api.example.com');

// NPM modules
$node->installPackages('my-app');           // npm install
$node->updatePackages('my-app');            // npm update
$node->reinstallPackages('my-app');         // rm node_modules + install
$node->getModules('my-app');               // List installed
$node->installModule('my-app', 'express');
$node->uninstallModule('my-app', 'express');
$node->upgradeModule('my-app', 'express');
$node->rebuildProject('my-app');            // npm rebuild
$node->getRunScripts('my-app');            // package.json scripts

// Config & logs
$node->setWebConfig('my-app');
$node->clearWebConfig('my-app');
$node->getProjectLog('my-app');
$node->getExecLogs('my-app');
$node->getSSLEndDate('my-app');
```

### Python Projects

[](#python-projects)

```
$py = $panel->website()->python();

// Create project
$py->create(
    'my-api',                               // Project name
    '/www/python/my-api',                   // Path
    'app.py',                               // Startup file
    8000,                                   // Port
    '3.11',                                 // Python version
    'fastapi',                              // Framework (flask/django/fastapi/general)
    'www',                                  // User
    'api.example.com',                      // Domain
    'gunicorn',                             // Start command
    'FastAPI Backend'                        // Remarks
);

// Lifecycle
$py->start('my-api');
$py->stop('my-api');
$py->restart('my-api');

// Python versions
$py->getPythonVersions();
$py->getProjectPythonVersion('my-api');
$py->setProjectPythonVersion('my-api', '3.12');

// Pip modules
$py->installPackages('my-api');             // pip install -r requirements.txt
$py->getModules('my-api');
$py->installModule('my-api', 'fastapi');
$py->uninstallModule('my-api', 'uvicorn');

// Network mapping
$py->bindExtranet('my-api');
$py->unbindExtranet('my-api');

// Domains & logs
$py->getProjectDomains('my-api');
$py->addProjectDomain('my-api', 'api.example.com');
$py->getProjectLog('my-api');
```

### Reverse Proxy Projects

[](#reverse-proxy-projects)

```
$proxy = $panel->website()->proxy();

// Create proxy
$proxy->create(
    'docker-app',                           // Project name
    'app.example.com',                      // Domain
    'http://127.0.0.1:8080',              // Backend target URL
    '/',                                    // Proxy directory
    '$host',                                // Send host header
    0,                                      // Cache (0=off, 1=on)
    1,                                      // WebSocket support
    'Docker container'                      // Remarks
);

// Proxy URL rules
$proxy->getProxyRules('docker-app');
$proxy->addProxyRule('docker-app', '/api/', 'http://127.0.0.1:9000');
$proxy->modifyProxyRule('docker-app', '/api/', ['target_url' => 'http://127.0.0.1:9001']);
$proxy->deleteProxyRule('docker-app', '/api/');

// Cache & compression
$proxy->setCache('docker-app', '/', true);
$proxy->clearCache('docker-app');
$proxy->setGzip('docker-app', true, 'text/html text/css application/json');

// Content replacement (e.g. http → https)
$proxy->setContentReplace('docker-app', [
    ['from' => 'http://', 'to' => 'https://'],
]);

// Custom headers
$proxy->setProxyHeaders('docker-app', '/', [
    'X-Real-IP'       => '$remote_addr',
    'X-Forwarded-For' => '$proxy_add_x_forwarded_for',
]);

// IP restrictions
$proxy->getIpRestrictions('docker-app');
$proxy->setIpBlacklist('docker-app', "192.168.1.100\n10.0.0.0/8");
$proxy->setIpWhitelist('docker-app', "192.168.1.0/24");

// Domains
$proxy->getProjectDomains('docker-app');
$proxy->addProjectDomain('docker-app', 'app2.example.com');
```

### Shared Features (All Website Types)

[](#shared-features-all-website-types)

These methods are available on `php()`, `node()`, `python()`, and `proxy()`:

```
$site = $panel->website()->php(); // or node(), python(), proxy()

// SSL / HTTPS
$site->getSSL('example.com');
$site->setSSL('example.com', $key, $cert);
$site->closeSSL(1, 'example.com');
$site->enableHttps('example.com');
$site->disableHttps('example.com');

// Domains
$site->getDomains(1);
$site->addDomain(1, 'example.com', 'www.example.com');
$site->deleteDomain(1, 'example.com', 'www.example.com');

// Redirects (301/302)
$site->getRedirects('example.com');
$site->createRedirect('example.com', 'domain', 'old.com', 'https://new.com', 301);
$site->deleteRedirect('example.com', 'redirect_name');

// Reverse proxy (site-level)
$site->getProxyList('example.com');
$site->createProxy('example.com', 'api-proxy', '/api/', 'http://127.0.0.1:3000');
$site->deleteProxy('example.com', 'api-proxy');

// Hotlink protection
$site->getHotlinkProtection(1, 'example.com');
$site->setHotlinkProtection(1, 'example.com', 'example.com,cdn.com', 'jpg,png,gif');

// Password access
$site->setPasswordAccess(1, 'admin', 'secret');
$site->closePasswordAccess(1);

// Traffic limits (Nginx)
$site->getTrafficLimit(1);
$site->setTrafficLimit(1, 300, 25, 512);    // perserver, perip, limit_rate
$site->closeTrafficLimit(1);

// Logs
$site->toggleAccessLogs(1);
$site->getErrorLog('example.com');
$site->getSecurityLog('example.com');

// Site config file
$site->getSiteConfigFile('example.com', 'nginx');
$site->saveSiteConfigFile('example.com', $configData, 'nginx');

// Rewrite rules / default document
$site->getRewriteList('example.com');
$site->getIndex(1);
$site->setIndex(1, 'index.php,index.html');

// Directory settings
$site->getSitePath(1);
$site->setPath(1, '/www/wwwroot/newpath');
$site->setRunPath(1, '/public');
$site->getDirUserINI(1, '/www/wwwroot/example.com');
$site->setDirUserINI('/www/wwwroot/example.com');

// Backups
$site->getBackups(1);
$site->createBackup(1);
$site->deleteBackup(1);

// Misc
$site->setRemarks(1, 'Production site');
$site->setExpiration(1, '2025-12-31');
$site->setDiskQuota(1, 5120);               // 5GB (XFS only)
```

---

Databases
---------

[](#databases)

The database module supports **5 database engines**, each with its own class plus **shared features** (backup, sync, cloud servers).

### Access Patterns

[](#access-patterns-1)

```
// Via facade (backward compatible — defaults to MySQL)
$panel->database()->create('mydb', 'myuser', 'mypass');
$panel->database()->getList();

// Via facade → specific type
$panel->database()->mysql()->getList();
$panel->database()->pgsql()->getList();
$panel->database()->mongodb()->getList();
$panel->database()->redis()->getList();
$panel->database()->sqlserver()->getList();
```

### MySQL

[](#mysql)

```
$mysql = $panel->database()->mysql();

// CRUD
$mysql->create('mydb', 'myuser', 'pass123', 'utf8mb4', '127.0.0.1');
$mysql->delete(1, 'mydb');
$mysql->getList(20, 1, 'search_term');
$mysql->getInfo(1);
$mysql->getDatabaseSize([1, 2, 3]);

// Passwords
$mysql->setRootPassword('new_root_pass');
$mysql->setPassword(1, 'mydb', 'new_pass');

// Access permissions
$mysql->getAccess('mydb');
$mysql->setAccess('mydb', '%', true);        // All IPs + force SSL
$mysql->setAccess('mydb', '192.168.1.100');  // Specific IP

// Table maintenance
$mysql->repairTable('mydb');
$mysql->optimizeTable('mydb');
$mysql->convertEngine('mydb', 'users', 'InnoDB');

// Server configuration
$mysql->getMySQLInfo();                      // Version, datadir, port
$mysql->getDbStatus();                       // Config parameters
$mysql->setDbConf(['max_connections' => 500, 'key_buffer_size' => '128M']);
$mysql->getRunStatus();                      // Runtime stats
$mysql->setPort(3307);
$mysql->setDataDir('/data/mysql');

// Binary logs
$mysql->binLog();                            // Get status
$mysql->getBinlogs();                        // List files
$mysql->clearBinlogs(7);                     // Purge older than 7 days

// Error & slow logs
$mysql->getErrorLog();
$mysql->getErrorLog(true);                   // Clear log
$mysql->getSlowLogs();

// SSL
$mysql->checkSslStatus();
$mysql->enableSsl();

// Users
$mysql->getMysqlUser();
```

### PostgreSQL

[](#postgresql)

```
$pg = $panel->database()->pgsql();

$pg->create('pgdb', 'pguser', 'pgpass', 'UTF8');
$pg->delete(1, 'pgdb');
$pg->getList();
$pg->setPassword(1, 'pgdb', 'new_pass');
$pg->getRootPassword();
$pg->setRootPassword('new_postgres_pass');
$pg->getOptions();                           // Port, listen_addresses
```

### MongoDB

[](#mongodb)

```
$mongo = $panel->database()->mongodb();

$mongo->create('mgdb', 'mgpass');
$mongo->delete(1, 'mgdb');
$mongo->getList();
$mongo->setPassword(1, 'mgdb', 'new_pass');
$mongo->getRootPassword();
$mongo->setAuthStatus(true, 'admin_pass');   // Enable authentication
$mongo->setAuthStatus(false);                // Disable authentication
$mongo->exists('mgdb');                      // Check if DB exists
```

### Redis

[](#redis)

```
$redis = $panel->database()->redis();

// Database list
$redis->getList();

// Key operations
$redis->setKey(0, 'user:1', '{"name":"John"}', 'string', 3600);  // DB0, TTL 1hr
$redis->setKey(0, 'scores', '100', 'zset');
$redis->getKeys(0, 1, 50, 'user:*');        // Search keys in DB0
$redis->deleteKey(0, 'user:1');

// Clear databases
$redis->clearDatabase(0);                    // FLUSHDB (DB0 only)
$redis->clearDatabase('all');                // FLUSHALL (all DBs)

// Backup
$redis->getBackupList();
$redis->createBackup();

// Config
$redis->getOptions();
```

### SQL Server

[](#sql-server)

```
$mssql = $panel->database()->sqlserver();

$mssql->create('msdb', 'msuser', 'mspass');
$mssql->delete(1, 'msdb');
$mssql->getList();
$mssql->setPassword(1, 'msdb', 'new_pass');
$mssql->getRootPassword();                   // SA password
$mssql->setRootPassword('new_sa_pass');
$mssql->getDatabaseSize(1);
```

### Shared Database Features (All Types)

[](#shared-database-features-all-types)

```
$db = $panel->database()->mysql(); // or pgsql(), mongodb(), redis(), sqlserver()

// Backup & restore
$db->createBackup(1);
$db->deleteBackup(1);
$db->importFile('mydb', '/www/backup/mydb.sql.gz');

// Sync
$db->syncToDatabases(1);                    // Push all to server
$db->syncGetDatabases(0);                   // Pull from local server

// Remote servers
$db->addCloudServer('db.remote.com', 3306, 'root', 'pass', 'Production DB');
$db->getCloudServers();
$db->modifyCloudServer(1, 'db.remote.com', 3306, 'root', 'newpass');
$db->removeCloudServer(1);
$db->checkCloudStatus(['host' => 'db.remote.com', 'port' => 3306]);

// Remarks
$db->setRemarks(1, 'Production database');
```

---

FTP
---

[](#ftp)

```
$ftp = $panel->ftp();

$ftp->getList(20, 1, 'search');
$ftp->create('ftpuser', 'ftppass', '/www/wwwroot/mysite', 'My FTP');
$ftp->delete(1, 'ftpuser');
$ftp->getDetails('ftpuser');
$ftp->setPassword(1, 'ftpuser', 'newpass');
$ftp->setStatus(1, 'ftpuser', true);        // Enable
$ftp->setRemarks(1, 'Deploy account');
```

---

File Manager
------------

[](#file-manager)

```
$files = $panel->files();

// Directory & file operations
$files->getDirectory('/www/wwwroot', 1, 100);
$files->getFileBody('/www/wwwroot/index.html');
$files->saveFileBody('/www/wwwroot/index.html', 'Hello');
$files->createFile('/www/wwwroot/newfile.txt');
$files->createDirectory('/www/wwwroot/newdir');
$files->deleteFile('/www/wwwroot/oldfile.txt');
$files->deleteDirectory('/www/wwwroot/olddir');

// Copy / Move / Rename
$files->copy('/www/source.txt', '/www/dest.txt');
$files->move('/www/old.txt', '/www/new.txt');

// Permissions
$files->setPermissions('/www/wwwroot/mysite', '755', true);

// Compress / Extract
$files->compress('/www/wwwroot/mysite', '/www/backup/mysite.zip');
$files->extract('/www/backup/mysite.zip', '/www/wwwroot/restored');

// Upload / Download
$files->upload('/local/file.zip', '/www/wwwroot/', 'file.zip');
$files->downloadRemoteFile('https://example.com/file.tar.gz', '/www/', 'file.tar.gz');

// Size
$files->getSize('/www/wwwroot/mysite');
```

---

SSL Certificates
----------------

[](#ssl-certificates)

```
$ssl = $panel->ssl();

// Get SSL info
$ssl->getSSL('example.com');

// Apply Let's Encrypt certificate
$ssl->applyCertificate('example.com', 1, 'http');

// Deploy custom certificate
$ssl->setSSL('example.com', $privateKey, $certificate);

// Apply + deploy in one step
$ssl->applyAndDeploy('example.com', 1);

// Renew
$ssl->renewCertificate($index);
$ssl->renewByDomain('example.com');          // Auto-fetches index

// Remove SSL
$ssl->closeSSL(1, 'example.com');
```

---

Cron Jobs
---------

[](#cron-jobs)

```
$cron = $panel->cron();

// List
$cron->getList();

// Create shell script cron (daily at 3:00)
$cron->create('Daily Cleanup', 'day', '3', '0', 'rm -rf /tmp/cache/*', 'toShell');

// Create database backup cron
$cron->create('DB Backup', 'day', '2', '0', '', 'database', 'localhost', 'mydb', 5);

// Delete / run / logs
$cron->delete(1);
$cron->startTask(1);                         // Run immediately
$cron->getLogs(1);

// Enable / disable
$cron->setStatus(1, false);                  // Disable
$cron->setStatus(1, true);                   // Enable
```

---

Firewall
--------

[](#firewall)

```
$fw = $panel->firewall();

// Rules
$fw->getList();
$fw->addPortRule('8080', 'accept', 'Custom app');
$fw->deletePortRule(1);
$fw->addIpRule('192.168.1.100', 'drop', 'Blocked IP');

// Global toggles
$fw->setStatus(true);                        // Enable firewall
$fw->setSshStatus(false);                    // Disable SSH
$fw->setPingStatus(true);                    // Enable ping
```

---

DNS
---

[](#dns)

Requires the `dns_manager` plugin installed on the panel.

```
$dns = $panel->dns();

// A record
$dns->addRecord('www', 'example.com', '1.2.3.4', 'A', 600);

// CNAME
$dns->addRecord('cdn', 'example.com', 'cdn.provider.com', 'CNAME');

// MX record
$dns->addRecord('@', 'example.com', 'mail.example.com', 'MX');

// TXT record (SPF, DKIM, etc.)
$dns->addRecord('@', 'example.com', 'v=spf1 include:_spf.google.com ~all', 'TXT');

// Modify / Delete
$dns->modifyRecord('www', 'example.com', '5.6.7.8');
$dns->deleteRecord('www', 'example.com', '1.2.3.4');
```

---

Error Handling
--------------

[](#error-handling)

```
use AzozzALFiras\AAPanelAPI\AaPanel;
use AzozzALFiras\AAPanelAPI\Exceptions\AaPanelException;
use AzozzALFiras\AAPanelAPI\Exceptions\ConnectionException;
use AzozzALFiras\AAPanelAPI\Exceptions\AuthenticationException;

try {
    $panel = new AaPanel('your_key', 'https://your-server:8888');
    $sites = $panel->website()->getList();
} catch (AuthenticationException $e) {
    // Invalid API key or IP not in whitelist
    echo "Auth failed: " . $e->getMessage();
} catch (ConnectionException $e) {
    // cURL error, invalid JSON response, network issue
    echo "Connection error: " . $e->getMessage();
} catch (AaPanelException $e) {
    // General API error
    echo "Error: " . $e->getMessage();
}
```

---

Backward Compatibility
----------------------

[](#backward-compatibility)

The legacy `aaPanelApiClient` class is still available and works exactly as before:

```
use AzozzALFiras\AAPanelAPI\aaPanelApiClient;

$client = new aaPanelApiClient('your_key', 'https://your-server:8888');
$client->fetchLogs();
$client->addSite('example.com', 'example', 'My site');
$client->fetchSites(20, 1);
// ... all old methods still work
```

To migrate, switch to the new `AaPanel` class — all methods map 1:1.

---

Project Structure
-----------------

[](#project-structure)

```
src/
├── AaPanel.php                     # Main entry point
├── HttpClient.php                  # HTTP layer with error handling
├── aaPanelApiClient.php            # Legacy backward-compatible wrapper
├── Exceptions/
│   ├── AaPanelException.php
│   ├── AuthenticationException.php
│   └── ConnectionException.php
└── Modules/
    ├── System.php                  # System stats, logs, panel config
    ├── Website.php                 # Website facade (→ Websites/)
    ├── Database.php                # Database facade (→ Databases/)
    ├── Ftp.php                     # FTP account management
    ├── FileManager.php             # File operations
    ├── Ssl.php                     # SSL certificate management
    ├── Cron.php                    # Scheduled tasks
    ├── Firewall.php                # Firewall & security
    ├── Dns.php                     # DNS records (plugin)
    ├── Websites/
    │   ├── SiteCommon.php          # Shared trait (SSL, domains, logs, ...)
    │   ├── PhpSite.php             # PHP websites
    │   ├── NodeSite.php            # Node.js projects (32+ endpoints)
    │   ├── PythonSite.php          # Python projects (uWSGI/Gunicorn)
    │   └── ProxySite.php           # Reverse proxy projects
    └── Databases/
        ├── DatabaseCommon.php      # Shared trait (backup, sync, cloud)
        ├── Mysql.php               # MySQL (maintenance, binlog, SSL)
        ├── PostgreSql.php          # PostgreSQL
        ├── MongoDb.php             # MongoDB
        ├── Redis.php               # Redis (key CRUD, DB0-15)
        └── SqlServer.php           # SQL Server (MSSQL)

```

License
-------

[](#license)

This project is licensed under the MIT License.

Copyright (c) 2024 Azozz ALFiras

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance58

Moderate activity, may be stable

Popularity15

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 88.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a568bbb4414347dab69c9da15c6819a0d4c7cdce54749faeca92ff3372fb0cf2?d=identicon)[AzozzALFiras](/maintainers/AzozzALFiras)

---

Top Contributors

[![AzozzALFiras](https://avatars.githubusercontent.com/u/33958581?v=4)](https://github.com/AzozzALFiras "AzozzALFiras (24 commits)")[![clonixdev](https://avatars.githubusercontent.com/u/83722830?v=4)](https://github.com/clonixdev "clonixdev (3 commits)")

---

Tags

aapanelaapanel-apiaapanel-phpazozzalfirascomposer

### Embed Badge

![Health badge](/badges/azozzalfiras-aapanel-api/health.svg)

```
[![Health](https://phpackages.com/badges/azozzalfiras-aapanel-api/health.svg)](https://phpackages.com/packages/azozzalfiras-aapanel-api)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
