winter/packager
Composer 安装命令:
composer require winter/packager
包简介
Run Composer commands within a PHP application
README 文档
README
Run Composer commands and execute Composer searches and queries within a PHP application. This library acts as a PHP wrapper for Composer commands, allowing package management through PHP, and uses a combination of Composer, the Packagist API and your own project lockfile to derive information about the packages installed or available.
You technically do not need Composer to be installed, as this library will bring in the Composer application as a dependency - however, you will need Composer to install this library itself.
Use case
This library was written initially to provide Composer usage through PHP for Winter CMS, to power its upgrade and plugin architecture. A portion of the Winter CMS user-base prefer web-based installation methods and prefer not to (or simply can't) use the command-line Composer application.
This library therefore leverages the power of Composer in maintaining dependencies and does so in a way that can be programatically controlled and presented in a friendlier format for these users.
Installation
Install via Composer:
composer require winter/packager
Usage
This library currently provides support for the following Composer commands:
installsearchshowupdaterequireremoveversion(--version)
You can create a Composer instance in your PHP script and run these commands like so, defining a working directory which contains a composer.json file, and a home directory in which cached packages are stored.
<?php use Winter\Packager\Composer; $composer = new Composer(); $composer ->setWorkDir('/home/me/project/') ->setHomeDir('/tmp/composer'); // Get the Composer version $version = $composer->version(); // Run an install or update on the entire project, including dev dependencies $install = $composer->install(); $update = $composer->update(); // Install project without dev dependencies $install = $composer->install(false); // Show installed packages $show = $composer->show(); // Search packages $results =
Documentation on each command will be forthcoming soon.
Limitations
- Composer uses
symfony/processunder the hood for various actions. Most shared hosts will not allow this work, by blocking either theproc_*functions or thepcntlextension. If this is the case for your host, you will be unable to use scripts or some plugins.
Security Implications
Note that this library does introduce some security implications which you may need to consider before using.
- If this library is used in a web-based environment, you must make the vendor folder and files writable for the user running your web server. You should not make your vendor folder web-accessible, otherwise this will become an easy vector for an attack.
- Allowing scripts to run within Composer may grant the script access to your web environment or outlying PHP application. You should not run scripts unless you absolutely trust your dependencies.
Special thanks
- The Composer team
- User "Endel" from Stack Overflow, for this answer which served as the inspiration for this library.
winter/packager 适用场景与选型建议
winter/packager 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.13k 次下载、GitHub Stars 达 9, 最近一次更新时间为 2021 年 10 月 12 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「composer」 「packager」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 winter/packager 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 winter/packager 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 winter/packager 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A simple debian packager for PHP applications
Shaka PHP is a library that uses Shaka Packager for DASH and HLS packaging and encryption, supporting Common Encryption for Widevine and other DRM Systems.
This composer plugin enables installation of GravityForms WordPress plugin and its addons.
Simple ASCII output of array data
Generate and manage packages for sebastienheyd/boilerplate
统计信息
- 总下载量: 1.13k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-10-12