Replace Pear with Composer

Problems with the Windows version of XAMPP, questions, comments, and anything related.

Replace Pear with Composer

Postby NoMoreTears » 25. October 2015 18:23

XAMPP is filled with knickknacks and tchotchkes. Almost all are non-intrusive and sometimes useful.

Pear, however, keeps getting in the way of a modern experimental environment. It's not all Pear's fault, because many of the little tidbits hidden in PHP's Pear folder are unsupported and haven't been maintained with current versions (if they exist). XAMPP's Pear already interferes with my up-to-date version of PHPUnit for example--and there are other examples.

Meanwhile I think the PHP community has moved on to Composer and packagist for such dependencies.

With respect to XAMPP, is it time to let Pear fade into history and replace Pear with the Composer dependency Manager for PHP?
NoMoreTears
 
Posts: 6
Joined: 11. January 2011 03:57

Re: Replace Pear with Composer

Postby Altrea » 25. October 2015 19:05

You can choose not to use PEAR. I don't see any problems in including PEAR!?
And you can include composer very easy in XAMPP if you want to, like so: viewtopic.php?f=16&t=56990
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Replace Pear with Composer

Postby NoMoreTears » 25. October 2015 21:10

Actually it is very difficult to avoid Pear in the current implementation-- requiring a whole bunch of one off file deletes in the PHP directory.

First, the xampp/php directory is added to the path.

Once you start using CLI tools, a whole bunch of little hidden bat files located in the PHP directory and many directed at Pear start hijacking actions.

Here is an example:

Code: Select all
#!\xampp\php\.\php.exe
<?php
/* PHPUnit
 *
 * Copyright (c) 2001-2013, Sebastian Bergmann <sebastian@phpunit.de>.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   * Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   * Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in
 *     the documentation and/or other materials provided with the
 *     distribution.
 *
 *   * Neither the name of Sebastian Bergmann nor the names of his
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

define('PHPUnit_MAIN_METHOD', 'PHPUnit_TextUI_Command::main');

if (strpos('\xampp\php\.\php.exe', '@php_bin') === 0) {
    require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPUnit' . DIRECTORY_SEPARATOR . 'Autoload.php';
} else {
    require '\xampp\php\pear' . DIRECTORY_SEPARATOR . 'PHPUnit' . DIRECTORY_SEPARATOR . 'Autoload.php';
}

PHPUnit_TextUI_Command::main();


It isn't the only example. Some don't point at Pear, but run other little scripts.

They aren't namespaced or manged by any type of a controller. They also don't seem to be maintained here. Forgotten assets?

Every time XAMPP updates, all these little opt-out issues have to be corrected.

Why pick on Pear too? Because unlike Composer, Pear is built around supporting this kind of global mess in my opinion.
NoMoreTears
 
Posts: 6
Joined: 11. January 2011 03:57


Return to XAMPP for Windows

Who is online

Users browsing this forum: No registered users and 53 guests