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

Terrific Core Bundle Laravel Package

beatgeb/terrific-core-bundle

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Setup

  1. Installation Add the package via Composer:

    composer require brunschgi/terrific-core-bundle:1.0.*
    

    Register the bundle in AppKernel.php:

    $bundles[] = new Beatgeb\TerrificCoreBundle\TerrificCoreBundle();
    
  2. First Use Case The bundle provides Assetic filters for Terrific-specific optimizations (e.g., CSS/JS minification, source maps). Start by configuring Assetic in config.yml:

    assetic:
        filters:
            terrific_css:
                class: Beatgeb\TerrificCoreBundle\Assetic\Filter\TerrificCssFilter
            terrific_js:
                class: Beatgeb\TerrificCoreBundle\Assetic\Filter\TerrificJsFilter
    
  3. Key Files to Review

    • src/Beatgeb/TerrificCoreBundle/Resources/config/services.yml (for service definitions).
    • src/Beatgeb/TerrificCoreBundle/Assetic/ (custom Assetic filters).

Implementation Patterns

Workflows

  1. Frontend Asset Pipeline Use the bundle’s Assetic filters to process Terrific-specific assets (e.g., .terrific.css or .terrific.js files):

    {% stylesheets [
        'bundles/terrificcore/css/app.terrific.css'
    ] output='css/app.css' filter='terrific_css' %}
        <link rel="stylesheet" href="{{ asset_url }}">
    {% endstylesheets %}
    
  2. Integration with TerrificComposerBundle Pair with TerrificComposerBundle for dependency management (e.g., Bower/npm packages):

    composer require brunschgi/terrific-composer-bundle
    

    Configure in config.yml:

    terrific_composer:
        bower_components: "%kernel.root_dir%/../web/bower_components"
        npm_packages: "%kernel.root_dir%/../web/node_modules"
    
  3. Custom Filters Extend existing filters by subclassing Beatgeb\TerrificCoreBundle\Assetic\Filter\AbstractTerrificFilter:

    namespace AppBundle\Assetic\Filter;
    use Beatgeb\TerrificCoreBundle\Assetic\Filter\AbstractTerrificFilter;
    
    class CustomTerrificFilter extends AbstractTerrificFilter {
        protected function filterLoad() { /* Custom logic */ }
    }
    

    Register in config.yml:

    assetic:
        filters:
            custom_terrific:
                class: AppBundle\Assetic\Filter\CustomTerrificFilter
    

Gotchas and Tips

Pitfalls

  1. Outdated Codebase

    • Last release in 2017; test thoroughly for compatibility with modern Laravel/Symfony (e.g., Assetic v2+).
    • Workaround: Fork and update dependencies (e.g., symfony/assetic-bundle) if needed.
  2. Assetic Configuration Conflicts

    • Ensure terrific_* filters are last in the chain to avoid override issues:
      assetic:
          filters:
              - cssrewrite
              - terrific_css  # Place after core filters
      
  3. Terrific-Specific File Extensions

    • Files must use .terrific.css/.terrific.js to trigger filters. Rename or alias existing files:
      {% set cssFile = 'styles.css'|replace('.css', '.terrific.css') %}
      

Debugging

  • Assetic Debug Mode: Enable in config.yml to inspect filter output:
    assetic:
        debug: true
    
  • Log Filter Execution: Add debug logs in AbstractTerrificFilter:
    public function filterLoad() {
        $this->log('Processing Terrific asset: ' . $this->getPath());
    }
    

Extension Points

  1. Custom Asset Directories Override default paths in config.yml:

    terrific_core:
        asset_dirs:
            css: "%kernel.root_dir%/../web/terrific/css"
            js: "%kernel.root_dir%/../web/terrific/js"
    
  2. Source Maps Enable via Assetic configuration:

    assetic:
        use_controller: true
        filters:
            terrific_css:
                options:
                    source_map: true
    
  3. Symfony 4/5 Compatibility

    • Use auto-wiring in config/packages/assetic.yaml:
      assetic:
          filters:
              terrific_css:
                  class: Beatgeb\TerrificCoreBundle\Assetic\Filter\TerrificCssFilter
                  arguments: []
                  tags: ['assetic.filter']
      
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.
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle