Laravel 5 Falha ao abrir o bootstrap necessário /../fornecedor / autoload.php

366

Eu instalei recentemente o Laravel 5 via compositor. Tentei criar um novo controlador usando o artesão e recebo o seguinte erro:

bootstrap /../fornecedor / autoload.php. Falha ao abrir o fluxo: esse arquivo ou diretório não existe. A pasta "fornecedor" não existe.

Estou esquecendo de algo?

Scott
fonte

Respostas:

307

Execute o compositor com --no-scripts

composer update --no-scripts  

Isso deve corrigir o problema. Eu tentei isso no Mac e Linux.

Shubhamoy
fonte
14
Às vezes, quando você executa: "instalação do compositor", você também recebe esse erro; portanto, a melhor opção é executar primeiro: "instalação do compositor --no-scripts" e depois executar a instalação do compositor normalmente.
precisa saber é o seguinte
3
Documentação do compositor: --no-scripts: ignora a execução de scripts definidos em composer.json. ( getcomposer.org/doc/03-cli.md#update )
Aine
É muito melhor usar a instalação do compositor, porque ele executará todo o necessário para instalar todas as dependências, incluindo scripts.
Leandro Jacques
erro Composer não poderia encontrar um arquivo composer.json em C: \ compositor Para inicializar um projeto, criar um arquivo composer.json conforme descrito na getcomposer.org "Introdução" seção
PHPFan
composer installnão estava trabalhando para mim, composer update --no-scriptsfez o trabalho. Obrigado!
Endo64 7/02
137

Qual sistema operacional você está usando? Para Windows: Vá paraCommand Prompt

defina o caminho para www/{ur project}

Para mim : www/laravel5

Em seguida, digite este comando: composer install

Ele instalará automaticamente toda a dependência no vendor/

MONTS_MIND_Hacker
fonte
97

Execute composer installna pasta do projeto raiz (ou php composer.phar install).

dan-klasson
fonte
76

Acontece que eu não habilitei o openssl no meu php.ini; portanto, quando criei meu novo projeto com o composer, ele foi instalado a partir da fonte. Eu mudei isso e corri

composer update

agora a pasta do fornecedor foi criada.

Scott
fonte
57

Você criou um novo projeto ou clonou um projeto existente?

Se você clonou um projeto existente, é muito importante executar

composer install

Dessa forma, todas as dependências ausentes serão instaladas.

Mas se você criar um novo projeto, execute este comando para criar um novo projeto usando o compositor

composer create-project laravel/laravel name-of-your-project
Dimitri Acosta
fonte
23

Eu encontrei o mesmo problema. Ocorreu porque o compositor não pôde instalar as dependências especificadas no arquivo composer.json. tente correr

composer install 

Se isso não resolver o problema, verifique se os seguintes módulos php estão instalados php-mbstring php-dom

Para instalar essas extensões, execute o seguinte no terminal

sudo apt-get install php-mbstring php-dom

quando a instalação estiver concluída

tente executar o comando na pasta raiz do projeto

composer install 
naveddeshmukh
fonte
4
Eu instalei o php-xml para fazer isso funcionar em vez do php-dom (que não existe no 16.04).
Evan Carroll
11
Ótimo!!! Funcionou!! Instalando php-xml em vez de php-dom é ação padrão para o apt-get no Ubuntu 16.04
user2928048
11
funcionou depois de instalar o mbstring e o php-dom. Obrigado!
Splunk
21

Basta executar isso dentro do diretório em que você instalou seu projeto

composer install
Williem
fonte
11
Eu fiz isso e funcionou, mas por quê? Eu gostaria de entender o motivo, por favor.
Simon Suh
11
@SimonSuh, por algum motivo (falha na rede, novo projeto foi criado sem passar por todos os comandos, erro durante a instalação manual, instalação de compilação personalizada ...) dependências do compositor onde não está instalado ou não está atualizado. esse comando instalará e atualizará todas as dependências do seu projeto e que corrigirá o problema. espero que seja enought
Williem
20

Você precisa regenerar o autoload.phparquivo. você pode usardump-autoload fazer isso sem ter que passar por uma instalação ou atualização.

usar

composer dump-autoload

para gerar o autoload.phparquivo novamente no /vendordiretório

Hamid Parchami
fonte
Isso funciona para mim, mas com este erro Erro fatal: Classe 'Illuminate \ Foundation \ Application' não encontrada.
Adnan haider
19

Após esta etapa abaixo, resolvi o meu problema. Você pode tentar

composer update --no-scripts 
composer update
RASEL RANA
fonte
11
Também resolveu o meu problema! Obrigado
Crysfel
11
Muito obrigado!
GeekHades
16

Depois de verificar a phpversão e muita pesquisa, o problema estava do Composerlado, então execute o seguinte comando

composer install --ignore-platform-reqs

Hashmat Waziri
fonte
6

Quando o novo projeto criou o laravel, é necessário carregar os fornecedores para carregar automaticamente as bibliotecas, usamos a atualização do compositor para

composer update

O Composer é um gerenciador de dependências que permite delegar a responsabilidade de gerenciar suas dependências a terceiros.

Suresh Kumar Amrani
fonte
5

Basta executar os seguintes comandos,

composer update

Ou

composer install
Raham
fonte
5

vá para a pasta do seu projeto via cmd. execute o seguinte comando

composer update

instalará a pasta e os arquivos ausentes do fornecedor no seu projeto.

mas em alguns casos, ocorre um erro como "Sua configuração não permite conexão com ..." no cmd.

para isso, vá para o seu arquivo composer.json ,

mude "secure-http": truepara"secure-http": false

mas em alguns casos (como no meu caso), você pode não encontrar essa linha no seu arquivo. para isso, execute a seguinte ação:

change "config": {
        "preferred-install": "dist"
}

para

"config": {
    "preferred-install": "dist",
    "secure-http": false
}

e execute novamente o composer updatecomando.

espero que isso resolva o problema.

saadk
fonte
5

Esta solução funcionou para mim. O motivo não é ter uma pasta de fornecedores em seu aplicativo.

Siga esses passos:

  1. se o seu projeto tiver um composer.jsonarquivo, exclua-o

  2. então corra

    composer require phpspec/phpspec

Esse comando adiciona pasta de fornecedor ao seu projeto

Jayani Sumudini
fonte
4

Basta configurar um novo projeto usando em composervez de laravel:

composer create-project --prefer-dist laravel/laravel myProje
Raheel Hasan
fonte
3

Eu também tive esse erro. Mas nenhuma das opções acima resolveu o problema. Então eu desinstalei e instalei novamente o compositor. Então eu fiz composer update. e o problema foi resolvido.

Srijan Karki
fonte
depoiscomposer install
Hos Mercury 10/05
3

Eu tive o mesmo problema com laravel e artesão, a solução:

php artisan key:generate
Marcelo Agimóvel
fonte
2

Antes de seguir as instruções a seguir, é necessário verificar se o compositor está instalado globalmente em sua máquina; Abra seu terminal Mac e execute o seguinte comando:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Depois que o compositor estiver instalado globalmente, execute o seguinte comando depois de estar no diretório do projeto:

composer install

depois de concluído, atualize e instale todos os pacotes necessários.

Krishneil
fonte
2

Ocorreu um erro porque faltamos a pasta do fornecedor em nosso projeto. O diretório do fornecedor contém nossas dependências do Composer.

Necessita da /vendorpasta porque todos os pacotes estão lá e incluindo todas as classes que o Laravel usa. Um problema pode ser resolvido após apenas duas etapas:

composer update --no-scripts 
composer update
  • --no-scripts : ignora a execução dos scripts definidos emcomposer.json
  • atualização do compositor : Isso procurará versões mais recentes das bibliotecas necessárias no seu projeto. Se uma versão mais recente for encontrada e for compatível com a restrição de versão definida no composer.jsonarquivo, ela substituirá a versão anterior instalada. O composer.lockarquivo será atualizado para refletir essas alterações.

Esses dois comandos, recriaremos a pasta do fornecedor em nosso projeto e, depois disso, nosso projeto funcionará sem problemas.

Udhav Sarvaiya
fonte
1

Eu adicionei o composer.lockarquivo ao .gitignore, depois que o erro de confirmação do arquivo no repositório desapareceu :)

Alupotha
fonte
1

Algo que eu percebo é que o seu arquivo composer.json terá algum tipo de script como

"scripts": {
    "post-root-package-install": [
        "php -r \"copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ],
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "pre-update-cmd": [
        "php artisan clear-compiled"
    ],
    "post-update-cmd": [
        "php artisan optimize"
    ],
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover"
    ]
},

o que funciona para mim:

"scripts": {
    "post-root-package-install": [
        "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "@php artisan key:generate"
    ],
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover"
    ]
},

a remoção post install cmdajudou a executar a instalação do compositor sem nenhum problema.

Espero que isto ajude

Felicidades!!

usrNotFound
fonte
1

Exclua a pasta do fornecedor e execute o comando de instalação do compositor. Está trabalhando 100%

orxanzadeh
fonte
1

Está faltando a pasta do fornecedor, provavelmente seu novo repositório clonado ou novo projeto

a pasta do fornecedor é preenchida pelo binário do compositor, que lê os requisitos do sistema ou do arquivo composer.json e instala o pacote na pasta do fornecedor e cria um script de carregamento automático com todas as classes

composer update
AWS PS
fonte
1

Excluir fornecedor entãocomposer install

Hassan Raza
fonte
0

No meu caso, tive que ativar outra extensão, ou seja, php_mbstring.dllno php.iniarquivo antes que ele pudesse funcionar. Está listado em extension=php_mbstring.dll. Encontre-o no php.iniarquivo e remova o ponto-e-vírgula ( ;) na frente dele e salve o arquivo.

Após isso, execute install composernovamente no diretório raiz do aplicativo Laravel e deve funcionar.

Bono
fonte
0

Se você é um usuário do Windows, pode desinstalar o Composer. Em seguida, instale o Composer. Depois disso, você instala o Laravel. Talvez funcione.

Sadik Alamin Tushar
fonte
0

meu problema é resolvido por

composer update
composer install
php artisan key:generate

se tiver algum outro problema, você pode limpar o cache e configurar o cache de Limpar rota:

php artisan route:cache

Limpar cache de exibição:

php artisan view:clear

Limpar cache de configuração:

php artisan config:cache
Sanjay
fonte
0

Eu consegui isso quando o fiz, em composer updatevez de composer install.

Mick
fonte