PHPackages                             myena/phpipam-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. myena/phpipam-api

ActiveLibrary

myena/phpipam-api
=================

PHPIPAM SDK

23PHP

Since Mar 23Pushed 8y ago4 watchersCompare

[ Source](https://github.com/dcarbone/phpipam-api)[ Packagist](https://packagist.org/packages/myena/phpipam-api)[ RSS](/packages/myena-phpipam-api/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

PHPIPAM API
===========

[](#phpipam-api)

SDK for consuming from PHP-IPAM's API

Configuration
-------------

[](#configuration)

To create a [Client](src/Client.php), you must first construct something that implements [ConfigProvider](src/Config/ConfigProvider.php). Two implementations are included:

### Standard Configuration

[](#standard-configuration)

If you have all your PHP IPAM configuration details local to your application you may use the [Config](src/Config/LocalConfig.php) class, passing an array of configuration details:

```
$conf = [
    // Required Parameters
    'host'      => 'service host',
    'username'  => 'bilbo-swaggins',
    'password'  => 'swaggerific',
    'appid'     => 'whatever',
    'appcode'   => 'crypticwhatever',

    // Optional Parameters
    'https'     => true,            // defaults to true
    'port'      => 0,               // recommended to set only if you don't use standard 80 / 443,
    'silent'    => false,           // defaults to false, set to silence all logging output
];
$config = new \ENA\PHPIPAM\Config\Config($conf);
```

### Consul-Derived Configuration

[](#consul-derived-configuration)

If you have a [Consul](https://www.consul.io/) setup going and have your PHPIPAM service registered with it, or use its KV store for other config items, you may use the [ConsulConfig](src/Config/ConsulConfig.php) class. This config uses [PHPConsulAPI](https://github.com/dcarbone/php-consul-api) for Consul interaction. It accepts all of the same parameters as the standard [LocalConfig](src/Config/LocalConfig.php) class, with the following additional Consul-specific ones:

Parameters:

```
$consulConf = $conf + [
    'servicename'   => 'phpipam',       // mutually exclusive to "host" and "port", and is required if those are not set
    'servicetag'    => '',              // defaults to nothing
    'healthyonly'   => true,            // defaults to true
    'queryoptions'  => null,            // optionally allows setting of a [QueryOptions](https://github.com/dcarbone/php-consul-api/blob/master/src/QueryOptions.php) object to use in requests
    'usernamekey'   => '',              // full path to KV store key containing username, mutually exclusive with "username"
    'passwordkey'   => '',              // full path to KV store key containing password, mutually exclusive with "password"
    'appidkey'      => '',              // full path to KV store key containing appid, mutually exclusive with "appid"
    'appcodekey'    => '',              // full path to KV store key containing appcode, mutually exclusive with "appcode"
];
```

This class accepts an optional 3rd argument of an instance of [Consul](https://github.com/dcarbone/php-consul-api/blob/master/src/Consul.php). If this is not defined, a new instance will be created using default config values.

### HTTP Client

[](#http-client)

Both config classes take an optional 2nd argument of any class implementing [GuzzleHttp ClientInterface](https://github.com/guzzle/guzzle/blob/6.3.0/src/ClientInterface.php). If this is not defined, a new instance of [GuzzleHttp Client](https://github.com/guzzle/guzzle/blob/6.3.0/src/Client.php) will be used.

### Under Development

[](#under-development)

This library is still under active development. Below is a table of the various Controllers and the development state:

ControllerState[Addresses](./src/Chain/AddressesController.php)Partial[Circuits](./src/Chain/CircuitsController.php)[Devices](./src/Chain/DevicesController.php)[L2Domains](./src/Chain/L2DomainsController.php)[Prefix](./src/Chain/PrefixController.php)[Sections](./src/Chain/SectionsController.php)[Subnets](./src/Chain/SubnetsController.php)Partial[Tools](./src/Chain/ToolsController.php)[User](./src/Chain/UserController.php)Full[Vlans](./src/Chain/VlansController.php)[Vrfs](./src/Chain/VrfsController.php)### General Usage

[](#general-usage)

All operations follow the same basic flow:

```
$client->Controller()->METHOD()->Action()->execute();
```

There are some Controller's whose `METHOD` is also directly executable ( `$client->User()->GET()->execute()`, for example)

Every step in that chain is a `Part`, and only parts that implement the [ExecutablePart](./src/Part/ExecutablePart.php) interface will carry the `execute` method.

###  Health Score

20

—

LowBetter than 17% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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/385c0c0eae1b51f1e81ee464ff6bfb3cce32589ac252ca68cc3a8aec2e3ada14?d=identicon)[dcarbone](/maintainers/dcarbone)

---

Top Contributors

[![dcarbone](https://avatars.githubusercontent.com/u/1392439?v=4)](https://github.com/dcarbone "dcarbone (27 commits)")

---

Tags

phpphpipamphpipam-apiphpipam-sdk

### Embed Badge

![Health badge](/badges/myena-phpipam-api/health.svg)

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

PHPackages © 2026

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