jackalope / jackalope-fs
Jackalope Transport library using the filesystem
Installs: 1 768
Dependents: 4
Suggesters: 0
Security: 0
Stars: 8
Watchers: 17
Forks: 3
Open Issues: 8
Requires
- php: ^7.2 || ^8.0
- handcraftedinthealps/zendsearch: ^2.0
- jackalope/jackalope: ^1.4.2
- symfony/event-dispatcher: ^4.4 || ^5.0 || ^6.0
- symfony/event-dispatcher-contracts: ^1.0 || ^2.0
- symfony/filesystem: ^4.4 || ^5.0 || ^6.0
- symfony/yaml: ^4.4 || ^5.0 || ^6.0
Requires (Dev)
- phpcr/phpcr-api-tests: 2.1.23
- phpunit/phpunit: ^8.5.14
Provides
Conflicts
- phpcr/phpcr: <2.1.6
- phpcr/phpcr-utils: <1.6.1
This package is auto-updated.
Last update: 2024-12-12 21:37:48 UTC
README
This is a WIP implementation to support a filesystem implementation of PHPCR.
Connecting
Connect as follows:
$factory = new RepositoryFactoryFilesystem();
$repository = $factory->getRepository(array(
'path' => '/home/mystuff/somefolder',
));
$credentials = new SimpleCredentials('admin', 'admin');
$session = $repository->login($credentials);
Options:
- path: (required) Path to store data, indexes, etc.
- search_enabled: If search should be enabled or not (default true)
Limitations
Node copy
- References not updated within copied subtree (this test is missing from PHPCR-API tests)
Querying
ZendSearch Lucene (native PHP)
Not supported:
- Node type inheritance: Currently node type inheritance is not taken into account - this should be fixed ASAP
- Joins: Will need to be implemented in a post processor
- LOWERCASE, UPPERCASE, LENGTH operands: Same as above
- SQL and XPath query langauges: Will probably never be implemented
- Full text search: Easy to implement if we add an additional search index
File handling
- Files (binary data in the repository) are not current handled in a memory efficient manner. This will be addressed.
Testing
The default ZendSearch implementation doesn't behave very well when the full test suite is being run - it will tend to become corrupt after a certain number of operations. It is therefore necessary to batch the tests.