命令行执行 composer init
步骤:
# 1. 输入项目命名空间
# 注意<vendor>/<name> 必须要符合 [a-z0-9_.-]+/[a-z0-9_.-]+
Package name (<vendor>/<name>) [root/test_composer]:yourname/projectname
# 2. 项目描述
Description []:这是一个测试composer init 项目
# 3. 输入作者信息,直接回车可能出现如下提示,有的系统可以直接回车,具体为什么?这里不详细介绍
Invalid author string. Must be in the format: John Smith <john@example.com>
# 3.1. 注意必须要符合 John Smith <john@example.com>
Author [, n to skip]: John Smith <john@example.com>
# 4. 输入最低稳定版本,stable, RC, beta, alpha, dev
Minimum Stability []:dev
# 5. 输入项目类型
Package Type (e.g. library, project, metapackage, composer-plugin) []:library
# 6. 输入授权类型
License []:
Define your dependencies.
# 7. 输入依赖信息
Would you like to define your dependencies (require) interactively [yes]?
# 7.1. 如果需要依赖,则输入要安装的依赖
Search for a package:php
# 7.2. 输入版本号
Enter the version constraint to require (or leave blank to use the latest version): >=5.4.0
# 如需多个依赖,则重复以上两个步骤(7.1/7.2)
Search for a package:
# 8. 是否需要require-dev,
Would you like to define your dev dependencies (require-dev) interactively [yes]?
{
"name": "dduan/test_compser",
"description": "这是一个测试composer init 项目",
"type": "library",
"require": {
"php": ">=5.4.0"
},
"authors": [
{
"name": "John Smith",
"email": "john@example.com"
}
],
"minimum-stability": "dev"
}
# 9. 是否生成composer.json
Do you confirm generation [yes]?
# 现在安装依赖项吗
Would you like to install dependencies now [yes]?
命令行配置完成后,会在当前目录生成 composer.json文件,然后执行composer install
执行成功后,会生成一个 vendor 目录和相关文件,composer初始化就结束了,接下来就要创建自己项目相关的文件夹和文件
这里的src、test 文件夹和 test.php 文件 是自己创建的,整体目录结构是
- src
- Index.php
- test
- vendor
- test.php
- composer.json
这里要编辑一下 composer.json文件 添加 自动加载的路径
{
"name": "swoole/io",
"description": "",
"type": "library",
"authors": [
{
"name": "",
"email": ""
}
],
"autoload":{
"psr-4":{
"Swoole\\Io\\":"./src/" // 自动加载的路径
}
},
"minimum-stability": "dev",
"require": {}
}
自动加载的类文件名要与类名一致,Index.php:
<?php
namespace Swoole\Io;
/**
*
*/
class Index
{
public function index()
{
echo "测试";
}
}
入口文件 引入vendor/autoload.php:
<?php
require __DIR__.'/vendor/autoload.php';
use Swoole\Io\Index;
(new Index)->index();