问题
I have a project, I use Composer and i import many thing by it... i require the autoload.php in my index (the root of project) and istead Slim, Mongo, Twig work very well. But when I call a class of Respect/Validation it doens't work; if I simply use Respect/Validation the error is:
Class 'Respect\Validation\Validator' not found in (path of file when i need it).
if I try to require also here the autoload.php the errors are:
**Warning**: require_once(vendor/autoload.php): failed to open stream: No such file or directory in (path of file when i need it)
**Fatal error**: require_once(): Failed opening required 'vendor/autoload.php' (include_path='.;C:\xampp\php\PEAR') in (path of file when i need it)
回答1:
If you are using a file (file.php
) in a particular directory like this:
/app/controller/validation
and your vendor directory is in the base path of the project, you need to include the relative path to vendor directory:
../../../vendor/autoload.php
回答2:
Try using php composer dump-autoload
. It may fix that problem.
回答3:
I did this.
i checked the file and permissions as always but everything looks ok. Then I open autoload.php and see ... oh! we have __DIR__
ofcourse.
I was doing this
require '../../vendor.autoload.php';
Changed to
require __DIR__.'../../vendor.autoload.php';
Not politically correct but got me by the frustrating waste of time for the moment.
ofcourse there are better alternatives to __DIR__
like using a BASE Path etc. But this worked for me.
回答4:
I had the same issue with xampp. I installed composer and used:
composer create-project --stability=dev --prefer-dist yiisoft/yii2-app-basic D:\xampp\htdocs\newapp
My issue solved now.
回答5:
I had the same problem and i solved it by using the last version of laravel, just try this code to create your project:
composer create-project laravel/laravel exampleProject --prefer-dist
this always uses the last version.
回答6:
I solved simple re-run composer update from the project Root. (my case was on Magento2, but the error and the path are the same)
回答7:
In my case i simple forgot to change my working directory before running the command composer require cboden/ratchet
in cmd this fixed it cd c:\path to project\
then composer require cboden/ratchet
回答8:
I solve the problem without any install
or update
of composer
and just by moving require_once
from sub class to main page
.
require_once 'vendor/autoload.php';
来源:https://stackoverflow.com/questions/18312707/why-my-autoload-php-of-composer-doesnt-work