如何使用__autoload的composer自动加载器?

时间:2016-09-24 17:47:37

标签: php composer-php

我的composer.json内容是:

{
    "require": {
        "rlanvin/php-rrule": "1.*"
    }
}

我自己的自动编辑器是:

function __autoload($class_name) {
    include __DIR__.'/classes/'.$class_name . '.php';
}

问题是:当我想用

添加作曲家自动加载器时
require_once 'vendor/autoload.php';

我自己的自动加载器不再起作用了。 (没有找到课程!)

如何让noth工作(作曲家自动编辑和我的作品)?

问候

我试过了:

<?php
require 'vendor/autoload.php';
User::get(1);

User.php在/ classes

composer.json

{
    "require": {
        "rlanvin/php-rrule": "1.*"
    },
    "autoload": {
        "psr-0": { 
            "": "classes" 
        }
    }
}

并且找不到类用户&#39;

使用我的自动加载器查找:

function autoload($ class_name){     包括__DIR 。&#39; / classes /&#39;。$ class_name。 &#39; .PHP&#39 ;; }

1 个答案:

答案 0 :(得分:2)

您不需要自动加载器。 Composer有很多options:PSR-0,PSR-4,类映射和文件。试试classmap

{
    "require": {
        "rlanvin/php-rrule": "1.*"
    },
    "autoload": {
        "classmap": [
            "classes"
        ]
    }
}

<小时/> 更新:或者更好地以下列方式使用psr-0

{
    "require": {
        "rlanvin/php-rrule": "1.*"
    },
    "autoload": {
        "psr-0": { 
            "": "classes" 
        }
    }
}