Weave 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

Sf Controlpanel Laravel Package

newageerp/sf-controlpanel

A PHP package from NewAgeERP that provides a ready-to-use control panel for administering your application. It offers reusable UI and structure for managing records, configuration, and common admin workflows, helping teams build internal dashboards faster with less boilerplate.

View on GitHub
Deep Wiki
Context7

Getting Started

  1. Confirm what you're actually installing. newageerp/sf-controlpanel is a Symfony-side control panel for the newageERP stack, not a Laravel package. Before writing any code, open the repo and check composer.json for symfony/framework-bundle / symfony/http-kernel constraints, the type field (symfony-bundle vs library), and the extra.symfony block. That tells you whether it expects bundle registration.
  2. Install in a Symfony host, not your Laravel app. composer require newageerp/sf-controlpanel. If you try this inside a Laravel project you will almost certainly pull a parallel Symfony kernel and collide on symfony/* versions already required by Laravel. Treat the control panel as a separate admin application that shares your Laravel database, not as a Laravel dependency.
  3. Register the bundle (Symfony host). Add it to config/bundles.php if the package ships a *Bundle class. Check src/ for the bundle class name and whether it is auto-discovered.
  4. Look here first, in order:
    • README.md and any docs/ — sparse for a 0-star package, so read it literally.
    • src/DependencyInjection/ — the extension class reveals config keys and default parameters.
    • src/Controller/ and config/routes.* — where the panel mounts and what routes it owns.
    • Resources/config/ or config/ — services, tags, and intended extension points.
    • composer.json require — the real supported Symfony/PHP versions.
  5. First use case: mount the panel at /admin behind a firewall, point it at an existing user table, and verify you can log in and see one list screen before customizing anything. Do not attempt ERP entity integration on day one.

Implementation Patterns

Standalone admin app beside Laravel (recommended). Run the control panel as its own Symfony application (or thin skeleton) deployed alongside your Laravel API. Share the same database and, ideally, the same session/SSO. Laravel owns business writes; the control panel reads and administers. This keeps framework upgrades independent and avoids bootstrapping two containers in one process.

Laravel-first integration via HTTP, not code. If the panel needs ERP data, expose it from Laravel as JSON endpoints and let the Symfony panel consume them. Do not try to instantiate Laravel's Eloquent models inside Symfony. A shared DB connection works for reads but bypasses Laravel events, casts, and observers — a common source of "why didn't my model hook fire" bugs.

Authentication bridge.

  • Preferred: put both apps behind one identity provider (OIDC/SAML) so sessions are independent but identities match.
  • Cookie sharing: set the session cookie domain to the parent domain and align cookie_path, same_site, and session names. Session storage must match (Redis is easiest) if both apps must read the same session.
  • If the package ships its own login, disable it and wire a Symfony security firewall/guard to your existing user provider instead of maintaining two credential stores.

Menu and screen customization. Control panels of this style usually define navigation and CRUD screens declaratively. Look for config arrays, tagged services, or event subscribers in src/. Prefer registering your own menu items/widgets through the package's documented mechanism over editing vendor files. Fork only if there is no extension point — and then pin the fork to a commit.

CRUD screens. Subclass the package's base controller/abstract admin class rather than copying it, so security checks, pagination, and CSRF handling stay intact. Keep your resource-specific logic in your app's src/Controller/Admin/, not in vendor/.

Config over code. Publish the bundle config (bin/console config:dump-reference <alias>) and commit it. Put environment-specific values (DB DSN, mailer, panel base URL) in .env, not in the package defaults.

Upgrade discipline. For a 0-star, 0-dependent package there is no ecosystem signal that a release is safe. Pin an exact version in composer.json, run composer update --dry-run before bumping, and keep a short changelog of what you changed in vendor/ if you patch anything.

Gotchas and Tips

  • Framework mismatch is the headline risk. A Symfony bundle does not expose a Laravel service provider. "Install it in Laravel" is not a supported path; expect container, routing, and middleware conflicts. Budget for a separate app.
  • Zero stars / zero dependents means zero field testing. You are the first integrator for your use case. Read the source before trusting the README, and assume undocumented behavior. Vendor-patch with a patches entry (e.g. cweagans/composer-patches) rather than editing vendor/ in place.
  • Bundle not auto-registered. If the panel's routes 404, check config/bundles.php first, then bin/console debug:router to confirm the routes loaded, then debug:container for the extension alias.
  • Config keys are guesswork until you dump the reference. Run bin/console config:dump-reference <alias> instead of copying keys from blog posts; a typo'd key is silently ignored by Symfony's config tree.
  • Security firewall ordering. Symfony firewalls match top-down. If the panel sits behind an existing main firewall with security: false for assets or a broad ^/ pattern, your panel routes may be public without you noticing. Verify with an incognito request, not just a logged-in one.
  • CSRF and session domain. If you share a cookie across subdomains, CSRF tokens can fail intermittently due to mismatched cookie_domain, cookie_secure, or Redis prefix. Symptom: forms work in one app, 419-equivalent in the other.
  • Asset pipeline. Symfony bundles typically expect assets:install / importmap / Webpack Encore. If styles or JS are missing, check public/bundles/<name>/ was populated. Don't hand-copy assets from vendor/.
  • Debugging. Use the Symfony profiler for request/DB inspection; bin/console debug:event-dispatcher to find the extension events; debug:container --tag=<tag> to see what the package registers. In Laravel, the equivalent (Telescope, artisan route:list) will show nothing for the panel because it isn't loaded there.
  • Extension points to look for: event subscribers on the package's admin events, tagged services for menu/widget registration, overridable Twig templates via templates/bundles/<BundleName>/, and resource/config classes for CRUD screens. Prefer these over inheritance chains.
  • Never let the panel own schema migrations. If the package ships Doctrine migrations, run them in a controlled step and reconcile against Laravel's migrations; two migration tools against one schema is a reliable way to lose data.
  • Pin PHP and Symfony minor versions in CI to match the package's tested range. A control panel that works on Symfony 6.3 may break subtly on 7.x.
  • Have an exit plan. With no maintainer community, assume you may need to fork. Keep the panel's business logic thin and in your own code so replacement is feasible.
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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style