【发布时间】:2009-06-19 03:34:07
【问题描述】:
在构建我的一些 PHP 应用程序时,可以使用 PEAR/PECL 模块对很多功能进行编码,但是,有些使用它的人可能无法安装东西,这让我很困惑。
我是否应该放弃一些用户来使用 PEAR/PECL 来实现功能,这将使我能够比我编写自己的功能更快地编写系统代码,但意味着它将排除某些人使用它。
【问题讨论】:
在构建我的一些 PHP 应用程序时,可以使用 PEAR/PECL 模块对很多功能进行编码,但是,有些使用它的人可能无法安装东西,这让我很困惑。
我是否应该放弃一些用户来使用 PEAR/PECL 来实现功能,这将使我能够比我编写自己的功能更快地编写系统代码,但意味着它将排除某些人使用它。
【问题讨论】:
这部分取决于您有多少时间,以及项目的目的。如果您只是想制作一些有用的东西,请使用 PEAR/PECL。如果您正在努力学习成为一名更好的程序员,并且您有时间,那么我建议您努力编写自己的版本。一旦您了解了要替换的内容的内部结构,您可能希望切换到 PEAR/PECL 版本,这样您就不会浪费时间重新实现已经实现的内容...
...但另一方面,现有工具并不总是能完全满足您的需求,而且有时会产生对您没有任何好处的开销。这就是 Unix 命令行工具如此之小且用途狭窄的原因。没有人真正需要一个版本的“ls”,除了“ls”目前可以做的事情之外,它还可以做任何事情。任何 PEAR 库的版本都将由您编写,完全符合您的需要。这需要仔细考虑......
...但是在紧握的手上,不要花太多时间去想它。花五分钟,做出决定,然后开始编码。即使你做出了错误的决定,你至少也会得到更多的编码练习。 :-)
【讨论】:
通过使用 pear 库进行开发来节省开发时间,并提供捆绑在您分发的内容中的库(尽管您必须确保它符合许可要求)
我不会依赖安装的某些 PECL 扩展,除非您正在做一些与某个特别相关的事情(例如 XDebug 网络前端或其他东西),大多数安装将携带一组相当普通的扩展。
【讨论】:
我的建议是先假设 PEAR/PECL 模块,然后完成其余代码。然后,一旦您的大部分代码按照您想要的方式工作,您就可以评估返回并用您自己的代码逐段替换外部代码。另外,到那时您将更好地了解使用这些对您的用户群的影响。
【讨论】:
最初使用 PEAR/PECL 对其进行编码,如果有人要求使用非 PEAR/PECL 版本,请开始编写您自己的替代方案,然后使用这样的版本。
这样一来,最初的开发速度会更快,而且您可能会发现,一旦您开始发布应用程序,就没有人关心需要 3rd 方库了。
【讨论】:
使用 PEAR,但允许在项目中包含 PEAR 包。所有 PEAR 包都可以从http://pear.php.net/ 单独下载,可以放在任何地方。根据便利性和许可问题,您可以将所有必需的 PEAR 文件打包到您的项目中,或者告诉用户如何下载和“安装”它们。
【讨论】:
我最常做的是永远不会使用全局安装在服务器上的 PEAR。版本可以更改并影响您的应用程序。相反,我有一个配置文件(在我的情况下为 XML),其中列出了所有所需的包及其版本。安装程序连接到我的个人 FTP 存储库并在 $PROJECTBASE/lib/pear/ 本地下载和安装所有 PEAR 包。并且 PEAR 在本地而不是全局运行。您可能需要考虑的事情。
【讨论】:
使用 PEAR 没问题,如果用户没有对其 web 服务器的 root 访问权限,他们可以简单地从 pear.php.net 下载 PHP 文件并将其添加到他们的包含路径中。 PECL 解决起来有点棘手,因为没有 root 访问权限通常无法安装新模块。
【讨论】:
您需要小心,因为 pear 中的许多模块质量确实很低。
有些很棒,不要误会我的意思,但不要认为梨中的任何东西,由于是梨,就具有任何特定的品质。这意味着在决定使用 pear 模块之前,您至少需要浏览一下它的源代码,对于足够简单的任务,这可能比不使用 pear 需要更多时间。
但是,pecl 是不同的。扩展往往经过更好的审查和测试,否则它们会使 php 崩溃。
【讨论】:
【讨论】: