drnio/directus-v8-manager
最新稳定版本:v6.6.0
Composer 安装命令:
composer require drnio/directus-v8-manager
包简介
A PHP client for interacting with the **Directus v8 API**. This package provides easy-to-use methods for performing **CRUD operations**, managing Directus collections, and handling **authentication**, making it simple to integrate Directus into your PHP applications.
README 文档
README
A lightweight PHP client for interacting with the Directus v8 API. This package provides convenient helpers for authentication, token management, and CRUD operations.
Quick Links
- Repository: Dr-Nio/directus-v8-manager
- License: MIT
Features
- User authentication (login, logout, token refresh)
- CRUD operations for collections and items
- Pagination support for large datasets
- Error handling via exceptions and structured responses
- Token management (access and refresh tokens)
Requirements
- PHP 7.4+
- Composer
- Running Directus v8 instance
Installation
composer require drnio/directus-v8-manager
Environment Setup
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load(); $baseUrl = getenv('DIRECTUS_BASE_URL'); $email = getenv('DIRECTUS_EMAIL'); $password = getenv('DIRECTUS_PASSWORD');
Classes Documentation
1. DirectusAuth
Handles authentication and token management.
Methods:
__construct($baseUrl, $email, $password)— Initialize with API base URL and user credentials.authenticate()— Authenticate the user and return access token.refreshToken()— Refresh access token using refresh token.logout()— Invalidate current token and logout.
Usage Example:
use Drnio\DirectusV8Manager\DirectusAuth; $auth = new DirectusAuth($baseUrl, $email, $password); $token = $auth->authenticate(); $newToken = $auth->refreshToken(); $auth->logout(); // Create new user $newUser = $directus->createUser([ 'email' => 'newuser@example.com', 'password' => 'pass1234', 'role' => 'viewer' ]); // Get a user $user = $directus->getUserById(12); // Get a user by email $user = $directus->getUserByEmail('email@domail.com'); // Update user $updated = $directus->updateUser(12, ['first_name' => 'John', 'last_name' => 'Doe']); // Delete user $directus->deleteUser(12);
2. DirectusClient
Provides CRUD operations for Directus collections/items.
Methods:
__construct($baseUrl, $accessToken)— Initialize client with base URL and token.items($collectionName)— Returns a helper object for collection operations.get($params = [])— Retrieve items with optional parameters.create($data)— Create a new item in the collection.update($id, $data)— Update an item by ID.delete($id)— Delete an item by ID.paginate($params = [])— Iterate over items page by page.
Usage Example:
use Drnio\DirectusV8Manager\DirectusClient; $client = new DirectusClient($baseUrl, $token); // Retrieve items $items = $client->items('articles')->get(['limit' => 50]); // Create item $newItem = $client->items('articles')->create(['title' => 'Hello', 'body' => 'World']); // Update item $updatedItem = $client->items('articles')->update($itemId, ['title' => 'Updated']); // Delete item $client->items('articles')->delete($itemId); // Pagination example foreach ($client->items('articles')->paginate(['limit' => 100]) as $page) { foreach ($page['data'] as $row) { // Process each row } }
Error Handling
Wrap API calls with try/catch:
try { $items = $client->items('articles')->get(); } catch (\Exception $e) { error_log($e->getMessage()); }
Contributing
- Fork repository
- Create feature branch
- Add tests and documentation
- Open Pull Request
Follow PSR-12 / PSR-4 coding standards.
License
MIT © Dr-Nio
统计信息
- 总下载量: 15
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-03-01