jackalope/jackalope-fs
Filesystem-backed PHPCR (Jackalope) transport implementation, storing repository data on disk. Useful for local development, testing, and lightweight setups where a database isn’t needed, while staying compatible with PHPCR APIs and tooling.
jackalope/jackalope-fs package remains a Filesystem Abstraction Layer (FSAL) for CMIS, but the Symfony 6 support (v0.0.4) suggests a shift toward broader PHP ecosystem compatibility. This may improve integration with Laravel’s Symfony-based components (e.g., HttpClient, Cache).symfony/http-client for CMIS API calls).symfony/http-client if used alongside).^0.0.3 if PHP 8.0+ is not yet adopted.HttpClient, Cache) being used? Could this enable better integration (e.g., shared HTTP clients for CMIS API calls)?php-cmis)?HttpClient for CMIS sessions).use Jackalope\Filesystem\Filesystem as JackalopeFS;
use Symfony\Component\HttpClient\HttpClient;
use Illuminate\Support\Facades\Http;
class CmisFilesystem implements LaravelFS {
private $jackalopeFS;
public function __construct() {
$client = Http::client(); // Laravel's Symfony HttpClient
$this->jackalopeFS = new JackalopeFS(
new \Jackalope\Repository\RepositoryFactory(),
['httpClient' => $client->getClient()]
);
}
// ... (rest unchanged)
}
HttpClient for shared CMIS session management:
$this->app->bind(JackalopeFS::class, function ($app) {
$client = $app->make(\Symfony\Component\HttpClient\HttpClient::class);
return new JackalopeFS(
new \Jackalope\Repository\RepositoryFactory(),
['httpClient' => $client->getClient()]
);
});
jackalope/jackalope-fs:^0.0.4.HttpClient for CMIS operations.withHttpClient() method to the adapter.Filesystem methods with Symfony 6 optimizations (e.g., async streams).composer.json to:
"require": {
"jackalope/jackalope-fs": "^0.0.4",
"symfony/http-client": "^6.0" // If not already present
}
Storage::disk('cmis')->write('file.txt', $content, [
'http' => ['timeout' => 30] // Reuse Laravel's HTTP config
]);
cache()->driver('symfony')).ErrorHandler or Monolog for structured CMIS error logs.Profiler or Laravel’s tap():
$client->getClient()->getOptions()->tap(function ($options) {
\Log::debug('CMIS HTTP Options:', $options);
});
How can I help you explore Laravel packages today?