Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Recommendations Bundle

Recommendations Bundle Laravel Package

andres-montanez/recommendations-bundle

View on GitHub
Deep Wiki
Context7

Recommendations Engine with MongoDB

Frequently asked questions about Recommendations Bundle
Can I use this Symfony2 RecommendationsBundle directly in Laravel without Symfony components?
No, this bundle is tightly coupled to Symfony2. You’d need to bridge Symfony’s Console, HTTP Kernel, and Dependency Injection into Laravel or extract the core Pearson correlation logic into a standalone PHP library. The README suggests wrapping the service for better Laravel integration.
What Laravel MongoDB drivers work with this bundle?
Use either `jenssegers/mongodb` (Laravel-compatible) or the native `mongodb/mongodb` driver. Ensure your MongoDB documents map to the bundle’s schema: items must have `type`, `tags`, and `namespace` fields, while user actions require `user_id`, `verb`, `item_id`, `value`, and `namespace`.
How do I handle cold-start problems (new users/items) with this bundle?
This bundle lacks hybrid or deep-learning approaches, so cold starts are a weakness. Mitigate by combining it with content-based filtering (e.g., TF-IDF on item tags) or using fallback rules (e.g., recommend popular items). The bundle’s deterministic output also means no A/B testing support.
What Laravel version and PHP version does this bundle support?
The bundle itself targets Symfony2 (PHP 5.3.9+), but Laravel integration requires manual bridging. For Laravel 8/9/10, use PHP 8.0+ and Symfony’s standalone components (e.g., `symfony/console`). Test thoroughly—Laravel’s service container differs from Symfony’s.
How often should I regenerate the similarity matrix in production?
Start with weekly regeneration for large datasets (e.g., 1M ratings). The bundle’s benchmarks show 90-minute generation times for 1M ratings, so schedule this during low-traffic periods or use async cron jobs (e.g., Kubernetes CronJobs). Cache recommendations for 24–48 hours to reduce load.
Can I use this bundle for real-time recommendations (e.g., dynamic product pages)?
No, this bundle is batch-oriented. Recommendations are generated from a precomputed similarity matrix, so latency is low (~2s per request) but not real-time. For dynamic pages, pair it with a caching layer (e.g., Redis) or consider a hybrid approach with lightweight real-time rules.
What alternatives exist for Laravel if Symfony2 integration is too complex?
For Laravel, consider: `spatie/laravel-recommendations` (content-based), `predis/predis` + custom algorithms (Redis-backed), or `laravel-analytics` for hybrid solutions. If you need collaborative filtering, extract the Pearson correlation logic from this bundle into a standalone library and adapt it to Laravel’s Eloquent.
How do I test this bundle in Laravel before full deployment?
Start with a small dataset (e.g., 10K ratings from Movielens) to validate performance. Mock the Symfony dependencies using Laravel’s service container and test core methods (`registerItem`, `addAction`, `getRecommendations`) with PHPUnit. Monitor memory usage and similarity matrix generation time.
Does this bundle support multi-tenancy (e.g., separate recommendations per brand)?
Yes, via the `namespace` field. Register items/actions with unique namespaces (e.g., `brand_a`, `brand_b`) to isolate recommendations. This avoids mixing data across tenants but requires careful schema design in MongoDB to avoid namespace collisions.
What are the production scaling risks with large datasets (e.g., 10M+ items)?
The bundle lacks benchmarks for >1M items, so risks include: (1) CPU/memory spikes during similarity matrix regeneration, (2) MongoDB query bottlenecks, and (3) stale recommendations if cron jobs fail. Mitigate with sharding, dedicated servers, and monitoring (e.g., track `getRecommendations` latency). Consider offloading computations to a separate service.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
emuniq/filament-browser-notifications
syriable/filament-translator
hungnm28/livewire-form
wenprise/eloquent
crudly/encrypted
fadion/bouncy
cuci/prototurk-sdk
gos/pubsub-router-bundle
cuci/prototurk-sdk-symfony
clementtalleu/easyadmin-markdown-bundle
codeflextech/permission-manager
karnoweb/livewire-datepicker
sayedenam/sayed-dashboard
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui