【问题标题】:Creating my first composer.json file创建我的第一个 composer.json 文件
【发布时间】:2013-11-23 17:27:10
【问题描述】:

我刚刚将我的第一个 composer.json 包添加到我创建的 API 中。

https://github.com/elvanto/api-php

这是我的文件的副本

{
    "name": "elvanto/api-php",
    "type": "library",
    "description": "API PHP Library for elvanto church management software.",
    "keywords": ["elvanto", "api"],
    "homepage": "https://github.com/elvanto/api-php/",
    "license": "MIT",
    "authors": [
        {
            "name": "Ben Sinclair",
            "homepage": "http://elvanto.com",
            "role": "Developer"
        }
    ],
    "require": {
        "php": ">=5.3.0"
    },
    "autoload": {
        "classmap": [
            "."
        ]
    }
}

当我尝试使用 Composer 安装包时,我在终端中得到了这个

-$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
Nothing to install or update
Generating autoload files

在我的 vendor/ 文件夹中,它会加载自动加载文件,但不包括我的类文件:

autoload.php
composer/autoload_classmap.php
composer/autoload_namespaces.php
composer/autoload_real.php
composer/ClassLoader.php

我做错了什么吗?我尝试将 composer.json 文件更改为以下内容(我已经看到其他软件包这样做了),但我得到了一个完全不同的错误:

"autoload": {
    "classmap": [
        "elvanto_API.php"
    ]
}

错误是:

[RuntimeException] 
Could not scan for classes inside "elvanto_API.php" which does not appear to be a file nor a folder

我想我已经很接近了,我只需要在这个方面有一点方向:)

【问题讨论】:

    标签: composer-php


    【解决方案1】:

    你第一次就做对了。 classmap 部分只是一个目录列表,您可以在其中找到要自动加载的类。您无需在此部分中指定单独的类名。

    如果你查看你生成的 vendor/composer/autoload_classmap.php 文件,你会发现它被选中了:

    $ cat vendor/composer/autoload_classmap.php
    <?php
    
    // autoload_classmap.php @generated by Composer
    
    $vendorDir = dirname(dirname(__FILE__));
    $baseDir = dirname($vendorDir);
    
    return array(
        'elvanto_API' => $baseDir . '/elvanto_API.php',
    );
    

    您现在可以在自动加载样式中使用此类:

    <?php
    
    require_once 'vendor/autoload.php';
    
    $test = new elvanto_API();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      相关资源
      最近更新 更多