首先创建符合PSR-4规范的Composer包需正确设置文件结构与composer.json配置。1. 建立项目目录如my-string-utils,包含src、tests、composer.json等;2. 在src/StringUtils.php中定义命名空间MyVendorStringUtils并编写类;3. 配置composer.json的autoload.psr-4项为"MyVendorStringUtils": "src/",确保命名空间与路径映射一致;4. 执行composer install生成自动加载文件;5. 通过example.php引入vendor/autoload.php测试类加载;6. 可选发布至Packagist供他人使用。只要三者一致即可实现兼容。

要创建一个符合PSR-4规范的Composer包,关键在于正确组织文件结构、配置composer.json并遵循PHP自动加载标准。下面一步步说明如何从零开始构建一个规范的Composer包。
PSR-4是PHP框架互操作性小组制定的自动加载标准,它定义了类文件如何根据命名空间映射到目录结构。相比PSR-0,PSR-4更简洁高效,仅支持命名空间前缀映射,不包含下划线转目录等旧规则。
核心原则是:命名空间前缀对应项目中的一个根目录,类文件放在与子命名空间对应的子目录中,文件名必须与类名一致(驼峰命名 + .php后缀)。
假设我们要创建一个名为 my-vendor/string-utils 的包,提供一些字符串处理工具。先创建基本目录:
立即学习“PHP免费学习笔记(深入)”;
/my-string-utils其中:
在 src/StringUtils.php 中定义类:
<?php
namespace MyVendorStringUtils;
class StringUtils
{
public static function capitalize(string $str): string
{
return ucfirst(strtolower($str));
}
}
这个类属于命名空间 MyVendorStringUtils,所以它应位于 src/ 目录下,并且路径与命名空间匹配(即没有额外子目录,因为最后一级就是类名)。
运行 composer init 初始化配置,或手动创建 composer.json 文件:
{
"name": "my-vendor/string-utils",
"type": "library",
"description": "A simple string utility library",
"license": "MIT",
"authors": [
{
"name": "Your Name",
"email": "you@example.com"
}
],
"require": {},
"autoload": {
"psr-4": {
"MyVendor\StringUtils\": "src/"
}
},
"minimum-stability": "stable"
}
注意:
安装依赖并生成自动加载文件:
composer install
然后创建一个测试脚本 example.php:
<?php
require_once 'vendor/autoload.php';
use MyVendorStringUtilsStringUtils;
echo StringUtils::capitalize('hello world'); // 输出: Hello world
运行 php example.php,如果输出正确,说明PSR-4配置成功。
将代码推送到GitHub/GitLab等平台,然后访问 Packagist 提交你的包。之后其他开发者就可以通过:
composer require my-vendor/string-utils
来使用你的库。
基本上就这些。只要命名空间、目录结构和composer.json配置三者一致,就能轻松实现PSR-4兼容。保持结构清晰,未来扩展也更容易。
以上就是怎样创建一个符合PSR-4规范的Composer包_PHP标准与Composer包结构设计教程的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号