Webisters is a command line tool for creating and managing Webisters projects.
- PHP
>=8.2 - Composer 2.x
Enable these before running composer global require webisters/webisters or any webisters new-* command. Missing extensions are the most common cause of install failures.
- Framework runtime:
ext-intl,ext-sodium,ext-gd,ext-mysqli,ext-curl,ext-fileinfo,ext-json,ext-simplexml,ext-dom,ext-libxml - Composer download/extract (needed during install):
ext-zip,ext-openssl- Without
zip, Composer falls back to slow source downloads and showsFailed to download ... skipping. - Without
openssl, Composer cannot fetch packages over HTTPS.
- Without
json,fileinfo,openssl,dom, andsimplexmlship with most PHP builds;intl,sodium,gd,mysqli,curl, andzipusually need to be enabled manually.
- Windows: locate your
php.iniwithphp --ini, uncomment the matchingextension=...lines (intl,sodium,gd,mysqli,curl,openssl,zip), and restart your terminal/web server. - Ubuntu/Debian (example):
sudo apt update
sudo apt install php-intl php-sodium php-gd php-mysqli php-curl php-zip
sudo systemctl restart php8.2-fpm # or restart your PHP service- Verify with
php -m(the printed list should include the extensions above).
composer global require webisters/webistersThis adds Composer's global bin-dir to your user PATH.
composer global exec webisters setupSetup writes to your user PATH, so open a new terminal afterward. Command Prompt,
PowerShell, and Git Bash all read the updated user PATH, but any session that was already
open will not see the change until you reopen it. In the new terminal, verify with
webisters --version (or where webisters).
If you install behind a proxy, mirror, or other restricted network, make sure Composer can reach Packagist and GitHub before running the global install. The global installer and the new-* commands both shell out to Composer, so anything that makes composer work on your network makes Webisters work too.
Behind a proxy
-
Set proxy variables for the current shell, for example:
export HTTP_PROXY="http://user:pass@proxy.example.com:8080" export HTTPS_PROXY="http://user:pass@proxy.example.com:8080" export NO_PROXY="localhost,127.0.0.1"
-
Or configure the proxy in Composer itself so it persists across shells:
composer config -g http-proxy http://proxy.example.com:8080 composer config -g https-proxy http://proxy.example.com:8080
-
If your proxy performs TLS inspection, point Composer/PHP at your corporate CA bundle:
composer config -g cafile /path/to/corporate-ca-bundle.pem
Using a package mirror
composer config -g repos.packagist composer https://packagist.mirror.example.comFully offline / air-gapped environments
-
On a machine that can reach the network, warm the Composer cache and install once:
composer global require webisters/webisters
-
Copy the Composer home directory to the restricted machine. Find it with
composer config -g home. -
On the restricted machine:
export COMPOSER_CACHE_DIR="/path/to/copied/cache" composer global require webisters/webisters --prefer-dist
Creating projects offline
webisters new-app my-app --no-installThen run composer install yourself once dependencies are reachable. Use --with-install to force the install step when the network is available.
Diagnosing failures
-
Run
webisters checkto confirm PHP, required extensions, and Composer are detected. -
Rerun with high verbosity to see the underlying network error:
composer global require webisters/webisters -vvv
Preferred (after PATH setup):
webisters new-app my-app
webisters new-api my-api
webisters new-one my-one
webisters new-site my-siteNo-PATH fallback (works on any OS):
composer global exec webisters new-app my-appThe CLI downloads the project template using composer create-project and then asks whether to run composer install.
Use --no-install to skip the install step or --with-install to run it without prompting.
Use --dry-run to preview the scaffolded actions without writing files.
You can also use the grouped form:
webisters new app <name>
webisters new api <name>
webisters new one <name>
webisters new site <name>| Command | Description |
|---|---|
new-app <name> |
Create an App (full MVC) project |
new-api <name> |
Create an API project |
new-one <name> |
Create a One (single-file) project |
new-site <name> |
Create a Static Site project |
| Command | Description |
|---|---|
make:controller <Name> |
Create a controller in app/Controllers/ |
make:model <Name> |
Create a model in app/Models/ |
make:view <path/name> |
Create a view in app/Views/ |
Nested paths are supported with / separators, e.g. make:controller Admin/Users.
| Command | Description |
|---|---|
route:list |
Display all registered routes (run inside a project) |
| Command | Description |
|---|---|
check / doctor |
Report PHP, extension, and Composer status |
list |
Show all available commands |
| Command | Description |
|---|---|
setup |
(Windows) Add Composer global bin-dir to user PATH |
update |
Update the global Webisters CLI via Composer |
# bash
webisters completion bash > /etc/bash_completion.d/webisters
# or append to ~/.bashrc:
webisters completion bash >> ~/.bashrc
# zsh
webisters completion zsh > "${fpath[1]}/_webisters"
# then restart your shell- Issues: https://github.com/webisters/webisters/issues
- Source: https://github.com/webisters/webisters
- Documentation: https://webisters.com
- Forum: https://github.com/webisters/forum
- Email: support@webisters.com
MIT