Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Site package basics

The overview of the basics part of the site packages help. What a site installer package is, the .ezpkg file and package.xml, package types, install items, dependencies, install scripts, and how the setup wizard, the…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/site-packages/basics/README.md

On this page

Site package basics

This part of the site packages help explains how a package is built and how Exponential reads it. It is for administrators who install sites and want to know what happens, and for developers who change or write packages. Every statement on these pages was checked against the kernel code of 6.0.15 (kernel/classes/ezpackage.php and the classes around it), settings/package.ini, the package sources and the live package server.

If you only want to install a site, you do not need any of this: the setup wizard, the kickstarter and exp:install do it for you (see Choosing an install method). Read on when an install fails, when you want to change what a new site contains, or when you build a package.

Contents

  1. The pages of this part
  2. Reading order
  3. The basics in ten lines
  4. Where the code is
  5. Related pages

The pages of this part

PageWhat it answers
What a site installer package isWhat a site package is, what it carries, and how it differs from the packages it requires
The .ezpkg fileThe archive: its layout, the checks on upload and import, and how to open one by hand
package.xml referenceEvery element and attribute of package.xml, as eZPackage reads and writes it
Package typessite, sitestyle, contentclass, contentobject, extension: TypeList and the types the index really uses
Install items and handlers<install> items, HandlerAlias, and what each package handler does
Dependencies and install order<requires>, min-version, and the order things are fetched and installed in
Install scripts in a site package<settings><settings-file> and the functions the installer calls
How the setup wizard uses packagesThe steps Site types, Package language options and Create sites
How the kickstarter and the console use packageskickstart.ini [site_types] Site_package and exp:install --package
The local package repositoryvar/storage/packages/, the vendor folders, local, .cache and an offline index.xml
Classic and JSON packagesThe two storage formats of a package
Import versus installinstall_type, and what import, install, uninstall and remove mean

Reading order

The basics in ten lines

  1. A package is a directory with a definition file (package.xml, or package.json in the JSON format) and the files it names.
  2. Shipped as one file, a package is a gzip compressed tar archive ending in .ezpkg.
  3. Every package has a type (<type value="..."/>); a site package has the type site.
  4. A site package requires other packages (<require type="ezpackage" name="..." min-version="..."/>): content classes, content, extensions, site styles.
  5. A site package can carry install scripts (<settings><settings-file filename="..."/>) that set up siteaccesses, settings, roles and preferences.
  6. The packages it requires carry install items (<install><item type="..."/>), each handled by a package handler named in settings/package.ini [PackageSettings] HandlerAlias[].
  7. Import puts a package into the local repository, var/storage/packages/<vendor>/<name>/; nothing on the site changes.
  8. Install runs the install items. Packages with install_type="import" (every site package of the 6.0.15 index) have nothing to install themselves.
  9. The setup wizard, the kickstarter and exp:install all run the same steps from kernel/setup/steps/ezstep_data.php: they find the site package, import it and its requirements, install the requirements, and call the install scripts.
  10. Packages come from the package server, whose address is settings/package.ini [RepositorySettings] RemotePackagesIndexURL; see The package server.

Where the code is

WhatWhere
The package model: read, write, import, install, uninstallkernel/classes/ezpackage.php (eZPackage)
Archive checks before anything is writtenkernel/classes/ezpackageuploadinspector.php
Version comparison (min-version)kernel/classes/ezpackageversion.php
Install item handlerskernel/classes/packagehandlers/*/
Package creation wizardskernel/classes/packagecreators/*/
Step installers of the administrationkernel/classes/packageinstallers/*/
The administration's package viewskernel/package/ (entry points), kernel/private/classes/views/package/
The setup steps that use packageskernel/setup/steps/ezstep_site_types.php, ezstep_package_language_options.php, ezstep_create_sites.php
The command line package managerezpm.php in the installation root, code in kernel/private/classes/commands/ezpm.php
Settingssettings/package.ini

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x