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

Composer Construction Kit Installer Laravel Package

c33s/composer-construction-kit-installer

Composer plugin for C33s Construction Kit: detects installed packages with the c33s-building-blocks extra and writes a list of blocks to {$appDir}/config/config/c33s_construction_kit.composer.yml for use by c33s/construction-kit-bundle.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Modular Symfony Architecture: Enables a "building block" approach for Symfony applications, where features (e.g., authentication, reporting, or domain-specific modules) are packaged as reusable, independently versioned components. This aligns with microservices-inspired modularity within a monolith, reducing technical debt and accelerating feature delivery.
  • Accelerated MVP/Prototyping: Ideal for rapid iteration in early-stage products where core functionality can be assembled from pre-built blocks (e.g., admin panels, APIs, or workflows) without reinventing the wheel. Reduces time-to-market for scaffolding.
  • Build vs. Buy for Internal Tools: Justifies investing in custom blocks (e.g., internal CRM, analytics dashboards) by leveraging the kit’s scaffolding to avoid vendor lock-in while maintaining flexibility. Example: A SaaS company building a multi-tenant platform could use this to standardize tenant-specific modules.
  • Roadmap for "Plugin Economy": If your product relies on extensibility (e.g., WordPress-like plugins or Shopify apps), this package could underpin a marketplace of reusable Symfony blocks, monetized via Packagist or a private registry. Requires complementary tooling (e.g., a block discovery UI).
  • Legacy Modernization: For teams migrating monolithic PHP apps to Symfony, this provides a structured way to decompose legacy code into maintainable blocks, reducing risk during refactoring.

When to Consider This Package

Adopt When:

  • You’re building a Symfony-based application where features can be decomposed into loosely coupled, reusable components (e.g., e-commerce plugins, SaaS multi-tenancy, or enterprise portals).
  • Your team prioritizes developer velocity over customization for core infrastructure (e.g., auth, logging, or CMS integrations).
  • You need to balance standardization with flexibility—enforcing a consistent architecture (via the construction-kit-bundle) while allowing teams to mix-and-match blocks.
  • You’re targeting long-term maintainability and want to avoid "spaghetti wiring" of services/config across a growing codebase.
  • Your CI/CD pipeline can handle Composer plugin dependencies without friction (e.g., not blocked by air-gapped environments or strict security policies).

Look Elsewhere If:

  • Your stack isn’t Symfony-centric (e.g., Laravel, non-PHP, or framework-agnostic).
  • You require fine-grained control over autoloading/config that this plugin’s auto-detection cannot accommodate (e.g., dynamic block loading based on runtime conditions).
  • Your team lacks Composer plugin experience or faces enterprise constraints (e.g., no plugin execution in production builds).
  • You need real-time block composition (e.g., user-assembled dashboards) rather than compile-time registration.
  • Alternatives like Symfony Flex or auto-wiring already suffice for your use case (this package is niche even within Symfony).

How to Pitch It (Stakeholders)

For Executives:

"This is a ‘Lego for Symfony’—a way to build our product faster by snapping together pre-built, battle-tested modules (like authentication, reporting, or domain-specific workflows) instead of writing boilerplate from scratch. Think of it like App Store for internal features: Teams can mix and match blocks to ship capabilities 30–50% quicker, while keeping the codebase clean and scalable. For example, if we’re launching a new SaaS tenant feature, we could assemble it from three blocks (billing, user management, and analytics) instead of building a monolith. The trade-off? We standardize on Symfony and commit to a modular architecture—but the payoff is reduced tech debt and faster iteration."

Ask: "Would you prioritize this for our [MVP/next major feature] to accelerate delivery?"


For Engineering Leadership:

*"This Composer plugin solves two key pain points:

  1. Configuration Hell: No more manually wiring services/config for every ‘building block’ (e.g., security.yaml, doctrine, or custom bundles). It auto-generates a c33s_construction_kit.composer.yml manifest during composer install/update, so blocks register themselves.
  2. Consistency at Scale: Enforces a modular pattern where teams can’t accidentally couple features. Example: The marketing team adds a ‘newsletter block’ without touching the auth layer.

How we’d use it:

  • Phase 1: Adopt for non-critical features (e.g., admin panels, legacy integrations) to prove the pattern.
  • Phase 2: Build internal blocks for our core product (e.g., @company/tenant-block, @company/billing-block) and publish them privately.
  • Phase 3: Open-source high-value blocks (e.g., a Symfony version of our auth system) to reduce vendor risk.

Risks:

  • Requires buy-in from teams to structure new features as blocks (not monoliths).
  • Early adoption may need custom glue code for edge cases.

Alternatives:

  • Roll our own Composer plugin (3–5 dev weeks).
  • Stick with manual config (technical debt).

Recommendation: Pilot with 1–2 features to validate the ROI before scaling."*


For Developers:

*"This plugin lets you declare dependencies as Symfony blocks instead of bundles. Here’s how it works:

  1. Add a block to composer.json (e.g., c33s/block-auth:^1.0).
  2. Run composer update—the plugin auto-detects the block’s c33s-building-blocks metadata and registers it in config/c33s_construction_kit.composer.yml.
  3. The Construction Kit Bundle handles the rest: wiring services, routes, and config.

Why it’s useful:

  • No more Bundle classes: Blocks are just packages with a Resources/config/ folder.
  • Dynamic composition: Enable/disable blocks via Composer (e.g., composer require c33s/block-reporting --dev for local testing).
  • Works with Symfony Flex: Plays nicely with modern Symfony tooling.

Example Workflow:

# Add a block
composer require c33s/block-user-management

# Trigger manual update (if needed)
composer run-script post-update-cmd

# Verify in config/c33s_construction_kit.composer.yml
blocks:
  user-management:
    path: vendor/c33s/block-user-management
    config: Resources/config/block.yml

Gotchas:

  • Blocks must follow the spec (e.g., include extra.c33s-building-blocks in composer.json).
  • Debugging misconfigurations requires checking the generated YML file.

*Let’s try it on [Project X]—I’ll draft a PR to refactor the auth module as a block this week."

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.
make-dev/orca
dmstr/symfony-system-resources-bundle
dmstr/symfony-job-queue-bundle
dmstr/openapi-json-schema-bundle
dmstr/keycloak-security-bundle
dmstr/doctrine-audit-log-bundle
dmstr/api-platform-utils-bundle
dmstr/api-configuration-bundle
chrisdev/ux-components
baks-dev/finances
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