简体   繁体   中英

How to run library with composer?

I'm trying to install this github repo to my project (running on codeigniter). The steps I'm doing is very simple:

    {
      "name": "project",
      "description": "",
      "license": "MIT",
      "require": {
          "php" : ">=5.3.0",
          "blockchain/blockchain" : "1.*",
          "ext-curl": "*"
      },
  "require-dev": {

  }
} // composer.json

and run php composer.phar update . So the package installs but I can't use it in my project - I don't think its autoloaded. /vendor/autoload.php is required in my index.php. When I try it with different package for test purposes (kriswallsmith/buzz) - it works. So what I'm doing wrong?

Also I checked my vendor/composer/installed.json and I see this:

    [
    {
        "name": "blockchain/blockchain",
        "version": "v1.0",
        "version_normalized": "1.0.0.0",
        "source": {
            "type": "git",
            "url": "https://github.com/blockchain/api-v1-client-php.git",
            "reference": "c219b9b00778cf6c025628bd34fd6543922fe81b"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/blockchain/api-v1-client-php/zipball/c219b9b00778cf6c025628bd34fd6543$
            "reference": "c219b9b00778cf6c025628bd34fd6543922fe81b",
            "shasum": ""
        },
        "require": {
            "ext-curl": "*",
            "php": ">=5.3.0"
        },
        "time": "2015-02-03 18:34:11",
        "type": "library",
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Blockchain\\": "src/"
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "description": "Blockchain API client library",
        "homepage": "https://github.com/blockchain/api-v1-client-php",
        "keywords": [
            "bitcoin",
            "blockchain"
        ]
    }
]

and my function where I'm trying to use this lib:

private function __check_btc_balance()
{
    error_reporting(E_ALL);
    $Blockchain = new \Blockchain\Blockchain(PAYMENTS_BTC_API_CODE);
}

I've seen ...

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

I always keep all my code in src\\Vendor\\Project\\Filename.php and composer autoloader works with this. Try to add this lines of code:

    "autoload": {
        "psr-0": {
            "": "src/"
        }
    },

Have you followed the installation steps?

Basically there are some differences from common composer packages. Over here it says download the source code and run composer install from it's own folder

Then include the autoloader file from the folder of the downloaded files so you will have somewhere a folder Blockchain/vendor/autoload.php to include

Download the source or clone the repository. This php library works with the Composer package manager. Navigate to the root of the repository and run

$ composer install

This will create the /vendor folder in the repository root. In the php source, simply:

// Include the autoload.php from its vendor directory require 'vendor/autoload.php'

// Create the base Blockchain class instance

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM