'Should Laravel's "vendor/bin" be in the system's PATH?

I'm trying to follow this series of guides for deploying my Laravel app using the open-source deployer tool.

The guide is generally very good, but the linked step is confusing - it says to install the deployer package using something like:

composer require deployer/deployer

...and that this should make the dep binary available globally - but not only does this not happen on my system (Cygwin, which is technically Windows but emulates POSIX systems pretty closely), I wouldn't expect it to either since the project's vendor/bin isn't in my PATH, and I wouldn't expect to have to place project-specific vendor/bin folders into the PATH because this would be needed for every Laravel project I had, potentially resulting in tens of thousands of binaries in the PATH.

Is this actually the intended way to do this, or is there a more natural/scalable way that is also guaranteed not to break anything? Would simply installing the dep binary manually to /usr/local/bin cause problems with how deployer runs, either locally or on my server?



Solution 1:[1]

Should Laravel /vendor/bin be in the PATH?

No, a composer's project (Laravel or any other) vendor/bin should not be generally added to the system's path.

Is this actually the intended way to do this, or is there a more natural/scalable way that is also guaranteed not to break anything? Would simply installing the dep binary manually to /usr/local/bin cause problems with how deployer runs, either locally or on my server?

Usually a utility like this would be installed globally, not per-project. So either you install it like composer require deployer/deployer --global, or you download the "binary" (PHAR file in this case) and put it somewhere within your system's path.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1