ulib / grabber
There is no license information available for the latest version (1.1.7) of this package.
ULIB page grabber
1.1.7
2026-02-18 18:39 UTC
Requires
- php: ^8.4
- ext-curl: *
- ext-dom: *
- ext-libxml: *
README
A small library for fetching data from the ULIB phone directory.
Requirements
- PHP
8.4+ ext-curlext-domext-libxml
Usage
<?php declare(strict_types=1); use Ulib\Grabber\UlibPhoneDirectory; $grabber = new UlibPhoneDirectory([ 'firstname' => 'Jan', 'sort' => 1, ]); $users = $grabber->getUsers(); $paginator = $grabber->getPaginator(); $pageResult = $grabber->getPageResult();
Supported query parameters:
firstname, lastname, phone, room, mail, department, page, sort, column.
The second constructor argument is an optional proxy server (host:port).
Extensibility
The library is split into independent parts so new grabbers are easy to add:
- HTTP transport:
/Users/padox/Sites/personal/ulib-grabber/src/Http/HttpClientInterface.php - Default cURL transport:
/Users/padox/Sites/personal/ulib-grabber/src/Http/CurlHttpClient.php - Parser contract:
/Users/padox/Sites/personal/ulib-grabber/src/Parser/PhoneDirectoryParserInterface.php - Default parser:
/Users/padox/Sites/personal/ulib-grabber/src/Parser/PhoneDirectoryParser.php
You can inject your own parser or HTTP client:
<?php declare(strict_types=1); use Ulib\Grabber\Http\HttpClientInterface; use Ulib\Grabber\Parser\PhoneDirectoryParser; use Ulib\Grabber\UlibPhoneDirectory; $customHttpClient = new class() implements HttpClientInterface { public function get(string $url, ?string $proxy = null): string { // custom transport implementation return file_get_contents($url) ?: ''; } }; $customParser = new PhoneDirectoryParser(); $grabber = new UlibPhoneDirectory([], null, $customParser, $customHttpClient);
Smoke test
./bin/smoke-test.php