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

Curriculumvitae Laravel Package

fabiencrassat/curriculumvitae

A Laravel/PHP package for building and managing a curriculum vitae from structured data. It helps organize CV sections and render a resume, making it easy to add a lightweight CV builder to your application or site. Composer-installable and suitable for Laravel or standalone PHP projects.

View on GitHub
Deep Wiki
Context7

Getting Started

Start by confirming your runtime can actually take 2.0: "Symfony 4 compliance" is shorthand for a raised floor — PHP >= 7.1.3 and Symfony components pinned to ^4.0. Check composer why symfony/* before upgrading, because any transitive dependency still asking for ^2.8|^3.0 will block the install and Composer will report a conflict rather than silently downgrading.

composer require <vendor>/<package>:^2.0
php artisan vendor:publish --provider="<Vendor>\<Package>\ServiceProvider"

Where to look first:

  1. The package's composer.json — this is the source of truth for the supported Laravel/Symfony matrix in 2.0.
  2. The service provider's register()/boot() methods — Symfony 4 dropped a lot of container-aware magic, so bindings that used to be resolved implicitly may now be explicit.
  3. Any config file published in step 2 — diff it against your existing config/<package>.php, since 2.0 config keys can shift without a migration path.

First use case to validate end-to-end: resolve the package's main entry point from the container and exercise it once through a queued job or console command, not just a unit test. Symfony 4 compliance issues usually surface in bootstrapping (service providers, console kernel, event dispatcher wiring), which unit tests skip.

Implementation Patterns

Pin the major and upgrade deliberately. The ^2.0 constraint plus a lockfile commit is the safest pattern; 2.0 is a breaking release by definition (major bump for a Symfony major bump), so treat every environment as a fresh integration.

Inject contracts, not concrete Symfony classes. Symfony 4 tightened several constructors and removed container-aware base classes. Type-hint against interfaces (EventDispatcherInterface, LoggerInterface) and let Laravel's container autowire them — this keeps you insulated from the next component bump.

Isolate the package behind a thin adapter. Wrap the package's public API in one of your own service classes and bind it in a service provider. When 3.0 lands and Symfony 5/6 semantics arrive, you change one file instead of grepping your codebase.

CI matrix by PHP version. With a 7.1.3 floor and Symfony 4's own upper bounds, run your pipeline against the oldest and newest PHP your composer.json allows. Symfony 4 deprecations are emitted at runtime as notices — fail the build on deprecations (SYMFONY_DEPRECATIONS_HELPER=strict in phpunit config) so they don't accumulate silently.

Console and queue integration. If the package registers commands, verify them under php artisan list after upgrading; Symfony 4 changed console command signatures and default naming, so commands that previously resolved by alias can disappear. For queued usage, confirm serialization works — Symfony 4 narrowed what its serializers accept.

Testing pattern. Use RefreshDatabase plus container swapping ($this->swap(...)) to substitute the package's Symfony-backed services with fakes. This is faster and more stable than mocking Symfony classes directly, whose constructors are now stricter.

Gotchas and Tips

  • PHP 7.1.3 is a hard floor, not a suggestion. If you're on 7.0 or a 5.6 LTS, you cannot install 2.0 — you'll stay on 1.x, which is now effectively unmaintained. Plan the PHP upgrade as part of this work, not after it.
  • Symfony 4 removed deprecated shims. Anything the package previously relied on for backwards compatibility (container-aware base classes, the old GetSetMethodNormalizer, deprecated console helpers) is gone. If you extended a package class, check that your parent still exists and that method signatures still match.
  • Config cache is a common false failure. Run php artisan config:clear and php artisan cache:clear before debugging a "service not found" error after upgrading — stale cached providers produce misleading container exceptions.
  • composer update vs composer require. Updating the package inline can leave orphaned Symfony 3 packages in the lockfile. Prefer removing and re-requiring, or run composer why-not symfony/framework-bundle 4.0 to find the blocker.
  • Autowiring behaviour changed. Symfony 4's container resolves by type with stricter rules. If you bound an interface to a concrete class in 1.x and relied on implicit resolution elsewhere, make every binding explicit in your service provider.
  • Deprecations are your upgrade roadmap. Treat every @deprecated notice from 2.0 as a 3.0 breakage. Log them in CI and open issues now.
  • Extension points. The package's service provider is defer-able in most cases — if you're not overriding its published config, mark it deferred in your own provider registration for a small boot-time win. Override bindings in register(), not boot(), to avoid resolution-order surprises.
  • Rollback plan. Because this is a major, keep a composer.json branch with ^1.0 pinned so you can hotfix production while 2.0 is validated.
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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core