我知道这个问题已被多次发布,但对我来说这似乎是一个不同的问题.
的确,这个错误
警告:require(vendor/autoload.php):无法打开流:第3行的C:\ xampp\htdocs\site_web\send_mail.php中没有此类文件或目录
致命错误:require():在第3行的C:\ xampp\htdocs\site_web\send_mail.php中打开所需的'vendor/autoload.php'(include_path ='C:\ xampp\php\PEAR')失败
出现在我的代码开头的这一行:
require 'vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)
所以,我想我的电脑里必须有一个/vendor/autoload.php文件(我已经安装了composer并运行composer require phpmailer/phpmailer).
于是,我找了使用此文件:dir /s autoload.php在Windows命令行,发现这里什么人C:\Windows\SysWOW64\vendor\autoload.php,
但对我来说,使用autoload.php没有看到syswow64文件夹,我没有看到我在这里缺少什么.
能向我解释的人之间的区别NPM,Bower和Composer.
他们都是包裹经理 - 对吗?
但什么时候应该使用每一个?
此外,每个人都有一个随附的json文件,这是否存储了您需要的所有软件包,以便可以通过cmd行安装它们?你为什么需要这个档案?
我有几个库[Foo和Bar]我正在开发音乐会,但在技术上仍然是独立的东西.以前我刚刚重新定义了自动加载器"Foo\\": "../Foo/src",但是现在我已经为Foo添加了一个Guzzle依赖项,Bar翻转它的盖子,因为它不是它的依赖项之一.
目录结构:
/home/user/src/
Foo/
src/
FooClient.php
composer.json
Bar/
src/
BarClient.php
composer.json
Run Code Online (Sandbox Code Playgroud)
理论自动加载声明:[在Bar/composer.json]
"require": {
"local": "../Foo/composer.json"
}
Run Code Online (Sandbox Code Playgroud)
示例代码:
require('vendor/autoload.php');
$f = new \Bar\BarClient(new \Foo\FooClient());
Run Code Online (Sandbox Code Playgroud)
如何在不设置本地Composer仓库的情况下解决此问题?我想将它们作为单独的包维护,只需要另一个包,并因此处理其他的依赖.
感谢infomaniac,我做了以下事情:
初始化git repo:
cd ~/src/Foo && git init && echo -e "vendor\ncomposer.lock" > .gitignore && git add ./ && git commit -m "Initial Commit"
Run Code Online (Sandbox Code Playgroud)
添加了作曲家配置:
"require": {
"sammitch/foo": "dev-master"
},
"repositories": [{
"type": "vcs",
"url": "/home/sammitch/src/Foo"
}],
Run Code Online (Sandbox Code Playgroud)
然后composer update!
假设我正在编写一个库A,这取决于另一个库,例如monolog.
我想安装最新版本的monolog,所以我把它放在composer.json中:
{
"require": {
"monolog/monolog": "*.*.*"
}
}
Run Code Online (Sandbox Code Playgroud)
然后我跑了$ php composer.phar install.
我期待在composer.lock中找到安装的版本,但它不存在:
{
"hash": "d7bcc4fe544b4ef7561918a8fc6ce009",
"packages": [
{
"package": "monolog/monolog",
"version": "dev-master",
"source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7"
}
],
"packages-dev": null,
"aliases": [
],
"minimum-stability": "dev",
"stability-flags": [
]
}
Run Code Online (Sandbox Code Playgroud)
我需要这个版本,因为我想把我的库绑定到一组特定的版本,例如:如果我发现版本是1.3.5,在我的composer.json中,我想把这样的东西:
"require": {
"monolog/monolog": "1.3.*"
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有这个定义:
{
"repositories": [
{
"type": "package",
"package": {
"name": "symfony/sfGuardPlugin",
"version": "4.0.2",
"dist": {
"url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz",
"type": "tar"
}
}
}
],
"require": {
"symfony/sfGuardPlugin": "4.0.*"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Symfony 1,我想安装它们plugins/sfGuardPlugin/.我该如何指定?
我正在使用ZF2骨架应用程序,它有一个.gitignore,可以防止外部库被提交给git.在调试的过程中,我喜欢在图书馆的源代码中随处更改内容,以了解工作原理.如果这些是版本控制的,那么很容易将它们恢复到原始状态.
我如何强制Composer重新安装一个特定的框架,以便我可以再次获得一个新的 - 未修改的副本?
PS:请不要建议删除.gitignore文件,因为它出于某种原因; 它阻止我的第三方库进入我的应用程序的存储库.我总是可以在自动部署期间安装它们.
我最近尝试通过Composer安装软件包,但是我从一个错误中the requested PHP extension mbstring is missing from your system.
删除了分号php.ini,但它仍然无法正常工作.我该怎么办?
如果我输入"composer",我会收到上述错误消息.
我在我的macbook上做了:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Run Code Online (Sandbox Code Playgroud)
全局安装Composer.
我不得不手动创建/ local/bin/composer目录,这可能导致错误?
php composer.phar
Run Code Online (Sandbox Code Playgroud)
如果我在.phar文件所在的代码目录中,则可以正常工作.
我该怎么做才能解决问题并在全球范围内运行作曲家?
我的〜/ .profile
export PS1="\W: "
export CLICOLOR=1
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
Run Code Online (Sandbox Code Playgroud)
〜:echo $ PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/bin
~:
Run Code Online (Sandbox Code Playgroud) 我遇到了问题,我试图在我的laravel 4项目中安装一个新包.但是当我跑步时,php composer.phar update我得到了这个:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Killed
Run Code Online (Sandbox Code Playgroud)
我在互联网上找了问题,看到内存是问题,我想我没有足够的RAM可用,我已经检查了这个我有大约411mb免费.作曲家真的需要更多的内存吗?有谁可以帮助我吗?
谢谢
我正在尝试用Composer设置PSR-4,但我刚刚开始 A non-empty PSR-4 prefix must end with a namespace separator.
我autoload的composer.json看起来像这样:
"autoload": {
"psr-4": {
"Acme\\models" : "app/models"
}
},
Run Code Online (Sandbox Code Playgroud)
app/models 是空的.
我究竟做错了什么?我怎样才能解决这个问题?