0

在构建我的一些 PHP 应用程序时,可以使用 PEAR/PECL 模块对很多功能进行编码,但是,有些使用它的人可能无法安装东西,这让我很困惑。

我是否应该放弃一些用户使用 PEAR/PECL 来实现功能,这些功能将使我能够比我编写自己的功能更快地编写系统代码,但意味着它将排除某些人使用它。

4

9 回答 9

5

通过使用 pear 库进行开发来节省开发时间,并提供捆绑在您分发的内容中的库(尽管您必须确保它符合许可要求)

我不会依赖安装的某些 PECL 扩展,除非你正在做一些特别相关的事情(比如 XDebug 网络前端或其他东西),大多数安装将携带一组相当普通的扩展。

于 2008-09-23T15:02:27.303 回答
5

这部分取决于你有多少时间,以及项目的目的。如果您只是想制作一些有用的东西,请使用 PEAR/PECL。如果您正在努力学习成为一名更好的程序员,并且您有时间,那么我建议您努力编写自己的版本。一旦您了解了您要替换的任何内容的内部结构,您可能想要切换到 PEAR/PECL 版本,这样您就不会浪费时间重新实现已经实现的内容......

...但另一方面,预先存在的工具并不总是能完全满足您的需求,有时会产生对您没有任何好处的开销。这就是 Unix 命令行工具如此之小且用途狭窄的原因。没有人真正需要一个版本的“ls”,除了“ls”目前可以做的事情之外,它还可以做任何事情。任何 PEAR 库的版本都将由您编写,完全符合您的需要。这需要仔细考虑...

...但是在紧握的手上,不要花太多时间去想它。花五分钟,做出决定,然后开始编码。即使你做出了错误的决定,你至少也会得到更多的编码练习。:-)

于 2008-09-23T15:09:14.057 回答
1

我的建议是先假设 PEAR/PECL 模块,然后完成其余代码。然后,一旦您的大部分代码按照您想要的方式工作,您就可以评估返回并用您自己的代码逐段替换外部代码。另外,到那时您将更好地了解使用这些对您的用户群的影响。

于 2008-09-23T14:55:06.090 回答
1

最初使用 PEAR/PECL 对其进行编码,如果您让人们要求使用非 PEAR/PECL 版本,请开始编写您自己的替代方案,然后为这样的版本编写代码。

有了这个,最初的开发会更快,你可能会发现一旦你开始发布应用程序就没有人关心需要 3rd 方库。

于 2008-09-23T14:55:18.320 回答
1

使用 PEAR,但允许在项目中包含 PEAR 包。所有 PEAR 包都可以从http://pear.php.net/单独下载,并且可以放在任何地方。根据便利性和许可问题,您可以将所有必需的 PEAR 文件打包到您的项目中,或者告诉用户如何下载和“安装”它们。

于 2008-09-23T15:20:42.143 回答
0

我最常做的是永远不会使用全局安装在服务器上的 PEAR。版本可以更改并影响您的应用程序。相反,我有一个配置文件(在我的情况下为 XML),其中列出了所有所需的包及其版本。安装程序连接到我的个人 FTP 存储库并在 $PROJECTBASE/lib/pear/ 本地下载和安装所有 PEAR 包。并且 PEAR 在本地而不是全局运行。您可能需要考虑的事情。

于 2008-09-23T14:57:07.410 回答
0

使用 PEAR 没有问题,如果用户没有对其 web 服务器的 root 访问权限,他们可以简单地从 pear.php.net 下载 PHP 文件并将其添加到他们的包含路径。PECL 的工作有点棘手,因为没有 root 访问权限通常无法安装新模块。

于 2008-09-23T14:59:33.317 回答
0

您需要注意,因为 pear 中的许多模块质量确实很低。

有些很棒,不要误会我的意思,但不要认为梨中的任何东西,由于是梨,具有任何特定的品质。这意味着在决定使用 pear 模块之前,您至少需要浏览它的源代码,对于足够简单的任务,这可能比不使用 pear 需要更多时间。

然而,pecl 是不同的。扩展往往会得到更好的审查和测试,否则它们会使 php 崩溃。

于 2008-09-23T15:04:06.583 回答
0

重申已经说过的大部分内容:http: //www.codinghorror.com/blog/archives/001145.html

于 2009-06-18T19:34:07.143 回答