编写PHP库的指南?

5

我学习了设计模式,并希望将其用于编写一个开源库(而非应用程序)。

但我以前从未编写过库,也不知道应该在哪里包含文件,是否应该有一个引导文件来加载所有内容,或者每个类是否应该加载它们所依赖的类等。

有没有关于从头开始编写PHP库的教程?

谢谢


3
这不是一个具体的答案,而是一条普遍的建议:一个好的起点是去查找其他开源库。如果你找到了一个有声望的项目,你很可能会有一个良好的样例来建立你的开源库。祝你好运! - Yuval Karmi
5个回答

4
我不能为您提供教程,但最简单的拥有即插即用库的方法是每个类文件对应一个类,这样用户就可以使用__autoload,并且只需实例化您的类而无需更改其现有代码。这种方式对大多数开发人员最为可接受。
这种方法仍然允许您创建一个“独立的”包含文件,其中包含所有其他类文件。
其他选项包括将其制作成PEAR包或要求人们将您的文件放置在包含路径中。但是,在我看来,对于那些除了自己的public_html文件夹(例如共享主机)之外没有其他访问权限的人来说,这并不是最佳选择。

我猜你是指PEAR,而不是PERL。 - John Flatness

2
你应该看一下Solarphp框架。它解决了像自动加载、依赖注入等标准问题,就像其他框架一样... 我从中学到了很多关于编写良好的php代码的知识。如果你有问题,请加入freenode的#solar-talk频道。

1
我会向你推荐Zend Framework。你可以将其作为整个框架使用,也可以根据需要选择特定的组件。是的,我认为对于一个库来说,自动加载是关键。

1
如果您的库对字符串进行任何检查或操作,请考虑它们是字节字符串还是文本字符字符串,并且如果是后者,请仅使用多字节字符串函数,而不是普通的PHP字符串函数。否则,您的库将无法供需要处理Unicode文本的人使用。

-1

目前有很多 PHP 框架可供选择,这些框架可以帮助你构建库文件。但是,我总是更喜欢采用 MVC 模型,其中包含更多的挂钩函数和全球通用的格式。以下是一些示例...

# o     = 对象
# r     = 返回值
# a     = 数组
# e     = 元素
# g = 全局声明
# hook  = 可用于与其他函数挂钩的函数
# call  = 可用于从客户端向服务器系统发起调用的函数
# sync  = 可用于同步的函数

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接