tahsinyuksel/ty-packagist

使用 Composer psr-4 标准的 PHP 基础 Packagist 示例

dev-master 2016-09-28 12:26 UTC

This package is not auto-updated.

Last update: 2024-09-18 19:35:39 UTC


README

我们将逐步展示如何使用 Composer 创建 PHP 包。

目录结构

TyPackagist

TyPackagist/src

TyPackagist/src/Hello.php

TyPackagist/composer.json

TyPackagist/index.php

步骤 1

首先,我们需要创建一个目录。例如,我的包名为 TyPackagist。创建一个以该名称命名的目录,这将是包的根目录。

根目录名称: "TyPackagist"

步骤 2

首先,我们需要创建 composer.json 文件。这可以定义我们的包。我们在这里提供有关包的所有信息,并完成定义。

在目录中,可以在终端中输入 "composer install"。这样,Composer 会帮助我们创建 composer.json 文件。然后,我们可以用编辑器打开该文件进行编辑。

$ composer install

或者,您可以手动创建 composer.json 文件,并用编辑器编辑或创建其内容。

{
    "name": "tahsinyuksel/TyPackagist",
    "description": "php base packagist example with composer psr-4",
    "license": "MIT",
    "authors": [
        {
            "name": "tahsn yüksel",
            "email": "info@tahsinyuksel.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.3.0"
    },
    "autoload": {
        "psr-4": {
            "TyPackagist\\": "src/"
        }
    }
}

name: 发布者 / 包名

authors: 作者

require: 我们在这里指定该包的需求。例如:PHP 5.3.0 版本及以上。

autoload: 通过使用 psr-4 标准的 namespace 来定义文件,并确保它们自动加载。这是其中的亮点之一。

步骤 3

在 src 目录中,我们可以创建属于我们的包的文件。

包名/src

例如:TyPackagist/src

创建一个名为 Hello.php 的文件。

注意:这里的重要点是 namespace 的定义。我们将把包名作为 namespace 放在页面的最上方。

<?php 

namespace TyPackagist;

class Hello
{
    public static function world()
    {
        return 'Hello World, Composer Psr-4!';
    }
}

步骤 4

现在,我们可以在根目录中创建一个 index.php 文件,以测试 psr-4 autoloader。为此,我们需要确保包含由 Composer 创建的 autoloader.php 文件。现在,Composer 会自动识别我们用 namespace 指定的文件,并为我们 include 它们。

在根目录中创建 index.php 文件。index.php

<?php
// require composer autoload
require_once __DIR__ . '/vendor/autoload.php';

// hello class
use TyPackagist\Hello;

// Runs all the files under the folder (src)
echo Hello::world();

步骤 5

Packagist 定义

https://packagist.org.cn

需要 Packagist 账户。如果您已经有了账户,或者创建了一个账户后,我们可以通过 "Submit a Package" 提交我们的包的源(如 GitHub、Bitbucket 等)。

在此阶段,将对源进行验证。如果成功,则包可以通过 Packagist 通过 Composer 进行安装。

到此结束。