Download the PHP package freeloapp/php-sdk without Composer
On this page you can find all versions of the php package freeloapp/php-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download freeloapp/php-sdk
More information about freeloapp/php-sdk
Files in freeloapp/php-sdk
Package php-sdk
Short Description Modern PHP SDK for Freelo API - Project and task management
License MIT
Homepage https://github.com/freeloapp/php-sdk
Informations about the package php-sdk
Freelo PHP SDK
Modern, lightweight PHP SDK for Freelo API.
Features
- PHP 8.1+ with strict types
- PSR-18/17/7/16 compliant (bring your own HTTP client)
- Full API coverage (projects, tasks, files, comments, time tracking, etc.)
- Dynamic credentials with server-safe per-request switching
- Low-level
call()method for arbitrary API endpoints - Automatic pagination support
- Rate limiting detection
- Typed exceptions for error handling
Installation
Install an HTTP client (e.g., Guzzle):
Quick Start
Authentication
Get your API key from Freelo Settings (scroll to API section).
Usage Examples
Projects
Tasks
Time Tracking
Files
Dynamic Credentials
Per-request credentials (server-safe)
Use withCredentials() to create an isolated instance with different credentials. Each derived instance has its own client and state — safe for concurrent requests in multi-tenant server applications.
For simple single-user scripts, you can swap credentials in place with setCredentials():
Note:
setCredentials()mutates the shared instance and is not safe for concurrent requests.
Lazy initialization
The SDK supports creating a client without credentials upfront. Credentials can be provided later via setCredentials() — validation is deferred to the first API request.
Low-level API Calls
Use call() to hit arbitrary API endpoints not yet covered by typed resource classes:
Available Resources
| Resource | Method | Description |
|---|---|---|
| Projects | projects() |
Project management |
| Tasks | tasks() |
Task management |
| Tasklists | tasklists() |
Tasklist management |
| Comments | comments() |
Comment management |
| Files | files() |
File upload/download |
| Task Labels | taskLabels() |
Task label management |
| Project Labels | projectLabels() |
Project label management |
| Subtasks | subtasks() |
Subtask management |
| Time Tracking | timeTracking() |
Time tracking |
| Work Reports | workReports() |
Work report management |
| Users | users() |
User management |
| Notifications | notifications() |
Notifications |
| Events | events() |
Activity events |
| Notes | notes() |
Note management |
| Search | search() |
Full-text search |
| Custom Fields | customFields() |
Custom fields |
| Invoices | invoices() |
Invoice management |
Pagination
Error Handling
Working with Dates
Datetime fields on model objects (Task::dateAdd, WorkReport::dateReported, …) are exposed as \DateTimeImmutable in UTC. The Freelo Public API V1 returns naive datetime strings without a timezone (e.g. 2026-04-24T11:12:38); these represent Europe/Prague local time, as documented in the OpenAPI spec's "Timestamp Format" section. The SDK parses them as Prague-local and converts to UTC, so you can compare and format them safely without worrying about silent timezone drift.
FilterBuilder accepts either \DateTimeImmutable or Y-m-d strings for date-range filters; objects are formatted in Europe/Prague to match what the API expects:
Rate Limiting
The API allows 25 requests/minute. The SDK tracks limits automatically:
Custom HTTP Client
Caching (Optional)
Development
Requirements
- PHP 8.1+
- PSR-18 HTTP Client (e.g., Guzzle)
- PSR-17 HTTP Factories (e.g., nyholm/psr7)
License
MIT License. See LICENSE.
Links
All versions of php-sdk with dependencies
psr/http-client Version ^1.0
psr/http-factory Version ^1.0
psr/http-message Version ^1.0|^2.0
psr/simple-cache Version ^2.0|^3.0
php-http/discovery Version ^1.19