What are differences between PECL and PEAR?

PhpPearPecl

Php Problem Overview


I can see that GD library is for images. But I can't see differences between PECL and PEAR. Both have authentication. What are the main differences between two? Why don't they combine them?

Php Solutions


Solution 1 - Php

PECL stands for PHP Extension Community Library, it has extensions written in C, that can be loaded into PHP to provide additional functionality. You need to have administrator rights, a C compiler and associated toolchain to install those extensions.

PEAR is PHP Extension and Application Repository, it has libraries and code written IN php. Those you can simply download, install and include in your code.

So, yes they are similar, but yet so different :)

Solution 2 - Php

PECL is a repository of C extensions for PHP. Those extensions are usually installed via the pecl command, which is an alias for pear, with the default channel/repository set to pecl.php.net.

PEAR is multiple things:

  1. The package installer (pear command) that is able to install packages from different channels (repositories), including pecl.php.net. Many consider composer the successor of the pear installer.
  2. The package repository http://pear.php.net/packages.php with ~600 libraries. Many of them are composer-installable.
  3. A PHP coding standard that is available with PHP_CodeSniffer.

Solution 3 - Php

pear is a php classes written in php Whereas pecl is extensions which not written in php and need compiling .

Solution 4 - Php

PEAR as-such is not a coding standard. Instead PEAR "follows" a set coding standard that is encouraged within the PHP Community. This is however not the only coding standard that PHP users can follow, the ZF, for eg. recommends a slightly different standard.

Solution 5 - Php

PEAR is also a coding standard ;-) php_codesniffer (install via $pear install php_codesniffer ) is a tool that will scan your code and hilight where it deviates from that or any other supported coding standard.

Solution 6 - Php

From my understanding, PHP has modules and frameworks, both being its libraries, external modules, called extensions, live in its PECL repository, while frameworks, called packages, live in its PEAR repository.

One can use PEAR packages within PHP code by simply sourcing the source code files, but PECL extensions should be installed on the system and enabled in configuration files to link to the interpreter.

Also, PEAR packages are written in PHP and are plain-text scripts, while PECL extensions are written in C/C++ and are compiled binaries in their consummable form.

Extensions as the name suggest extend PHP with something it doesn't offer by itself yet, while packages are just a collection of PHP code, ie. everything you can do with PHP proper.

This is parallel to Perl's PM modules and XS extensions.


That said, my view may not be 100% accurate, but that's how I could settle this in my mind :-)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionshinView Question on Stackoverflow
Solution 1 - PhpAnti VeerannaView Answer on Stackoverflow
Solution 2 - PhpcweiskeView Answer on Stackoverflow
Solution 3 - PhpmercuryView Answer on Stackoverflow
Solution 4 - PhpJust another guyView Answer on Stackoverflow
Solution 5 - PhpkguestView Answer on Stackoverflow
Solution 6 - PhpElvinView Answer on Stackoverflow