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 dumpautoload
和composer 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)