如何在PHP原生项目(非框架)中从零开始使用Composer?

发布时间 - 2026-01-02 00:00:00    点击率:
PHP原生项目使用Composer需三步:安装Composer(Windows用Setup.exe,macOS/Linux用curl命令)、初始化项目生成composer.json、通过composer require引入依赖并自动加载;还可配置files字段手动加载非PSR-4文件。

在PHP原生项目中从零开始使用Composer,核心是三步:安装Composer、初始化项目、声明并加载依赖。不需要框架,纯PHP也能高效管理类库和自动加载。

安装Composer(本地或全局)

Composer不是PHP内置工具,需单独安装:

  • Windows用户推荐下载Composer-Setup.exe,一键安装(会自动配置系统PATH)
  • macOS/Linux可运行命令:curl -sS https://getcomposer.org/installer | php,再把生成的composer.phar移到/usr/local/bin/composer使其全局可用
  • 验证是否成功:终端执行composer --version,看到版本号即表示就绪

初始化项目并生成composer.json

进入你的PHP项目根目录(比如/my-project),运行:

composer init

它会交互式引导你填写包名、描述、作者、依赖等。若想跳过提问,直接生成最小配置,可运行:

composer init --name="my-project" --description="A simple PHP project" --type="project" --require="php:>=7.4"

完成后,项目根目录会出现composer.json——这是整个依赖管理的配置中心。

引入和使用第三方库(如monolog)

以日志库monolog/monolog为例,执行:

composer require monolog/monolog

Composer会做三件事:

  • 下载monolog及其依赖到vendor/目录
  • 更新composer.json中的require字段
  • 生成或更新vendor/autoload.php自动加载文件

之后在任意PHP脚本中,只需开头引入一次自动加载器:

require_once 'vendor/autoload.php';

接着就能直接使用类了,例如:

$logger = new Monolog\Logger('name');
$logger->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$logger->warning('Something went wrong!');

手动加载自己的PHP文件(非PSR-4)

Composer默认支持PSR-4自动加载,但原生项目常有扁平结构(如functions.phpconfig.php)。这时可在composer.json中用files字段声明:

"autoload": {
  "files": ["functions.php", "config.php"]
}

然后运行composer dump-autoload重新生成映射。之后这些文件会在require_once 'vendor/autoload.php'时自动载入,无需手动include


# php  # linux  # js  # json  # composer  # windows  # app  # 工具  # mac  # curl  # macos  # win  # include  # require 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 在线制作视频网站免费,都有哪些好的动漫网站?  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  在线教育网站制作平台,山西立德教育官网?  Laravel如何使用Livewire构建动态组件?(入门代码)  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Laravel Docker环境搭建教程_Laravel Sail使用指南  如何彻底卸载建站之星软件?  网站制作免费,什么网站能看正片电影?  Swift中switch语句区间和元组模式匹配  晋江文学城电脑版官网 晋江文学城网页版直接进入  深圳网站制作平台,深圳市做网站好的公司有哪些?  中山网站推广排名,中山信息港登录入口?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何在云主机上快速搭建多站点网站?  EditPlus中的正则表达式 实战(2)  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  如何在腾讯云服务器上快速搭建个人网站?  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  Python结构化数据采集_字段抽取解析【教程】  如何为不同团队 ID 动态生成多个非值班状态按钮  PythonWeb开发入门教程_Flask快速构建Web应用  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  LinuxCD持续部署教程_自动发布与回滚机制  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  原生JS实现图片轮播切换效果  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何在建站主机中优化服务器配置?  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  深圳网站制作培训,深圳哪些招聘网站比较好?  如何为不同团队 ID 动态生成多个“认领值班”按钮  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何正确选择百度移动适配建站域名?