0
votes

When I try to require autoload in my index.php file I get this error Warning: require_once(C:\xampp\htdocs\gacho\public/vendor/autoload.php): failed to open stream. Now I know that path to vendor folder isn't correct but I can't find the right one. Also I'm using .htaccess file and I think that has to do something with the problem. Here is my code structure and code:

code structure:

gacho
|- app
   |- controller
   |- core
   |- model
   |- view
|-public
   |- .htaccess
   |- index.php
|-vendor
   |- composer
      |- autoload_classmap.php
   |- autoload.php
|-composer.json

.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ index.php [QSA,L]

composer.json

{
"autoload": {
    "classmap":[
        "app"
    ]
  }
}

autoload_classmap

return array(
 'App\\Controller\\HomeController' => $baseDir . 
 '/app/controller/HomeController.php',
 'App\\Core\\Application' => $baseDir . '/app/core/Application.php',
 'App\\Core\\Controller' => $baseDir . '/app/core/Controller.php',
 'App\\Core\\Database' => $baseDir . '/app/core/Database.php',
 'App\\Core\\View' => $baseDir . '/app/core/View.php',
 'App\\Model\\User' => $baseDir . '/app/model/User.php',
 );

index.php

require_once __DIR__ . '/vendor/autoload.php';
1
Could it be the combination of backslashes and forward slashes in the URL?tshimkus
require_once __DIR__ . '/../vendor/autoload.php';Quasimodo's clone
@Quasimodo'sclone now I get 404 not found error and this message 'The requested resource / was not found on this server.'rose
@tshimkus I'm sorry I don't follow. What exactly do you mean?rose
If you use require_once __DIR__ . '\vendor\autoload.php'; with backslashes it will be compatible with the Windows file system. The warning message you got was showing C:\xampp\htdocs\gacho\public/vendor/autoload.php with a mix of slashes and backslashes.tshimkus

1 Answers

0
votes

Looks like you are one level off. Try this:

require_once dirname(__DIR__) . '/vendor/autoload.php';