阿斯伯格综合征(Asperger syndrome,简称AS)是广泛性发展障碍(PDD)中的一种综合征,属于孤独症谱系障碍(ASD)。其重要特征是社交与非言语交际障碍,同时伴随着兴趣狭隘及重复特定行为,但相较于其他孤独症谱系障碍,仍相对保有语言及认知发展。患者经常出现肢体笨拙和语言表达方式异常等状况,偶尔会发出怪声音,但并不作为诊断依据。其症状一般在两岁前出现,并伴随患者终生。
一、基础
NUM | TITLE | EDITOR(S) / MAINTAINERS | STATUS |
---|---|---|---|
0 | Autoloading Standard | Deprecated | |
1 | Basic Coding Standard | vacant | Accepted |
2 | Coding Style Guide | Deprecated | |
3 | Logger Interface | Jordi Boggiano | Accepted |
4 | Autoloading Standard | vacant | Accepted |
5 | PHPDoc Standard | Chuck Burgess | Draft |
6 | Caching Interface | Larry Garfield | Accepted |
7 | HTTP Message Interface | Matthew Weier O’Phinney | Accepted |
8 | Huggable Interface | Larry Garfield | Abandoned |
9 | Security Advisories | Michael Hess | Abandoned |
10 | Security Reporting Process | Michael Hess | Abandoned |
11 | Container Interface | Matthieu Napoli, David Négrier | Accepted |
12 | Extended Coding Style Guide | Korvin Szanto | Accepted |
13 | Hypermedia Links | Larry Garfield | Accepted |
14 | Event Dispatcher | Larry Garfield | Accepted |
15 | HTTP Handlers | Woody Gilk | Accepted |
16 | Simple Cache | Paul Dragoonis | Accepted |
17 | HTTP Factories | Woody Gilk | Accepted |
18 | HTTP Client | Tobias Nyholm | Accepted |
19 | PHPDoc tags | Chuck Burgess | Draft |
20 | Clock | Chris Seufert | Accepted |
21 | Internationalization | Navarr Barnier | Draft |
22 | Application Tracing | Adam Allport | Draft |
注意事项
- 命名空间: 使用命名空间来组织你的类和功能。
- 自动加载: 使用Composer的自动加载机制或者在你的SDK中实现自己的自动加载器。
- 版本控制: 确保你的SDK遵循语义化版本控制(Semantic Versioning)。
- 单元测试: 编写单元测试来确保你的SDK的功能按预期工作,并且有很高的代码覆盖率。
- 文档化: 编写清晰的文档来说明如何安装SDK,如何使用API,以及可能遇到的常见问题。
- 错误处理: 优雅地处理错误和异常,向开发者清晰说明问题所在。
- 兼容性: 确保你的SDK能在不同版本的PHP上运行,并且兼容主流的框架。
- 安全性: 确保你的SDK在处理敏感数据时采取了安全措施,比如数据加密、输入验证等。
- 性能: 优化SDK以提高性能,减少延迟。
- 更新维护: 保持SDK的更新和维护,修复已知问题,添加新功能。
几个方面
- 功能设计:在开发SDK之前,首先需要明确SDK所需实现的功能。这可以通过与开发者或产品经理的讨论来确定。确保在设计SDK功能时,考虑到了开发者的实际需求和常见使用场景。
- 代码结构:良好的代码结构可以提高SDK的可维护性和易用性。建议采用面向对象的方式设计SDK,将不同的功能模块划分为独立的类。这样可以使代码更加清晰、可扩展性更高。
- 接口设计:SDK的接口设计应该简单明了,易于使用。在设计方法和参数时,需考虑到开发者的常见操作。建议提供必要的输入参数,并在接口注释中清晰地说明参数的含义和使用方式。
- 错误处理:良好的错误处理是开发SDK时必不可少的。建议设计适合的错误码和错误信息,以便开发者能够明确地知道发生了什么问题,并可以针对错误进行相应的处理。
- 文档和示例代码:提供详细的文档和示例代码可以帮助开发者更快地上手使用SDK。文档应包括SDK的安装、配置和使用说明,以及常见问题的解答。示例代码应涵盖SDK的主要功能,并包含详细的注释。
- 单元测试:在开发SDK的过程中,进行单元测试是必不可少的。通过编写测试用例,可以确保SDK的各个功能模块能够正常工作,并及时发现和修复潜在的问题。
二、开干
- 注册github账号,配置ssh-key等,此处不再赘述
- 登录github,新建一个仓库,如my-first-packagist
- 回到本机,克隆刚新建的仓库
git clone https://github.com/liusirdotnet/my-first-packagist.git
- 切换到仓库目录
cd my-first-packagist
- 初始化composer.json文件
composer init
1 | $ composer init |
- 编辑composer.json文件,添加自动加载
1 | "autoload": { |
- 新建
src/Test.php
1 | <?php |
- 生成vendor目录
composer install
- 跟src同级目录新建demo.php
1 | require './vendor/autoload.php'; |
- 提交并推送到github
1 | git add . |
发布到packagist
- 注册packagist
- 点击submit
- 将github仓库输入到输入框,Check && Submit
切换到另一个项目目录,安装刚发布的包
composer require liusirdotnet/my-first-packagist
,报错
1 | [InvalidArgumentException] |
- 打一个tag并推送到github
1 | git tag -a v1.0 -m 'first tag' |
回到github后台并进入当前仓库,点击
release
选项,点击Draft a new release
按钮,勾选下面的This is a pre-release
,最后点击Publish release
按钮切换到另一个项目目录,安装刚发布的包
composer require liusirdotnet/my-first-packagist
新建index.php
1 | <?php |
- 设置更新composer包自动更新packagist【github停止此服务了】
- 在packagist后台获取
API Token
- 进入当前仓库,点击settings,点击add service,选择packagist,输入表单后添加add service按钮,最后点击Update service
- 在packagist后台获取
Note: GitHub Services have been deprecated. Please contact your integrator for more information on how to migrate or replace a service with webhooks or GitHub Apps.