- Is civicrm/civicrm-core a Laravel package?
- No. civicrm/civicrm-core is a full CRM application and framework, not a Laravel package; it ships no ServiceProvider, facade, publishable config, or container bindings. It expects a CMS host such as Drupal, WordPress, Joomla, or Backdrop, or its Standalone bootstrap, to supply routing, identity, and sessions. Running composer require civicrm/civicrm-core inside a Laravel app is unsupported.
- How do I integrate CiviCRM with a Laravel application?
- Treat CiviCRM as a peer service and system of record for contacts, contributions, memberships, events, cases, groups, and custom fields. The supported seam is APIv4 over REST at /civicrm/ajax/api4/{Entity}/{action}, plus webhooks or civicrm_post hooks and the cv CLI for provisioning and scripted operations. Keep Laravel as the owner of product UX, authentication, billing, and your own domain.
- Does civicrm/civicrm-core support Laravel 10 or Laravel 11?
- Laravel version support is not applicable because this is not a Laravel package and has no Laravel service provider or version constraints. Compatibility is determined by PHP version, the CMS host or Standalone bootstrap, and the database, not by Laravel 10 or 11. Do not plan around Laravel release upgrades as if this were a normal Composer dependency.
- Can I install CiviCRM with composer require civicrm/civicrm-core?
- No, composer require civicrm/civicrm-core is not a supported installation path for a Laravel app. The repository's composer.json primarily serves its own development and CI tooling. A working install still needs civicrm.settings.php, filesystem paths, a CMS host or Standalone setup, and a database installer run.
- What is the license for civicrm/civicrm-core and can I use it in a SaaS product?
- CiviCRM core is licensed under AGPL-3.0, which carries network copyleft obligations. Pure API consumption from Laravel is generally safe, but linking, patching, bundling, or forking is not automatically safe. This is a product and packaging risk for self-hosted services versus closed SaaS, so settle it before engineering commits.
- How does authentication work when calling CiviCRM APIv4 from Laravel?
- Authentication is a spike item, not a build-time detail. You can use the legacy API key plus site key model, or the authx extension for JWT or OAuth-style flows. That choice determines whether the Laravel client is a service account or a per-user delegated model, which is a security and audit decision.
- Should I use CiviCRM APIv3 or APIv4 for a new Laravel integration?
- Use APIv4 for new Laravel integrations. Upstream guidance pushes new work to APIv4 and away from crmApi and APIv3, but the migration tail is long and uneven. Budget for operating through mixed API versions rather than assuming a clean contract.
- How do I test a Laravel app that integrates with CiviCRM?
- You need a provisioned CiviCRM site and database for realistic integration tests. Use the cv CLI to provision and script operations, then test the APIv4 REST contract your Laravel app depends on. Be aware that upstream local dev and CI are heavy: Karma shells out to cv, PHPUnit needs a database, and onboarding is non-trivial.
- Why does civicrm/civicrm-core have zero Packagist dependents?
- Zero Packagist dependents is expected for an application like this and is not disqualifying; Packagist measures Composer consumers, not API integrations. Validate adoption through the CiviCRM extension ecosystem and community channels instead of repository metrics. Development happens on GitLab at lab.civicrm.org, with GitHub effectively a mirror. If you contribute, declare any AI-agent involvement in commits or PRs, as upstream policy requires.
- What are alternatives to civicrm/civicrm-core for a Laravel application?
- If the goal is to embed a CRM in a Laravel app, reconsider the buy-versus-build decision before estimating. A lighter CRM or a Laravel-native package may fit better than treating CiviCRM as a library. The overall score gap against opportunity signals market demand, not proven package adoption, so validate the framing in the PRD.