Better PHP dev-env init (#624)

* Extract logic to avoid adding composer in the path multiple times and add Symfony

* Add missing usage

* Use the official script to install Symfony installer

* Use AUR package

* Move PHP and Composer install in function to avoid duplication.

* Add explicit usage for symfony-cli

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
This commit is contained in:
Brosseau Valentin 2025-08-10 20:45:47 +02:00 committed by GitHub
parent 1d2fe96916
commit 4b6e8962ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,10 +1,22 @@
#!/bin/bash #!/bin/bash
if [[ -z "$1" ]]; then if [[ -z "$1" ]]; then
echo "Usage: omarchy-instal-dev-env <ruby|node|bun|go|laravel|python|elixir|rust|java|ocaml|dotnet>" >&2 echo "Usage: omarchy-instal-dev-env <ruby|node|bun|go|laravel|symfony|python|elixir|rust|java|ocaml|dotnet>" >&2
exit 1 exit 1
fi fi
install_php() {
yay -Sy php composer --noconfirm
if [[ ":$PATH:" != *":$HOME/.config/composer/vendor/bin:"* ]]; then
echo 'export PATH="$HOME/.config/composer/vendor/bin:$PATH"' >> "$HOME/.bashrc"
source "$HOME/.bashrc"
echo "Added Composer global bin directory to PATH."
else
echo "Composer global bin directory already in PATH."
fi
}
case "$1" in case "$1" in
ruby) ruby)
echo -e "Installing Ruby on Rails...\n" echo -e "Installing Ruby on Rails...\n"
@ -30,13 +42,21 @@ go)
;; ;;
laravel) laravel)
echo -e "Installing PHP and Laravel...\n" echo -e "Installing PHP and Laravel...\n"
yay -S php composer --noconfirm install_php
composer global require laravel/installer composer global require laravel/installer
echo 'export PATH="$HOME/.config/composer/vendor/bin:$PATH"' >>"$HOME/.bashrc"
source "$HOME/.bashrc"
echo "PHP, Composer, and Laravel have been installed successfully." echo "PHP, Composer, and Laravel have been installed successfully."
echo "You can now run: laravel new myproject" echo "You can now run: laravel new myproject"
;; ;;
symfony)
echo -e "Installing PHP and Symfony...\n"
install_php
yay -S symfony-cli --noconfirm
echo "PHP, Composer, and Symfony CLI have been installed successfully."
echo "If you are building a traditional web application:"
echo "symfony new --webapp my_project"
echo "If you are building a microservice, console application or API:"
echo "symfony new my_project"
;;
python) python)
echo -e "Installing Python...\n" echo -e "Installing Python...\n"
mise use --global python@latest mise use --global python@latest