Forms - v1.0.0-beta1
Services
Service class documentation for ArtisanPack UI Forms.
FormService
Handles form CRUD operations and retrieval.
Methods
use ArtisanPackUI\Forms\Services\FormService;
$formService = app(FormService::class);
getBySlug
Retrieve a form by its slug.
public function getBySlug(string $slug): ?Form
Example:
$form = $formService->getBySlug('contact');
getById
Retrieve a form by ID.
public function getById(int $id): ?Form
create
Create a new form.
public function create(array $data): Form
Example:
$form = $formService->create([
'name' => 'Contact Form',
'slug' => 'contact',
'description' => 'Contact us form',
'is_active' => true,
]);
update
Update an existing form.
public function update(Form $form, array $data): Form
delete
Delete a form and its related data.
public function delete(Form $form): bool
duplicate
Duplicate a form with all fields and settings.
public function duplicate(Form $form, ?string $newSlug = null): Form
Example:
$newForm = $formService->duplicate($form, 'contact-v2');
getActiveForms
Get all active forms.
public function getActiveForms(): Collection
FieldService
Manages form fields.
Methods
use ArtisanPackUI\Forms\Services\FieldService;
$fieldService = app(FieldService::class);
createField
Create a new field for a form.
public function createField(Form $form, array $data): FormField
Example:
$field = $fieldService->createField($form, [
'type' => 'text',
'name' => 'full_name',
'label' => 'Full Name',
'required' => true,
'order' => 1,
]);
updateField
Update an existing field.
public function updateField(FormField $field, array $data): FormField
deleteField
Delete a field.
public function deleteField(FormField $field): bool
reorderFields
Reorder fields for a form.
public function reorderFields(Form $form, array $fieldIds): void
Example:
$fieldService->reorderFields($form, [3, 1, 2, 5, 4]);
getFieldTypes
Get available field types.
public function getFieldTypes(): array
StepService
Manages multi-step form steps.
Methods
use ArtisanPackUI\Forms\Services\StepService;
$stepService = app(StepService::class);
createStep
Create a new step.
public function createStep(Form $form, array $data): FormStep
updateStep
Update a step.
public function updateStep(FormStep $step, array $data): FormStep
deleteStep
Delete a step and reassign its fields.
public function deleteStep(FormStep $step): bool
reorderSteps
Reorder steps.
public function reorderSteps(Form $form, array $stepIds): void
SubmissionService
Handles form submissions.
Methods
use ArtisanPackUI\Forms\Services\SubmissionService;
$submissionService = app(SubmissionService::class);
create
Create a new submission.
public function create(
Form $form,
array $data,
array $metadata = []
): FormSubmission
Example:
$submission = $submissionService->create($form, [
'name' => 'John Doe',
'email' => 'john@example.com',
'message' => 'Hello!',
], [
'source' => 'landing-page',
'utm_campaign' => 'summer2024',
]);
processFiles
Process uploaded files for a submission.
public function processFiles(
FormSubmission $submission,
array $files
): Collection
delete
Delete a submission and its files.
public function delete(FormSubmission $submission): bool
getForForm
Get submissions for a form with pagination.
public function getForForm(
Form $form,
int $perPage = 15,
array $filters = []
): LengthAwarePaginator
Example:
$submissions = $submissionService->getForForm($form, 20, [
'search' => 'john',
'start_date' => '2024-01-01',
'end_date' => '2024-12-31',
]);
NotificationService
Handles email notifications.
Methods
use ArtisanPackUI\Forms\Services\NotificationService;
$notificationService = app(NotificationService::class);
sendNotifications
Send all active notifications for a submission.
public function sendNotifications(FormSubmission $submission): void
parseTemplate
Parse placeholders in a template.
public function parseTemplate(
string $template,
FormSubmission $submission
): string
Example:
$parsed = $notificationService->parseTemplate(
'Hello {name}, thank you for contacting us!',
$submission
);
formatAllFieldsAsTable
Format submission data as HTML table.
public function formatAllFieldsAsTable(
FormSubmission $submission
): string
getCcEmails
Get CC email addresses.
public function getCcEmails(FormNotification $notification): array
getBccEmails
Get BCC email addresses.
public function getBccEmails(FormNotification $notification): array
ConditionalLogicService
Evaluates conditional logic rules.
Methods
use ArtisanPackUI\Forms\Services\ConditionalLogicService;
$conditionService = app(ConditionalLogicService::class);
evaluateConditions
Evaluate conditions against form data.
public function evaluateConditions(
?array $conditions,
array $formData
): bool
Example:
$isVisible = $conditionService->evaluateConditions([
'logic' => 'and',
'rules' => [
['field' => 'country', 'operator' => 'equals', 'value' => 'US'],
],
], $formData);
getVisibleFields
Get fields visible for current form state.
public function getVisibleFields(Form $form, array $formData): Collection
isFieldVisible
Check if a specific field is visible.
public function isFieldVisible(FormField $field, array $formData): bool
ExportService
Handles data export operations.
Methods
use ArtisanPackUI\Forms\Services\ExportService;
$exportService = app(ExportService::class);
toCsv
Export submissions to CSV.
public function toCsv(
Form $form,
array $options = []
): string
Example:
$csv = $exportService->toCsv($form, [
'start_date' => now()->subMonth(),
'end_date' => now(),
]);
toArray
Export submissions to array.
public function toArray(
Form $form,
array $options = []
): array
IntegrationService
Manages third-party integrations.
Methods
use ArtisanPackUI\Forms\Services\IntegrationService;
$integrationService = app(IntegrationService::class);
getAvailableIntegrations
Get registered integrations.
public function getAvailableIntegrations(): array
processSubmission
Process submission through integrations.
public function processSubmission(FormSubmission $submission): void