PHP code example of jeffersongoncalves / laravel-help-desk
1. Go to this page and download the library: Download jeffersongoncalves/laravel-help-desk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
jeffersongoncalves / laravel-help-desk example snippets
return [
// Models used by the help desk
'models' => [
'user' => \App\Models\User::class, // Model that creates tickets
'operator' => \App\Models\User::class, // Model that manages tickets
],
// Ticket settings
'ticket' => [
'reference_prefix' => 'HD', // Ticket reference format: HD-00001
'default_status' => 'open',
'default_priority' => 'medium',
'attachment_disk' => 'local', // Storage disk for attachments
'auto_close_days' => null, // Auto-close resolved tickets (null = disabled)
'allow_reopen' => true,
],
// Email integration
'email' => [
'enabled' => true,
'inbound' => [
'driver' => null, // 'imap', 'mailgun', 'sendgrid', 'resend', or 'postmark'
],
],
// Notification settings
'notifications' => [
'channels' => ['mail'],
'queue' => 'default',
],
];
use JeffersonGoncalves\HelpDesk\Concerns\HasTickets;
class User extends Authenticatable
{
use HasTickets;
}
use JeffersonGoncalves\HelpDesk\Concerns\IsOperator;
class User extends Authenticatable
{
use IsOperator; // Includes HasTickets
}
use JeffersonGoncalves\HelpDesk\Models\Ticket;
use JeffersonGoncalves\HelpDesk\Enums\TicketStatus;
use JeffersonGoncalves\HelpDesk\Enums\TicketPriority;
// Open tickets
$open = Ticket::open()->get();
// Closed tickets
$closed = Ticket::closed()->get();
// By status
$inProgress = Ticket::byStatus(TicketStatus::InProgress)->get();
// By priority
$urgent = Ticket::byPriority(TicketPriority::Urgent)->get();
// Overdue tickets
$overdue = Ticket::overdue()->get();
// Unassigned tickets
$unassigned = Ticket::unassigned()->get();
// User's tickets (via trait)
$user->helpDeskTickets;
// Operator's assigned tickets (via trait)
$operator->helpDeskAssignedTickets;
use JeffersonGoncalves\HelpDesk\Models\CannedResponse;
CannedResponse::create([
'title' => 'Greeting',
'body' => 'Thank you for contacting our support team...',
'department_id' => $department->id,
'is_active' => true,
]);
// Get canned responses for a department
$responses = CannedResponse::active()
->forDepartment($department->id)
->ordered()
->get();
use JeffersonGoncalves\HelpDesk\Services\TicketService;
use JeffersonGoncalves\HelpDesk\Services\CommentService;
use JeffersonGoncalves\HelpDesk\Services\DepartmentService;
use JeffersonGoncalves\HelpDesk\Services\AttachmentService;
class MyController
{
public function __construct(
private TicketService $tickets,
private CommentService $comments,
) {}
public function store(Request $request)
{
$ticket = $this->tickets->create([
'title' => $request->title,
'description' => $request->description,
'department_id' => $request->department_id,
], $request->user());
return $ticket;
}
}
// Using translations in your code
__('help-desk::tickets.messages.created') // "Ticket created successfully."
__('help-desk::statuses.open') // "Open"
__('help-desk::priorities.urgent') // "Urgent"