承接 hfelge/geoserver-client 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

hfelge/geoserver-client

最新稳定版本:v1.8.0

Composer 安装命令:

composer require hfelge/geoserver-client

包简介

Ein moderner PHP-Client zur einfachen Kommunikation mit der GeoServer REST-API.

README 文档

README

A modern, lightweight PHP client for interacting with the GeoServer REST API (REST, SLD Upload, and Security Management).

Features

  • Manage GeoServer Workspaces (get, exists, create, update, delete)
  • Manage GeoServer Datastores (get, exists, createPostGIS, update, delete)
  • Manage GeoServer FeatureTypes (get, exists, create, update, delete)
  • Manage GeoServer Layers (get, exists, publish, update, delete)
  • Manage GeoServer Styles:
    • createWorkspaceStyle() (SLD upload via Slug)
    • assignStyleToLayer()
    • updateStyle(), deleteStyle(), styleExists()
  • Manage GeoServer Users:
    • getUsers(), getUser(), createUser(), updateUserStatus(), deleteUser()
  • Robust error handling with GeoServerException
  • GeoServer availability check via isAvailable()
  • 100% PHPUnit 12 test coverage
  • PSR-4 ready and composer-installable

Installation

Install via Composer:

composer require hfelge/geoserver-client

Usage Example

<?php

use Hfelge\GeoServerClient\GeoServerClient;

$client = new GeoServerClient('http://localhost:8080/geoserver', 'admin', 'geoserver');

// === WORKSPACES ===
if (!$client->workspaceManager->workspaceExists('example_ws')) {
    $client->workspaceManager->createWorkspace('example_ws');
}

// === DATASTORES ===
if (!$client->datastoreManager->datastoreExists('example_ws', 'example_ds')) {
    $client->datastoreManager->createPostGISDatastore('example_ws', 'example_ds', [
        'host'     => 'localhost',
        'port'     => '5432',
        'database' => 'gis',
        'user'     => 'geo_user',
        'passwd'   => 'secret',
    ]);
}

// === FEATURETYPES ===
if (!$client->featureTypeManager->featureTypeExists('example_ws', 'example_ds', 'stadtgrenzen')) {
    $client->featureTypeManager->createFeatureType('example_ws', 'example_ds', [
        'name'       => 'stadtgrenzen',
        'nativeName' => 'stadtgrenzen',
        'title'      => 'Stadtgrenzen',
        'srs'        => 'EPSG:4326',
    ]);
}

// === LAYERS ===
if (!$client->layerManager->layerExists('stadtgrenzen')) {
    $client->layerManager->publishLayer('stadtgrenzen');
}

// === STYLES ===
$sld = file_get_contents(__DIR__ . '/style.sld');
$client->styleManager->createWorkspaceStyle('example_ws', 'my_custom_style', $sld);
$client->styleManager->assignStyleToLayer('stadtgrenzen', 'my_custom_style');

// === USERS ===
$client->userManager->createUser('demo_user', 'secure123');
$users = $client->userManager->getUsers();
$client->userManager->updateUserStatus('demo_user', false); // disable user
$client->userManager->deleteUser('demo_user');

Requirements

  • PHP 8.3 or higher
  • GeoServer instance with REST API access
  • Optional: Docker/DDEV setup for local testing

Project Structure

src/    → Contains the core library
tests/  → Contains PHPUnit tests

Development

Run PHPUnit tests:

vendor/bin/phpunit

License

This project is licensed under the MIT License - see the LICENSE file for details.

统计信息

  • 总下载量: 72
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-28