- Is AssegaiPHP Console a replacement for Laravel Artisan?
- It is not a Laravel package and ships no service provider or Artisan integration, so it is not a drop-in replacement for Artisan. It is a framework-agnostic PHP CLI layer aimed at AssegaiPHP applications, but it will run in any PHP project where you bootstrap it yourself. If you already use Artisan, its command, argument, and output APIs cover much of the same ground. Consider Console only if you want its lighter, framework-agnostic command structure outside Laravel's console kernel.
- What PHP version does assegaiphp/console require?
- The package requires PHP 8.4 or newer, which remains its largest adoption gate for teams still on PHP 8.1 through 8.3. CI validates against PHP 8.4.26 and 8.5.11, so forward compatibility with the next minor is evidenced rather than assumed. Check your runtime and CI matrix before committing.
- How do I install AssegaiPHP Console with Composer?
- Install with composer require assegaiphp/console and verify it resolves against your PHP floor. Upgrades remain a single Composer command plus verification, with no changes to dependency constraints, installation locations, or entrypoints in 0.10.6. You then define commands as discoverable classes and wire them into your CLI entrypoint.
- How do I define a console command in AssegaiPHP Console?
- Commands are defined as simple, discoverable classes with a clean command structure, so custom scripts, maintenance tasks, and developer tooling need little boilerplate. You declare the command's arguments and options on the class and let the package parse and validate input. Output formatting is provided for readable terminal feedback, and the API is designed to drop into any PHP project.
- How does argument and option parsing work?
- The package parses arguments and options with validation, so invalid input is rejected before your command logic runs. Definitions live on the command class, keeping the signature and the handler in one place. That removes most of the manual argv handling scripts end up writing by hand.
- Does AssegaiPHP Console return exit codes I can use in CI?
- Yes. Exit codes are a first-class feature for reliable scripting and CI use, so a failing command can fail a pipeline correctly. Combine that with the formatted output for readable logs. Just be aware that a watch-mode hang is still a hang, so guard long-running calls with a timeout.
- What are web component groups in version 0.10.6?
- Groups are opt-in bundles configured in assegai.json and built with wc:build or wc:watch, emitting JavaScript and sibling CSS into application-served paths such as public/js/site.min.js, with per-group caches under .cache/assegai/groups/<name>/. Sources must be explicit workspace-relative directories or .wc.ts files: globs are not supported, membership cannot overlap across groups, cross-group .wc.ts imports are rejected, and paths escaping the workspace are refused. Projects without webComponents.groups keep the previous single-bundle source discovery, output paths, and list JSON, so there is no migration. Console does not deploy artifacts; your application is still responsible for including the emitted bundles.
- Why does wc:watch hang instead of exiting when there are no sources?
- In 0.10.6, empty watch sessions now stay active instead of exiting immediately. That is a correct fix, but it is a de facto behavioral break for any script, CI job, or Composer or npm hook that relied on wc:watch terminating on an empty source set, and those callers will now hang. It is not labelled as breaking, so audit your hooks before upgrading. Add a timeout or explicit guard if you depend on termination.
- Is 0.10.6 a safe upgrade and are there breaking changes?
- For projects that do not use web component groups there is no migration: source discovery, output paths, and list JSON structure are unchanged. However, the package is pre-1.0, SemVer permits breaking changes in a minor, and 0.10.6 widens the blast radius because a broken or misconfigured group build can mean missing front-end assets on deployed pages. Watch mode's new non-exit behavior is a de facto break, and a previously emitted group stylesheet is deleted when a successful build no longer emits it, silently breaking pages that reference it. Pin deliberately and re-assess at every minor and at 1.0.
- Does AssegaiPHP Console support Windows?
- Windows remains explicitly untested. This release is substantially more filesystem- and process-intensive than 0.10.5, adding directory create, remove, and rename handling in watch mode plus coordination of child esbuild processes, so the platform caveat matters more, not less. If you must run on Windows, validate wc:build and wc:watch in a disposable repository first.