scheb/stock-panel-bundle
A Symfony bundle that adds a stock panel to your application, letting users track and display live stock quotes and market data through a configurable dashboard with flexible provider integration.
composer require <vendor>/<package>php artisan vendor:publish --tag=<package>-config (and the -assets/-views tags if present)php artisan migrate only if the package ships dashboard/persistence tables — check the migration stub before running it on a shared DB.config/<package>.php. In v1.1.0 the charts dashboard is the headline feature, so the interesting keys are the dashboard route/prefix, the middleware/auth gate, the default chart driver, and cache TTLs. Those four settings explain most "why is my dashboard blank/403/stale" questions.php artisan about or route:list | grep dashboard). Then hit the dashboard route as an authenticated user to see the shipped example chart before touching your own data.php artisan tinker before wiring it into the full dashboard. Getting one chart truthful is faster than debugging six at once.Cache::remember() keyed on chart-class + filter hash + tenant id and set a TTL matched to your data refresh expectations (5–15 min is typical for operational dashboards). Invalidate explicitly on the write paths that matter, or accept the TTL as the freshness contract and document it.Carbon::setTestNow), and add one feature test that hits the dashboard route as an authorized and an unauthorized user.GROUP BY DATE(created_at) uses the DB timezone; if the user's filter timezone differs, daily buckets drift. Convert in the query (CONVERT_TZ) or bucket in PHP for small ranges, and be consistent between the chart axis labels and the query.php artisan config:cache, any dynamic config from the dashboard definition file is frozen. Keep runtime-varying values out of config and in the database or a definition class.@push/@vite). A blank chart area is usually a missing script tag, not a data bug.EXPLAIN the aggregate query, add covering indexes on the grouping column, and downsample (hourly → daily) beyond ~90 days.Cache::flexible()/a lock so only one request recomputes.composer.json and read the changelog for config key renames around the dashboard; re-publish the config with --force only after diffing against your customized copy.How can I help you explore Laravel packages today?