yarek
yarek

Reputation: 12064

how to use composer autoloader with __autoload?

my composer.json content is:

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

my own autolader is:

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

Problem is: when I want to add tha composer autoloader with

require_once 'vendor/autoload.php';

My own autoloader does not work any more. (Class not found !)

How to make noth work (the composer autolader and mine) ?

regards

I tried:

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

User.php is in /classes

composer.json

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

and 'got Class User not found'

It works find with my autloader:

function autoload($class_name) { include __DIR.'/classes/'.$class_name . '.php'; }

Upvotes: 3

Views: 915

Answers (1)

peterm
peterm

Reputation: 92845

You don't need your autoloader. Composer has plenty of options: PSR-0, PSR-4, classmap and files. Try classmap.

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


UPDATED: Or even better use psr-0 in the following way

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

Upvotes: 3

Related Questions