【问题标题】:PHP: Use Pecl/Pear, or build my own systems?PHP:使用 Pecl/Pear,还是构建我自己的系统?
【发布时间】:2009-06-19 03:34:07
【问题描述】:

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

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

【问题讨论】:

    标签: php pear pecl


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我肯定会使用 PEAR,但避免使用 PECL。并尽可能将它们嵌入到项目中。这最近烧毁了我们的开发团队,因为一个软件包升级错误破坏了我们为数十名客户提供的代码。
      • 事实上,如果我嵌入到我的应用程序中,我还必须关注并推出我正在嵌入的东西的安全更新,我不是特别喜欢
      • 这仍然是一个比必须自己保护它更好的前景,因为那时您需要设置渠道来报告安全性、关注它们、自己修复它们然后将它们推出 :)
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        这样一来,最初的开发速度会更快,而且您可能会发现,一旦您开始发布应用程序,就没有人关心需要 3rd 方库了。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                【解决方案8】:

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

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

                但是,pecl 是不同的。扩展往往经过更好的审查和测试,否则它们会使 php 崩溃。

                【讨论】:

                  【解决方案9】:

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

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2012-02-24
                    • 1970-01-01
                    • 2016-01-21
                    • 2018-01-07
                    • 2011-03-23
                    • 2010-10-07
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多