: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace NinjaForms\Includes\Contracts;
use NinjaForms\Includes\Entities\SingleSubmission;
use NinjaForms\Includes\Entities\SubmissionFilter;
* Contract to retrieve a collection of single submissions from a data source
* Note that the collection has two parts - the submission meta and the
* The meta describes details about the submission such as timestamp, NF form
* id, data storage location, and a record id.
* The values portion is a collection of submission values associated with a
* The two are retrieved separately. This enables fast filtering of submissions
* to generate a collection of submission records; then, after initial
* filtering, the submission values for just the intended records can be
interface SubmissionDataSource
* Retrieve a collection of submissions meta given filtering args
* @return SingleSubmission[]
public function retrieveSubmissionMeta(SubmissionFilter $submissionFilter): array;
* Populate with submission values a single submission in a collection
* Submission collection may initially only contain submission meta to save
* time/memory. When called, this method retrieves the complete submission
* values for the provided SingleSubmision
* @param SingleSubmission $singleSubmission
* @return SingleSubmission
public function retrieveSubmissionValues(SingleSubmission $singleSubmission): SingleSubmission;
* Retrieve a single submission with values
* Absent a previously filtered collection of single submissions within the
* aggregate, request a single submission, fully populate it, and return.
* @param SingleSubmission $singleSubmission
* @return SingleSubmission
public function retrieveSingleSubmission(SingleSubmission $singleSubmission): SingleSubmission;
* Delete a submission from the data source
* @param SingleSubmission $singleSubmission
* @return SubmissionDataSource
public function deleteSubmission(SingleSubmission $singleSubmission): SubmissionDataSource;
* Restore a submission from the data source
* @param SingleSubmission $singleSubmission
* @return SubmissionDataSource
public function restoreSubmission(SingleSubmission $singleSubmission): SubmissionDataSource;
* Update a submission from the data source
* @param SingleSubmission $singleSubmission
* @return SubmissionDataSource
public function updateSubmission(SingleSubmission $singleSubmission): SubmissionDataSource;
* Return the dataSource id
* Identifies the implementing class, enabling retrieval of submission
* specifics by calling the implementing class
public function getDataSource( ): string;