vendor/autoload.php怎么生成

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vendor/autoload.php怎么生成相关的知识,希望对你有一定的参考价值。

安装
Composer包含两大逻辑部分:一个是用来存储包,另一个是命令行应用程序,帮助你发现、下载、更新和分享代码。
$ cd/path/to/my/project
$ curl -s http:// getcomposer.org/installer| php
在项目列表中,会有一个composer.phar文件,里面包含了所有逻辑代码行工具。你可以通过运行下面代码来确定是否安装成功。
$ php composer.phar
这个命令执行后会显示所有可用的命令。
我个人比较建议大家使用这个命令:
$ sudo mv composer.phar /usr/bin/composer
把这个文件移到bin目录下,它允许你简化命令。
$ composer about
如果你是在Windows上运行,你可以下载这个文件,然后通过PHP解析器安装,无论在哪里都可以。
解析composer.json文件
如果你是一名Ruby程序员,你会觉得这个文件跟Gemfile文件很相似,或者你是一个Node程序员,那么会觉得和package.json文件很像。同样,Composer会根据你的应用需求用composer.json文件来指定设置和封装。
在大多数基本的form里面,composer文件看起来是这样的:

"require":
"kriswallsmith/assetic": "*"


意思是需要一个“assetic”包,通过“kriswallsmith”创建和指定任意一个版本。你也可以指定一个特殊的版本,你可以使用下面命令代替:
"kriswallsmith/assetic": "1.0.3"
你甚至还可以使用这种方法:
"kriswallsmith/assetic": "1.0.*"
这个有一些微小的变化,但是他不会升级到1.1.0,程序员需要注意界面上细微的变化。
安装要求
现在,在你的composer.json文件下面会有一个或多个包,这个时候可以运行:
$ php composer.phar install
或者,如果你听了我的建议,你只需要在Unix机器上面运行:
$ composer install
你会发现,正在下载文件并且会放在应用程序根目录下面的vendors文件夹里面。这个逻辑也可以使用下面的配置:

"require":
"kriswallsmith/assetic": "1.0.*"
,
"config" :
"vendor-dir" : "packages"

参考技术A 这个是composer 安装 自会有的,自动引入
你看下 composer.json 文件里有啥
然后直接 `composer install` (好像是这条命令)
直接运行就行了!
参考技术B composer
Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。
他能生成
vendor/autoload.php
<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer' . '/autoload_real.php';

return ComposerAutoloaderInit67db7509c61e60a4f92e012c704d3566::getLoader();

不知道是不是

部署失败:打开失败需要'/var/app/ondeck/vendor/autoload.php'

【中文标题】部署失败:打开失败需要\'/var/app/ondeck/vendor/autoload.php\'【英文标题】:Deployment failure: Failed opening required '/var/app/ondeck/vendor/autoload.php'部署失败:打开失败需要'/var/app/ondeck/vendor/autoload.php' 【发布时间】:2020-03-04 02:07:08 【问题描述】:

我遇到了一个我真的不明白的问题。我已经为我的 Laravel 应用程序开发了一个本地作曲家包(基于一个没有完全按照我的需要做的现有的作曲家包),现在我不能再成功地将我的应用程序部署到我的 AWS Elastic Beanstalk 实例。

我相信我的新本地作曲家包是正确创建的:我把原来的作曲家包移到了我的 Laravel 应用根目录中一个名为“包”的新文件夹中。我在指向它的composer.json 中添加了一个repositories 条目:

"repositories": [
    
        "type": "path",
        "url": "packages/konsulting/justgiving-api-sdk"
    
]

然后我运行composer require konsulting/justgiving-api-sdk @dev,本地包安装成功。它在本地运行没有问题。

但现在部署到 EB,我收到以下错误:

活动执行失败,因为:PHP 警告: 要求(/var/app/ondeck/vendor/autoload.php):无法打开流: PHP 第 18 行的 /var/app/ondeck/artisan 中没有这样的文件或目录 致命错误:require():需要打开失败 '/var/app/ondeck/vendor/autoload.php' (include_path='.:/usr/share/pear7:/usr/share/php') 在 /var/app/ondeck/artisan 在第 18 行 (ElasticBeanstalk::ExternalInvocationError)

什么可能导致此问题?从字面上看,除了这个作曲家包(在本地工作)之外没有什么不同。

我试过composer dumpautoloadcomposer update

【问题讨论】:

你是如何部署你的应用程序的? 你检查/var/app/ondeck/vendor/autoload.php是否存在于服务器上? 【参考方案1】:

问题很简单,但令人困惑。我只需要在repositories 中禁用符号链接。

"options": 
    "symlink": false

现在工作正常!

【讨论】:

以上是关于vendor/autoload.php怎么生成的主要内容,如果未能解决你的问题,请参考以下文章

如何在 composer 和 /vendor/autoload.php 之前加载文件?

LARAVEL:main():打开失败需要'vendor\autoload.php'

部署失败:打开失败需要'/var/app/ondeck/vendor/autoload.php'

Laravel 5.3 PHP Artisan 不工作 PHP 警告:需要(bootstrap/../vendor/autoload.php)

安装后 Laravel 文件夹中没有 vendor/autoload.php 文件

Laravel的Warning: require..../vendor/autoload.php错误的解决办法