PHPackages                             joomla/archive - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. joomla/archive

ActiveJoomla-package[Framework](/categories/framework)

joomla/archive
==============

Joomla Archive Package

4.0.0(9mo ago)4345.6k↓23.9%8[1 PRs](https://github.com/joomla-framework/archive/pulls)3GPL-2.0-or-laterPHPPHP ^8.3.0CI passing

Since Jun 4Pushed 9mo ago10 watchersCompare

[ Source](https://github.com/joomla-framework/archive)[ Packagist](https://packagist.org/packages/joomla/archive)[ Docs](https://github.com/joomla-framework/archive)[ RSS](/packages/joomla-archive/feed)WikiDiscussions 3.x-dev Synced 1mo ago

READMEChangelog (10)Dependencies (6)Versions (38)Used By (3)Security (2)

The Archive Package [![Build Status](https://github.com/joomla-framework/archive/actions/workflows/ci.yml/badge.svg?branch=3.x-dev)](https://github.com/joomla-framework/archive)
=================================================================================================================================================================================

[](#the-archive-package-)

[![Latest Stable Version](https://camo.githubusercontent.com/fd2d2ebcdbe2789a67201e86286aed99e6b573b7a3da9358a38c5c9bcdfa7ae8/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f617263686976652f762f737461626c65)](https://packagist.org/packages/joomla/archive)[![Total Downloads](https://camo.githubusercontent.com/64b86ee1180fe3b07798e6b39cf9f763032aa8153c91c2f69f3294a4b7e42fe2/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f617263686976652f646f776e6c6f616473)](https://packagist.org/packages/joomla/archive)[![Latest Unstable Version](https://camo.githubusercontent.com/e3e3f67fd9754335f0dd091019f29de6ff1f99884854c994b7d744bcb08da99d/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f617263686976652f762f756e737461626c65)](https://packagist.org/packages/joomla/archive)[![License](https://camo.githubusercontent.com/e5d0017151605e6ce1c544110412d2566aeb04d19052ae3cd714d5caa45f1a5c/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f617263686976652f6c6963656e7365)](https://packagist.org/packages/joomla/archive)

The archive package will intelligently load the correct adapter for the specified archive type. It knows how to properly handle the following archive types:

- zip
- tar | tgz | tbz2
- gz | gzip
- bz2 | bzip2

Loading files of the `t*` archive type will uncompress the archive using the appropriate adapter, and then extract via tar.

Requirements
------------

[](#requirements)

- PHP 8.1 or later
- zlib extension for GZip support
- bz2 extension for BZip2 support

Usage
-----

[](#usage)

```
$options = array('tmp_path' => '/tmp');

$archive = new Joomla\Archive\Archive($options)

$archive->extract(__DIR__ . '/archive.zip', __DIR__ . '/destination');
```

Overriding Adapters
-------------------

[](#overriding-adapters)

If you have a custom adapter you would like to use for extracting, this package allows you to override the defaults. Just implement `ExtractableInterface` when creating your adapter, and then use the `setAdapter` method to override.

```
class MyZipAdapter implements \Joomla\Archive\ExtractableInterface
{
	public static function isSupported()
	{
		// Do you test
		return true;
	}

	public function extract($archive, $destination)
	{
		// Your code
	}
}

$archive = new Archive;

// You need to pass the fully qualified class name.
$archive->setAdapter('zip', '\\MyZipAdapter');

// This will use your
$archive->extract('archive.zip', 'destination');
```

Installation via Composer
-------------------------

[](#installation-via-composer)

Add `"joomla/archive": "~3.0"` to the require block in your composer.json and then run `composer install`.

```
{
	"require": {
		"joomla/archive": "~3.0"
	}
}
```

Alternatively, you can simply run the following from the command line:

```
composer require joomla/archive "~3.0"
```

If you want to include the test sources, use

```
composer require --prefer-source joomla/archive "~3.0"
```

###  Health Score

58

—

FairBetter than 98% of packages

Maintenance55

Moderate activity, may be stable

Popularity42

Moderate usage in the ecosystem

Community30

Small or concentrated contributor base

Maturity90

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 50.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~138 days

Total

33

Last Release

298d ago

Major Versions

1.1.9 → 2.0.0-beta42021-01-25

1.1.10 → 2.0.0-beta52021-03-06

1.1.12 → 2.0.12022-03-29

2.0.2 → 3.0.02023-10-05

3.0.4 → 4.0.02025-07-24

PHP version history (8 changes)1.0-alphaPHP &gt;=5.3.10

1.1.4PHP ^5.3.10|~7.0

2.0.0-betaPHP ^7.2.5

1.1.11PHP ^5.3.10|^7.0|^8.0

2.0.1PHP ^7.2.5|^8.0

2.0.2PHP ^7.2.5|~8.0.0|~8.1.0

3.0.0PHP ^8.1.0

4.0.0PHP ^8.3.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/305a2164440014dcef9ac681c139fe5e8a1ce1d7a8c3b3cfb828497729a4c70e?d=identicon)[wilsonge](/maintainers/wilsonge)

---

Top Contributors

[![mbabker](https://avatars.githubusercontent.com/u/368545?v=4)](https://github.com/mbabker "mbabker (105 commits)")[![Hackwar](https://avatars.githubusercontent.com/u/313866?v=4)](https://github.com/Hackwar "Hackwar (23 commits)")[![nibra](https://avatars.githubusercontent.com/u/827605?v=4)](https://github.com/nibra "nibra (18 commits)")[![dongilbert](https://avatars.githubusercontent.com/u/718028?v=4)](https://github.com/dongilbert "dongilbert (13 commits)")[![wilsonge](https://avatars.githubusercontent.com/u/1986000?v=4)](https://github.com/wilsonge "wilsonge (12 commits)")[![Achal-Aggarwal](https://avatars.githubusercontent.com/u/3330262?v=4)](https://github.com/Achal-Aggarwal "Achal-Aggarwal (8 commits)")[![joomla-jenkins](https://avatars.githubusercontent.com/u/929228?v=4)](https://github.com/joomla-jenkins "joomla-jenkins (5 commits)")[![heelc29](https://avatars.githubusercontent.com/u/66922325?v=4)](https://github.com/heelc29 "heelc29 (4 commits)")[![aliasm2k](https://avatars.githubusercontent.com/u/29655345?v=4)](https://github.com/aliasm2k "aliasm2k (3 commits)")[![frankmayer](https://avatars.githubusercontent.com/u/825497?v=4)](https://github.com/frankmayer "frankmayer (2 commits)")[![ReLater](https://avatars.githubusercontent.com/u/20780646?v=4)](https://github.com/ReLater "ReLater (2 commits)")[![eddieajau](https://avatars.githubusercontent.com/u/700871?v=4)](https://github.com/eddieajau "eddieajau (2 commits)")[![realityking](https://avatars.githubusercontent.com/u/628508?v=4)](https://github.com/realityking "realityking (2 commits)")[![richard67](https://avatars.githubusercontent.com/u/7413183?v=4)](https://github.com/richard67 "richard67 (1 commits)")[![SharkyKZ](https://avatars.githubusercontent.com/u/7325021?v=4)](https://github.com/SharkyKZ "SharkyKZ (1 commits)")[![pborreli](https://avatars.githubusercontent.com/u/77759?v=4)](https://github.com/pborreli "pborreli (1 commits)")[![laoneo](https://avatars.githubusercontent.com/u/251072?v=4)](https://github.com/laoneo "laoneo (1 commits)")[![dryabov](https://avatars.githubusercontent.com/u/378044?v=4)](https://github.com/dryabov "dryabov (1 commits)")[![C-Lodder](https://avatars.githubusercontent.com/u/2019801?v=4)](https://github.com/C-Lodder "C-Lodder (1 commits)")[![florianv](https://avatars.githubusercontent.com/u/1586668?v=4)](https://github.com/florianv "florianv (1 commits)")

---

Tags

extractionjoomlajoomla-frameworkphpframeworkarchivejoomla

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/joomla-archive/health.svg)

```
[![Health](https://phpackages.com/badges/joomla-archive/health.svg)](https://phpackages.com/packages/joomla-archive)
```

###  Alternatives

[joomla/filter

Joomla Filter Package

151.4M8](/packages/joomla-filter)[joomla/application

Joomla Application Package

23404.8k11](/packages/joomla-application)[joomla/http

Joomla HTTP Package

17674.4k12](/packages/joomla-http)[joomla/registry

Joomla Registry Package

16468.6k20](/packages/joomla-registry)[joomla/di

Joomla DI Package

15391.2k11](/packages/joomla-di)[joomla/filesystem

Joomla Filesystem Package

12369.7k7](/packages/joomla-filesystem)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
