lesstif/jira-cloud-restapi
PHP 8.1+ client for Jira Cloud REST API. Create and manage issues, projects, users, and more with JSON mapping support, dotenv configuration, and Atlassian Document Format (ADF) tools. Install via Composer; Laravel-friendly integration.
Issue, Project, User) is encapsulated in dedicated services (IssueService, ProjectService), enabling clean separation of concerns.jira.issue.created) after package operations, enabling reactive workflows (e.g., Slack notifications, database syncs)..env-based and array-based configuration, aligning with Laravel’s dependency injection (DI) patterns. Can be injected into Laravel services via the container.JiraCloudApiServiceProvider registration). Integrates seamlessly with Laravel’s service container and configuration system.php-jsonmapper (for JSON serialization), phpdotenv (for .env support), and adf-tools (utility functions). All are lightweight and non-intrusive.issues table).JiraException class exists, but integration with Laravel’s exception handling (e.g., render() in App\Exceptions\Handler) may need explicit mapping (e.g., converting JiraException to HttpResponse).retry helper or a custom decorator (e.g., JiraRateLimiter) would be needed.storage/jira-cookie.txt). Laravel’s filesystem abstraction could wrap this, but shared hosting environments may restrict file permissions.Log facade) and alerted?IssueService, ProjectService) can be registered as Laravel bindings:
$this->app->bind(JiraCloud\Issue\IssueService::class, function ($app) {
return new IssueService(new ArrayConfiguration($app['config']['jira']));
});
config/jira.php to centralize settings (e.g., host, PAT, proxy):
'jira' => [
'host' => env('JIRA_HOST'),
'user' => env('JIRA_USER'),
'token' => env('JIRA_TOKEN'),
'log_enabled' => env('JIRA_LOG_ENABLED', false),
],
JiraIssueCreated) for reactive workflows.Http client can wrap the package’s Guzzle instance for consistency (e.g., middleware for retries, logging).JiraSyncJob).IssueService::createIssue(), ProjectService::getAllProjects()).JiraFacade for fluent access (e.g., Jira::issue()->create($data)).config/jira.php and .env.Http client.throttle middleware).jira.api.call event with metadata)..env or config/jira.php.php-jsonmapper and adf-tools are low-risk; ensure no version conflicts with Laravel’s dependencies.phpdotenv is redundant if Laravel already loads .env (but harmless).updated timestamps).JiraException to Laravel’s exception hierarchy.lesstif/jira-cloud-restapi for updates (last release: 2026-01-04; check for breaking changes).php-jsonmapper, adf-tools, etc., via Composer.config/jira.php) to avoid .env sprawl.env() helper for dynamic values (e.g., env('JIRA_TOKEN')).jiraLogEnabled: true) for debugging API calls.tap() or dump() to inspect package responses:
$issue = Jira::issue()->create($data)->tap(fn ($i) => dump($i));
How can I help you explore Laravel packages today?