Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I install Composer PHP packages without Composer?

People also ask

Do I need to install composer?

yes, but it's not necessary to download vendors with composer install . you can move composer binary file to Server and move your vendor too, then place vendor folder on your project and use composer dump-autoload . 's that means we can't setup application without composer.


You can try https://php-download.com/ which can help you download all dependency most of the time along with vendor folder. It promises composer not required. Tried it myself. It finds and creates all required folders and zips it for download. Works perfectly !!


The composer.json file lists the dependencies. In your example:

"require": {
    "php": ">=5.5.0",
    "guzzlehttp/guzzle": "^6.0",
    "psr/http-message": "^1.0",
    "psr/log": "^1.0"
},

You must then find the corresponding packages in the packagist site. Repeat the same process for each dependency: find additional dependencies in their corresponding composer.json files and search again.

When you finally have a complete list of the required packages, you only need to install them all one by one. For the most part, it's just a matter of dropping the files somewhere in your project directory. But you must also ensure that PHP can find the needed classes. Since you aren't using Composer's auto-loader, you need to add them to your own custom autoloader. You can figure out the information from the respective composer.json files, e.g.:

"autoload": {
    "psr-4": { "Coinbase\\Wallet\\": "src/" }
},

If you don't use a class auto-loader you'll need to figure out the individual require_once statements. You'll probably need a lot of trial and error because most library authors won't care documenting that.

Also, and just in case there's confusion about this:

  • Composer has an official GUI installer for Windows and a copy and paste command-line installation procedure for all platforms.
  • Composer can be run locally and its output just uploaded elsewhere. You don't need SSH in your shared hosting.
  • The command needed to install a library can be copied and pasted from the package web site—even if the package maintainer didn't care to document it, packagist.org generates it by default.

Composer is not perfect and it doesn't suit all use cases but, when it comes to installing a library that relies on it, it's undoubtedly the best alternative and it's a fairly decent one.


I've checked other answers that came after mine. They mostly fall in two categories:

  1. Install a library and write a custom download script with it
  2. Use an online web based interface for Composer

Unless I'm missing something, none of them address the complaints expressed by the OP:

  • Learning curve
  • Use of third-party software
  • Possibility to develop right on the server (using SSH, I presume)
  • Potentially deep dependency tree

I'm using shared hosting for a website and can't execute commands there. Aside from running composer via php script request that I request via browser, I usually use this workflow:

  • Make sure you have php installed locally.
  • Make directory on desktop.
  • download composer.phar from https://getcomposer.org/download/ (under header *Manual Download) and place it in the directory.
  • make a file composer.json paste in it the following contents

     {
         "require": {
             "coinbase/coinbase": "~2.0"
         }
     }
    
  • Browse to the directory with the shell of your choice(bash, git-bash, cmd, windows bash)

  • type php composer.phar update screenshot of bash output
  • Upload the vendor directory to your webserver via ftp or whatever mechanic you use.
  • include in your php project where you load your libraries(modify path to where you uploaded the vendor dir so it will include that autoload file)

    require_once('vendor/autoload.php');
    

This way you get the benefit of dependency management and you don't have to include manually all the gazillion of files and download all the dependencies manually, and updating them is just as easy as typing php composer.phar update and then replacing the vendor dir on your server with the new one.


I had to do this for an FTP server I didn't have SSH access to. The site listed in here worked, then I realized you can just do a composer install on your own server (using your target's PHP version), then copy all the files over.


This is not the ultimate solution but for me it was a big help for most of the cases: https://github.com/Wilkins/composer-file-loader

Allow you to load composer.json file just as composer would do it. This allow you to load composer.json file without composer (so theorically PHP 5.2 is enough)

I know the question is old but I hope it will help someone.


An alternative solution that worked for me (since php-download was down) can be done by making your own little local composer downloader.

  1. Download and install XAMPP locally: https://www.apachefriends.org/index.html
  2. Download and install composer locally: https://getcomposer.org/download/
  3. Open commandprompt, navigate to say c:\temp and and simply type the composer dependancy, for example: composer require league/oauth2-client
  4. Copy the files from your c:\temp folder to your web host using an FTP program
  5. Add this to the top of your php: require("vendor/autoload.php");