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

Skeleton Laravel Package

jawira/skeleton

Project skeleton/scaffolding for PHP or Laravel-style packages by Jawira. Includes a ready-to-use structure and boilerplate to kickstart new packages quickly, with common configs, tests, and tooling so you can focus on features instead of setup.

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Steps

  1. Installation:

    composer require --dev jawira/skeleton
    

    Add to composer.json under require-dev to ensure it’s only installed in development environments.

  2. First Use Case: Run a basic target to verify functionality:

    phing -f vendor/jawira/skeleton/build.xml -l
    

    This lists all available targets without executing them.

  3. Execute a Target: Example: Run PHPUnit tests:

    phing -f vendor/jawira/skeleton/build.xml phpunit
    

Implementation Patterns

Workflows

  1. Code Quality Checks: Integrate into your CI pipeline to enforce standards:

    phing -f vendor/jawira/skeleton/build.xml cs:fix  # Auto-fix code style
    phing -f vendor/jawira/skeleton/build.xml cs:check # Validate without fixing
    
  2. Dependency Management: Use composer:outdated to audit dependencies:

    phing -f vendor/jawira/skeleton/build.xml composer:outdated
    
  3. Git Operations: Generate or update .gitignore:

    phing -f vendor/jawira/skeleton/build.xml gitignore -Dforce=true
    
  4. Docker Integration: Start containers with dc:open (includes wait-for conditions):

    phing -f vendor/jawira/skeleton/build.xml dc:open
    
  5. Customization: Extend build.xml by copying it to your project root and modifying targets. Example:

    <project name="my-project" default="build" basedir=".">
        <import file="vendor/jawira/skeleton/build.xml"/>
        <target name="custom-task">
            <echo>Running custom task!</echo>
        </target>
    </project>
    

Integration Tips

  • Composer Scripts: Alias Phing targets in composer.json for convenience:
    "scripts": {
        "test": "phing -f vendor/jawira/skeleton/build.xml phpunit",
        "fix-cs": "phing -f vendor/jawira/skeleton/build.xml cs:fix"
    }
    
  • CI/CD: Add Phing tasks to .github/workflows/ci.yml:
    - name: Run PHP-CS-Fixer
      run: phing -f vendor/jawira/skeleton/build.xml cs:check
    
  • Laravel Artisan: Create an Artisan command to wrap Phing calls:
    // app/Console/Commands/RunPhing.php
    public function handle()
    {
        Artisan::call('vendor.bin.phing', [
            '-f', 'vendor/jawira/skeleton/build.xml',
            $this->argument('target')
        ]);
    }
    

Gotchas and Tips

Pitfalls

  1. Phing Dependency: Ensure phing/phing is installed globally or via Composer:

    composer require --dev phing/phing
    

    Without it, targets will fail with phing command not found.

  2. Target Conflicts: If you define custom targets with the same names as jawira/skeleton, they may override the package’s defaults. Use unique names or namespace them.

  3. Docker Compatibility: The dc:open target assumes Docker Compose v2+. Older versions may fail. Test locally before CI integration.

  4. File Overwrites: Targets like gitignore use -Dforce=true to overwrite files. Be cautious in shared environments (e.g., CI caches).

  5. Future-Dated Releases: The package’s last release is dated 2026, which may indicate:

    • A hoax or abandoned project.
    • Verify the repository’s authenticity (e.g., check GitHub commits, CI status).
    • Use with caution in production.

Debugging

  • Verbose Output: Add -v to Phing commands for debugging:
    phing -f vendor/jawira/skeleton/build.xml -v target-name
    
  • Dry Runs: Use -d to see what Phing would do without executing:
    phing -f vendor/jawira/skeleton/build.xml -d target-name
    
  • Log Files: Check build.log in the project root for errors.

Tips

  1. Custom Configs: Override package defaults by copying config files (e.g., .php-cs-fixer.dist.php) to your project root and referencing them in build.xml:

    <property name="cs.fixer.config" value=".php-cs-fixer.dist.php"/>
    
  2. Psalm Integration: Use psalm targets with Laravel’s psalm.xml:

    phing -f vendor/jawira/skeleton/build.xml psalm
    
  3. Performance: Cache Phing’s build file for faster repeated runs:

    phing -f vendor/jawira/skeleton/build.xml -B target-name
    
  4. Extension Points:

    • Add Targets: Extend build.xml by appending new <target> blocks.
    • Modify Properties: Override properties (e.g., phpunit.config) before importing the package’s build file:
      <property name="phpunit.config" value="phpunit.xml.dist"/>
      <import file="vendor/jawira/skeleton/build.xml"/>
      
  5. Laravel-Specific: For Laravel projects, prefer Artisan commands or Composer scripts over Phing for tasks like migrations or queue workers. Example:

    phing -f vendor/jawira/skeleton/build.xml artisan:migrate  # Avoid; use `php artisan migrate` instead
    
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.
apiboxsym/user-bundle
apiboxsym/health-check-bundle
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