phpkg 让 PHP 摆脱 Composer 依赖地狱

phpkg 让 PHP 摆脱 Composer 依赖地狱

Composer 挺好,但 PHP 还能更强

写 PHP 的都知道,Composer 用起来很顺手:composer requirevendor/、自动加载——这些操作闭着眼都能做。这么多年来,它确实是 PHP 依赖管理的标杆。但实话说,它也有不少毛病。你有没有被巨大的 vendor/ 目录搞得心烦?被只能加载类的限制憋屈过?或者纳闷为什么 PHPStan 这种工具每个项目都得装一遍?

我也被这些问题折磨过。PHP 确实很灵活——做 Web、API、脚本都行——但总感觉被框住了。为什么 PHP 只能做 Web,而 Python 随便就能写出各种命令行工具?带着这些疑问,我发现了 phpkg,一个正在改变 PHP 游戏规则的新包管理器。先说结论:它不是 Composer 的山寨版——而是对 PHP 开发方式的全新思考。

原文链接 phpkg 让 PHP 摆脱 Composer 依赖地狱

核心问题:工具不该当依赖

举个例子:你手头有三个项目。每个都要用 PHPStan 检查代码,PHPUnit 跑测试,可能还有几个自己写的脚本。用 Composer 的话,就得搞三个 vendor/ 目录,下载三遍,装三套依赖——团队每个人都这样,全世界每个项目都这样。这不光是硬盘空间的事,还有网络带宽、下载时间,全球服务器的负担也跟着增加。这不是有点过分吗?

关键是,这些东西根本不是你应用的代码——它们只是工具。PHPStan 又不会部署到生产环境,为什么每个 composer.json 都要写一遍?这就好比每个房间都放一把锤子,而不是工具箱里放一把就够了。我们习惯了这种浪费,但完全没必要。

phpkg 登场

phpkg 就是来解决这些问题的。它是个轻量级、基于 Git 的包管理器,砍掉了那些没用的东西,把主动权还给开发者。为什么大家开始关注它?看看这些特点:

支持函数,不只是类

Composer 的 PSR-4 自动加载确实不错——但只对类有用。想写个简单函数?只能包装成类。phpkg 不这样:它直接支持命名空间函数的自动加载。你写个 App\Utils\log($msg) 函数,不用包装成类,phpkg build 就能搞定。这才是 PHP 函数式编程该有的样子。

/* by 01022.hk - online tools website : 01022.hk/zh/tiffcompression.html */
namespace App\Utils;

function log($msg) {
    echo $msg;
}
// 不需要类——phpkg 处理它

只要 Git 就够了

不需要什么中央仓库,也不用 Packagist 做中介——直接用 Git URL 就行。添加包就这么简单:

/* by 01022.hk - online tools website : 01022.hk/zh/tiffcompression.html */
phpkg add https://github.com/php-repos/test-runner.git

包会被克隆到 Packages/ 目录,版本信息记录在 phpkg.config.json 里,马上就能用。速度快,很灵活,私有仓库或者最新分支都没问题。

独立运行 PHP 程序

这里就厉害了。phpkg runphpkg serve 可以让你不用建项目就直接运行包。想在命令行看天气?

phpkg run https://github.com/php-repos/weather.git

想要个日常看板在浏览器里显示——不用搭服务器?

phpkg serve https://github.com/php-repos/daily-routine.git

这些命令会自动下载、构建,然后在临时环境里运行包。不用 vendor/ 目录,不用 Web 服务器——就是 PHP 在干活。这下 PHP 终于像 Python 了:可以写工具、写小程序、写一次性脚本。

干净利落

phpkg 不搞 vendor/ 那套乱七八糟的东西。它的构建命令会解析命名空间——函数、类、常量——只加载需要的部分。移动了文件?没关系——phpkg watch 会实时重新构建。这才是不浪费时间的工作方式。

这玩意儿有啥用

PHP 被当成 Web 专用语言太久了。有了 phpkg,终于能突破这个限制。比如:

PHPStan 装一次,所有项目都能用:

phpkg run https://github.com/phpstan/phpstan.git phpstan analyze ./my-app

给团队写个小工具,发个 Git 链接就行——不用搭环境。

想要个个人看板(币价、新闻、待办)?一行命令搞定。

这不光是图方便——是真的提高效率。下载少了,重复少了,复杂度也降了。

个人体验

之前做 daily-routine 这个项目时感受很深。想做个个人看板——天气、币价、新闻——每天看一眼。用 Composer 的话,得搭个 Web 项目,还要配置服务器。用 phpkg serve 就简单了:

phpkg serve https://github.com/php-repos/daily-routine.git

打开 localhost:8000 就能用。不用域名,不用 Nginx——就是 PHP 在干活。那时候才明白:phpkg 不是要替换 Composer,而是让 PHP 能做更多事。

体验一下

先装 phpkg:

bash -c "$(curl -fsSL https://raw.github.com/php-repos/phpkg-installation/master/install.sh)"

跑个 Chuck Norris 笑话生成器:

phpkg run https://github.com/php-repos/chuck-norris.git

或者跑个日常看板:

phpkg serve https://github.com/php-repos/daily-routine.git

不用建项目,不用写 composer.json——直接出结果。

详细文档在 phpkg.com,可以去看看。

总结

phpkg 不是要替换 Composer,而是给 PHP 更多可能性。让 PHP 更简洁,更灵活,更好用。虽然还在早期阶段(Windows 的 serve 功能还在开发),但方向很明确:让 PHP 成为工具开发者的好伙伴。

PHP 开发者们,现在可以试试用 PHP 做更多事了。CLI 工具?本地应用?小脚本?都可以试试。

下载前可以先看下教程 https://pan.quark.cn/s/16a53f4bd595 小天才电话手表刷机教程 — 基础篇 我们将为您简单的介绍小天才电话手表新机型的简单刷机以及玩法,如adb工具的使用,magisk的刷入等等。 我们会确保您看完此教程后能够对Android系统有一个最基本的认识,以及能够成功通过magisk root您的手表,并安装您需要的第三方软件。 ADB Android Debug Bridge,简称,在android developer的adb文档中是这么描述它的: 是一种多功能命令行工具,可让您与设备进行通信。 该命令有助于各种设备操作,例如安装和调试应用程序。 提供对 Unix shell 的访问,您可以使用它在设备上运行各种命令。 它是一个客户端-服务器程序。 这听起来有些难以理解,因为您也没有必要去理解它,如果您对本文中的任何关键名词产生疑惑或兴趣,您都可以在搜索引擎中去搜索它,当然,我们会对其进行简单的解释:是一款在命令行中运行的,用于对Android设备进行调试的工具,并拥有比一般用户以及程序更高的权限,所以,我们可以使用它对Android设备进行最基本的调试操作。 而在小天才电话手表上启用它,您只需要这么做: - 打开拨号盘; - 输入; - 点按打开adb调试选项。 其次是电脑上的Android SDK Platform-Tools的安装,此工具是 Android SDK 的组件。 它包括与 Android 平台交互的工具,主要由和构成,如果您接触过Android开发,必然会使用到它,因为它包含在Android Studio等IDE中,当然,您可以独立下载,在下方选择对应的版本即可: - Download SDK Platform...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值