Skip to content

Conversation

@ginkelsoft-development
Copy link
Owner

No description provided.

Fixes test failures in Laravel 9 and 10 by adding required dependencies:
- guzzlehttp/guzzle: Required by Laravel 9's HTTP client for mocking HTTP requests in tests
- doctrine/dbal: Required for Schema::table()->change() operations in migrations/tests

Both dependencies use version constraints compatible across all supported Laravel versions (9-12).

Tested with:
- Laravel 9 + PHP 8.1: All tests pass
- Laravel 10 + PHP 8.2: All tests pass

Fixes #25
Adds Claude Code project instructions and commands to improve development workflow:

Changes:
- Add .claude/project-instructions.md with PHP 8.4 and Laravel 12 standards
- Add .claude/commands/test.md for quick test execution
- Update .gitignore to exclude .claude/settings.local.json (user-specific)

Project instructions include:
- Git branch naming conventions (feature/, fix/, etc.)
- Development philosophy: work in small steps, ask before major changes
- Never auto-commit/push without explicit user request
- PHP 8.4 and Laravel 12 standards
- Dutch communication preference
Implements the ability to search across multiple encrypted fields simultaneously using OR logic.

New Features:
- scopeEncryptedExactMulti(): exact match across multiple fields
- scopeEncryptedPrefixMulti(): prefix match across multiple fields
- searchElasticsearchMulti(): Elasticsearch support for multi-field queries

Key Features:
- OR logic: matches if term found in ANY of the specified fields
- Automatic deduplication of results
- Works with both Database and Elasticsearch backends
- Same normalization and validation as single-field search

Tests:
- 17 comprehensive feature tests covering all edge cases
- Tests for empty inputs, case sensitivity, diacritics, minimum length
- All tests passing ✅

Documentation:
- README.md updated with multi-field search examples and use cases
- Clear distinction between single-field and multi-field search
- Usage examples for common scenarios

Example usage:
```php
// Search 'John' in first_names OR last_names
Client::encryptedExactMulti(['first_names', 'last_names'], 'John')->get();

// Prefix search 'Wie' across multiple fields
Client::encryptedPrefixMulti(['first_names', 'last_names'], 'Wie')->get();
```
@ginkelsoft-development ginkelsoft-development merged commit e3d8930 into main Oct 14, 2025
0 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants