composer-php 相关问题

Composer是PHP编程语言的应用程序级包管理器。它提供了一种标准格式,可以轻松管理基于PHP的项目依赖项(库),并受到Node.js的“npm”和Ruby的“bundler”的强烈启发。 Composer由Nils Adermann和Jordi Boggiano开发。他们都继续管理这个项目。更多信息,请访问https://getcomposer.org。

使 packagist 需要 github 工件(而不是提交)

我正在使用 packagist.org 发布一些自定义的 php 包,以便可以通过作曲家安装(或者更确切地说是必需的),但是我有一些包需要一些构建步骤(用于编译 ...

回答 1 投票 0

Pusher Channel 通知在第二台电脑上不起作用

我是 Laravel 的新手, 我正在制作一个带有评论部分的博客应用程序,当我使用推送器发送评论时,我不必刷新页面。 但这只适用于我的一台电脑,而不适用于我的人......

回答 0 投票 0

什么用户选择在 Ubuntu 22.04/Plesk Obsidian 上使用 Composer 安装软件包?

在虚拟服务器(Ubuntu 22.04/Plesk Obsidian)上我想安装一个 composer 项目,但是由于以 root/超级用户身份运行 Composer 是不好的做法,我必须切换到另一个用户。 W...

回答 1 投票 0

Laravel 没有发现我正在开发的包

我正在开发一个包,但不知何故我无法让 Laravel 发现它。 包位于应用程序的根目录中,并遵循下一个结构: 文件: 状态管理器.php 我正在开发一个包,但不知何故我无法让 Laravel 发现它。 包在应用程序的根目录下并遵循下一个结构: 文件: StatusManager.php <?php namespace Troyerx\StatusManager; trait StatusManager { //Code } Composer.json 在packages/troyerx/statusmanager/ { "name": "troyerx/statusmanager", "description": "Simple model status manager", "license": "MIT", "keywords": [ "troyerx", "php", "statusmanager" ], "authors": [ { "name": "Sergio", "email": "[email protected]" } ], "autoload": { "psr-4": { "Troyerx\\Statusmanager\\": "src/" } }, "require": {} } 小米应用 composer.json 看起来像: { "name": "laravel/laravel", "type": "project", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "require": { "php": "^8.1", "guzzlehttp/guzzle": "^7.2", "laravel/framework": "^10.0", "laravel/sanctum": "^3.2", "laravel/tinker": "^2.8" }, "require-dev": { "fakerphp/faker": "^1.9.1", "laravel/pint": "^1.0", "laravel/sail": "^1.18", "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^7.0", "phpunit/phpunit": "^10.0", "spatie/laravel-ignition": "^2.0" }, "autoload": { "psr-4": { "App\\": "app/", "Troyerx\\Statusmanager\\": "packages/troyerx/statusmanager/src/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" } }, "autoload-dev": { "psr-4": { "Troyerx\\Statusmanager\\": "packages/troyerx/statusmanager/src/", "Tests\\": "tests/" } }, "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" ], "post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate --ansi" ] }, "extra": { "laravel": { "dont-discover": [] } }, "config": { "optimize-autoloader": true, "preferred-install": "dist", "sort-packages": true, "allow-plugins": { "pestphp/pest-plugin": true, "php-http/discovery": true } }, "minimum-stability": "stable", "prefer-stable": true } 由于包被标记为在自动加载时被发现,我应该期望在运行时包含它: composer dump-autoload 但是我得到以下提示: Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi INFO Discovering packages. laravel/sail ................................................................................................................................ DONE laravel/sanctum ............................................................................................................................. DONE laravel/tinker .............................................................................................................................. DONE nesbot/carbon ............................................................................................................................... DONE nunomaduro/collision ........................................................................................................................ DONE nunomaduro/termwind ......................................................................................................................... DONE spatie/laravel-ignition ..................................................................................................................... DONE Generated optimized autoload files containing 5729 classes 如果我在模型中调用特性,它不会自动加载 <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Troyerx\StatusManager\StatusManager as StatusManager; class Order extends Model { use StatusManager; } 给出下一个错误: Trait "Troyerx\StatusManager\StatusManager" not found 为什么 Laravel 没有加载我的包?我错过了哪一步或问题出在哪里? 所以,你的包裹的composer.json应该是这样的: { "name": "troyerx/statusmanager", "description": "Simple model status manager", "license": "MIT", "version": "1.0.0", "keywords": [ "troyerx", "php", "statusmanager" ], "authors": [ { "name": "Sergio", "email": "[email protected]" } ], "require": { "laravel/framework": "^10.0" }, "autoload": { "psr-4": { "Troyerx\\Statusmanager\\": "src/" } } } 看到我有: 添加了一个require(Laravel Framework),所以它依赖于Laravel(如果是纯PHP,去掉它) 我还添加了version,这样你就可以跟踪版本,这样更容易 你的主要composer.json应该是这样的(我会列出我更改或添加的部分): { "name": "laravel/laravel", "type": "project", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "require": { "php": "^8.1", "guzzlehttp/guzzle": "^7.2", "laravel/framework": "^10.0", "laravel/sanctum": "^3.2", "laravel/tinker": "^2.8", "troyerx/statusmanager": "^1.0" }, "require-dev": { "fakerphp/faker": "^1.9.1", "laravel/pint": "^1.0", "laravel/sail": "^1.18", "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^7.0", "phpunit/phpunit": "^10.0", "spatie/laravel-ignition": "^2.0" }, "autoload": { "psr-4": { "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" } }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }, "repositories": [ { "type": "path", "url": "packages/" }, ], "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" ], "post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate --ansi" ] }, "extra": { "laravel": { "dont-discover": [] } }, "config": { "optimize-autoloader": true, "preferred-install": "dist", "sort-packages": true, "allow-plugins": { "pestphp/pest-plugin": true, "php-http/discovery": true } }, "minimum-stability": "stable", "prefer-stable": true } 我有: 从autoload和autoload-dev中删除了您的自定义命名空间 添加了一个带有版本约束的普通require 在文件中添加repositories部分链接到它应该查找的文件夹 所以,首先编辑你的包的 composer 文件,然后将 repositories 添加到你的主 composer 文件中,然后使用命令行执行 composer require troyerx/statusmanager:^1.0 并完成,它会自动被选中。 记得将包的作曲家版本(version部分)升级到新版本,然后只需在主作曲家中运行composer update troyerx/statusmanager就可以了! 这是我用过的作曲家文档:https://getcomposer.org/doc/05-repositories.md#path 要记住的一件事:如果你正在开发一个 Laravel 包,你不应该在 database 里面有 factories 和 src,但是在外面,然后有那个包的 composer.json 像这样: { "name": "troyerx/statusmanager", "description": "Simple model status manager", "license": "MIT", "version": "1.0.0", "keywords": [ "troyerx", "php", "statusmanager" ], "authors": [ { "name": "Sergio", "email": "[email protected]" } ], "require": { "laravel/framework": "^10.0" }, "autoload": { "psr-4": { "Troyerx\\Statusmanager\\": "src/", "Troyerx\\Statusmanager\\Database\\Factories\\": "database/factories/", "Troyerx\\Statusmanager\\Database\\Seeders\\": "database/seeders/" } } } 您需要拥有自己的ServiceProvider并将其添加到包的作曲家extra -> laravel部分,如下所示:https://github.com/barryvdh/laravel-ide-helper/blob/4dc20b028adaeadf603860f179f09da5aa21f5b5/composer.json# L70-L74 使用该开发包作为如何实现您自己的包的指南,它应该看起来非常相似(至少与您的文件一样,但结构明智)。 使用 Laravel Jetstream(例如),查看如何加载迁移。请以它为例。 请记住,所有 Laravel 包都像那两个,所以如果您知道一个包,请转到 github 并查看其结构以及它在 composer.json 等中的内容。按照那个! 我找到了解决方案,让 Laravel 在我运行时发现/安装我的包composer dump-autoload. 在我添加的应用程序 composer.json 中: "repositories": [ { "type": "path", "url": "packages/troyerx/statusmanager", "options": { "symlink": true } } ], 并在 require-dev 中添加下一行: "require-dev": { ... "troyerx/statusmanager": "@dev" }, 运行后composer update发现包: INFO Discovering packages. laravel/sail ................................................................................................................................ DONE laravel/sanctum ............................................................................................................................. DONE laravel/tinker .............................................................................................................................. DONE nesbot/carbon ............................................................................................................................... DONE nunomaduro/collision ........................................................................................................................ DONE nunomaduro/termwind ......................................................................................................................... DONE spatie/laravel-ignition ..................................................................................................................... DONE troyerx/statusmanager ....................................................................................................................... DONE

回答 2 投票 0

php composer 中最低稳定性和许可证的功能是什么

{ “名称”:“穆罕默德/ test_generator”, "描述": "测试", “许可证”:“麻省理工学院”, “最低稳定性”:“开发”, “需要……

回答 0 投票 0

Laravel 版本、PHP 版本和 Composer 版本的兼容性问题

我已经安装了 PHP 7.3.33 版、composer 1.1 并运行了多个 laravel 7.x 项目。 现在我正在尝试安装两个不同的 Laravel 项目。一个使用 Laravel 9,另一个使用 7.x。 如果我

回答 4 投票 0

将示例数据安装到 magento 2.4

我无法在终端中将示例数据安装到 magento 2.4。 $ php bin/magento 样本数据:部署 ./composer.json 已更新 运行 composer update magento/module-bundle-sample-data magento/module-

回答 0 投票 0

在 PackageDiscoveryTrait.php 第 366 行:

如何解决这个问题?在此处输入图像描述 我想在我的 laravel 中安装包 dompdf,但我在 composer 中出错

回答 1 投票 0

CMD 中的 websocket 没有响应

我正在尝试在我的本地 WAMP 服务器上设置网络套接字,我已经关注了几个文档,现在我正处于这一点。我首先安装了 composer 然后为 PHP 安装了 Ratchet,然后我创建了 2 ...

回答 0 投票 0

Could not parse version constraint ~x.x: Invalid version string "~x.x"

我用以下命令下载了 composer.phar: 卷曲-sS https://getcomposer.org/installer | PHP 然后我运行这个命令: php composer.phar 需要 mailgun/mailgun-php:~x.x 但是我得到了这个错误: [

回答 2 投票 0

当您的默认 PHP 版本不是 8.1 时,通过 composer 安装 Laravel 10

我们中的许多人在不使用 sudo update-alternatives --config php 的情况下通过 composer 安装 Laravel 10 时遇到问题。 如果您默认的 php 版本是...

回答 1 投票 0

我可以撤消作曲家的转储自动加载吗?

我在我的 PHP 项目上错误地发出了 composer dump-autoload -o(以为它做了别的事情!)。有没有办法撤消这个? 我在 vendor/composer/autoload_real.php 中找到了一个自动生成的文件 -

回答 1 投票 0

当我想将 laravel 9 升级到 10 时,出现依赖性错误。我该如何解决?

在我的 composer.json 文件中 以前的依赖是: “要求”: { "php": "^8.0.2", "darkaonline/l5-swagger": "^8.4", “

回答 1 投票 0

如何在Windows下增加Symfony项目的PHP内存限制?

我的本地主机(Windows 7 企业版)上有一个 Symfony3 项目,我将 Wamp Server 3.0.0 与 PHP 5.6.16 和 Apache 2.4.17 一起使用。 当我这样做时:php bin/console cache:clear 我有这个错误: 我也……

回答 2 投票 0

/usr/bin/env: 'php': 没有那个文件或目录

我已经安装了composer,可以用cmd访问它 在此处输入图像描述 但是当我用 git bash 运行它时会显示这样的错误 在此处输入图像描述 我已经...

回答 0 投票 0

curl error 6 while downloading https://api.github.com/rate_limit: Could not resolve host: api.github.com CakePHP4

我是 docker 的新手,几天前我一直收到这个错误,以前没有发生过。看起来我超出了 api 访问限制之类的。 ``` 操作系统:WSL(Ubuntu22.04) PHP:...

回答 0 投票 0

composer 说 zend-serviccemanager 2.7.8 与 zendframework 2.4.0 冲突

我有一个必须维护的遗留系统,目前我无法将其更新为最新技术 但是我遇到了 AWS S3 的问题,尝试了一些东西后,我决定重新安装依赖项...

回答 0 投票 0

尝试安装包时的最低稳定性问题

我创建了一个包,在那个 composer.json 文件中我没有声明最小稳定性,因此默认为稳定。 在另一个项目中,我想使用 composer require --dev my/

回答 1 投票 0

运行 laravel 新应用程序时获取卷曲错误 60

我得到的错误 无法从 dist 下载 laravel/laravel:下载 https://codeload.github.com/laravel/laravel/legacy.zip/37ab32cf760406f767f6a278748546214585 时卷曲错误 60 ...

回答 0 投票 0

如何为 TYPO3 安装作曲家?

我怎么安装 TYPO3 的作曲家?不要在互联网上向我发送教程。我都检查过了。而且我总是停在第 1 步。因为他们都已经从编码的东西开始了。

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.