详解Composer+Git怎么创建 “服务类库”

1. 准备工作:Git仓库和Composer

在创建一个“服务类库”之前,我们需要先准备好两个基础工具:Git仓库和Composer包管理器。

1.1 Git仓库

首先,我们需要在Github或者其他Git托管平台上创建一个新的仓库,用于存放我们的服务类库代码。假设我们已经创建好了一个名为“my-service”的仓库。

1.2 Composer

Composer是PHP的一个包管理器,可以帮助我们轻松地安装PHP依赖包。在本文中,我们将使用Composer来管理我们服务类库的依赖。

首先,我们需要在本地安装Composer。请参考官方文档进行安装。

安装完成后,在命令行上输入以下命令可以查看Composer是否安装成功:

$ composer --version

Composer version 2.1.6 2021-08-19 17:11:08

2. 创建服务类库

接下来,我们将开始创建我们的服务类库。首先,我们需要创建一个新的文件夹,用于存放我们的服务类库代码:

$ mkdir my-service

$ cd my-service

接下来,我们将使用Composer初始化新的PHP项目,并在其中定义我们的服务类库。

$ composer init --type=library

上面的命令将会问你一系列问题,如“你的包的名称是什么”、“当前版本是什么”、“你的包的描述是什么”等等。你需要根据自己的需求来选择合适的答案。

完成初始化之后,我们需要编辑我们的composer.json文件,指定我们的服务类库的命名空间和依赖项。

{

"name": "your-vendor/my-service",

"description": "My Service Library",

"type": "library",

"license": "MIT",

"authors": [

{

"name": "Your Name",

"email": "youremail@example.com"

}

],

"autoload": {

"psr-4": {

"MyService\\": "src/"

}

},

"require": {

"php": "^7.4|^8.0",

"guzzlehttp/guzzle": "^7.0"

},

"require-dev": {

"phpunit/phpunit": "^9.5"

}

}

上面的composer.json文件指定了我们服务类库的命名空间为MyService\\,并且指定了我们的依赖项为guzzlehttp/guzzlephpunit/phpunit

我们需要把我们的命名空间目录src/MyService/和文件src/MyService/MyClass.php创建出来:

$ mkdir -p src/MyService/

$ touch src/MyService/MyClass.php

3. 编写服务类库代码

现在,我们开始编写我们的服务类库代码。在src/MyService/MyClass.php中,我们可以定义一个名为MyClass的类:


namespace MyService;

class MyClass

{

public function helloWorld()

{

echo "Hello, World!";

}

}

上面的代码定义了一个名字为MyClass的类,其中包含了一个名为helloWorld的方法。

4. 提交代码到Git仓库

现在我们已经完成了服务类库的代码,接下来,我们需要将其提交到我们创建的Github仓库中。假设我们的仓库地址为https://github.com/your-vendor/my-service.git

$ git init

$ git add .

$ git commit -m "Initial commit"

$ git remote add origin https://github.com/your-vendor/my-service.git

$ git push -u origin master

5. 使用服务类库

现在我们已经创建了自己的服务类库,并将其提交到了Github仓库中。使用方法也很简单。假设我们有一个使用我们服务类库的应用程序。我们可以使用Composer通过以下命令安装:

$ composer require your-vendor/my-service

然后,我们可以在我们的应用程序代码中使用我们的服务类库,例如:


require_once 'vendor/autoload.php';

$myClass = new MyService\MyClass();

$myClass->helloWorld();

上面的代码将会输出“Hello, World!”。

总结

在本篇文章中,我们学习了如何使用Composer和Git来创建自己的服务类库。通过本文中的步骤,你可以轻松地创建自己的PHP服务类库,并且将其分享给其他开发者。