GPM
extends Iterator
in package
Class GPM
Table of Contents
Properties
- $cache : array<string|int, mixed>
- $install_paths : array<string|int, mixed>
- $items : array<string|int, mixed>
- $callback : callable|null
- $grav : GravCore|null
- $installed : Packages
- $refresh : bool
- $repository : Packages|null
Methods
- __call() : mixed
- Convert function calls for the existing keys into their values.
- __clone() : mixed
- Clone the iterator.
- __construct() : mixed
- Creates a new GPM instance with Local and Remote packages available
- __get() : mixed
- Magic getter method
- __isset() : bool
- Magic method to determine if the attribute is set
- __toString() : string
- Convents iterator to a comma separated list.
- append() : $this
- Append new elements to the list.
- calculateMergedDependenciesOfPackages() : array<string|int, mixed>
- Calculates and merges the dependencies of the passed packages
- calculateVersionNumberFromDependencyVersion() : string|null
- Returns the actual version from a dependency version string.
- checkNextSignificantReleasesAreCompatible() : bool
- Check if two releases are compatible by next significant release
- checkNoOtherPackageNeedsTheseDependenciesInALowerVersion() : void
- checkNoOtherPackageNeedsThisDependencyInALowerVersion() : bool
- Check the package identified by $slug can be updated to the version passed as argument.
- checkPackagesCanBeInstalled() : void
- Check the passed packages list can be updated
- copyPackage() : string|null
- Copy the local zip package to tmp
- countInstalled() : int
- Returns the amount of locally installed packages
- countUpdates() : int
- Returns the amount of updates available
- downloadPackage() : string|null
- Download the zip package via the URL
- filter() : $this
- Filter elements from the list
- findPackage() : Package|false
- Searches for a Package in the repository
- findPackages() : array<string|int, mixed>
- Searches for a list of Packages in the repository
- first() : mixed
- Get the first item
- getBlueprints() : array<string|int, mixed>|false
- Find/Parse the blueprint file
- getDependencies() : array<string|int, mixed>
- Fetch the dependencies, check the installed packages and return an array with the list of packages with associated an information on what to do: install, update or ignore.
- getGrav() : GravCore|null
- Returns Grav version available in the repository
- getInstallable() : array<string|int, mixed>
- Returns the Locally installable packages
- getInstalled() : Packages
- Return the locally installed packages
- getInstalledPackage() : Package|null
- Return the instance of a specific Package
- getInstalledPlugin() : Package|null
- Return the instance of a specific Plugin
- getInstalledPlugins() : Iterator
- Returns the Locally installed plugins
- getInstalledTheme() : Package|null
- Return the instance of a specific Theme
- getInstalledThemes() : Iterator
- Returns the Locally installed themes
- getInstallPath() : string
- Get the install path for a name and a particular type of package
- getLatestVersionOfPackage() : string|null
- Get the latest release of a package from the GPM
- getPackageName() : string|false
- Try to guess the package name from the source files
- getPackagesThatDependOnPackage() : array<string|int, mixed>
- Return the list of packages that have the passed one as dependency
- getPackageType() : string|false
- Try to guess the package type from the source files
- getReleaseType() : string|null
- Get the release type of a package (stable / testing)
- getRepository() : Packages|null
- Returns the list of Plugins and Themes available in the repository
- getRepositoryPlugin() : Package|null
- Returns a Plugin from the repository
- getRepositoryPlugins() : Iterator|null
- Returns the list of Plugins available in the repository
- getRepositoryTheme() : Package|null
- Returns a Theme from the repository
- getRepositoryThemes() : Iterator|null
- Returns the list of Themes available in the repository
- getUpdatable() : array<string|int, mixed>
- Returns an array of Plugins and Themes that can be updated.
- getUpdatablePlugins() : array<string|int, mixed>
- Returns an array of Plugins that can be updated.
- getUpdatableThemes() : array<string|int, mixed>
- Returns an array of Themes that can be updated.
- getVersionOfDependencyRequiredByPackage() : mixed|null
- Get the required version of a dependency of a package
- indexOf() : string|int|false
- isPluginEnabled() : bool
- Returns the plugin's enabled state
- isPluginInstalled() : bool
- Checks if a Plugin is installed
- isPluginInstalledAsSymlink() : bool
- isPluginUpdatable() : bool
- Checks if a Plugin is updatable
- isStableRelease() : bool
- Returns true if the package latest release is stable
- isTestingRelease() : bool
- Returns true if the package latest release is testing
- isThemeEnabled() : bool
- Checks if a Theme is enabled
- isThemeInstalled() : bool
- Checks if a Theme is installed
- isThemeUpdatable() : bool
- Checks if a Theme is Updatable
- isUpdatable() : bool
- Check if a Plugin or Theme is updatable
- last() : mixed
- Get the last item
- nth() : mixed|bool
- Return nth item.
- prev() : mixed
- Return previous item.
- random() : $this
- Pick one or more random entries.
- remove() : void
- Remove item from the list.
- reverse() : $this
- Reverse the Iterator
- shuffle() : $this
- Shuffle items.
- slice() : $this
- Slice the list.
- sort() : $this|array<string|int, mixed>
- Sorts elements from the list and returns a copy of the list in the proper order
- versionFormatIsEqualOrHigher() : bool
- Check if the passed version information contains equal or higher operator
- versionFormatIsNextSignificantRelease() : bool
- Check if the passed version information contains next significant release (tilde) operator
- calculateMergedDependenciesOfPackage() : array<string|int, mixed>
- Calculates and merges the dependencies of a package
- firstVersionIsLower() : bool
Properties
$cache
protected
array<string|int, mixed>
$cache
Internal cache
$install_paths
protected
array<string|int, mixed>
$install_paths
= ['plugins' => 'user/plugins/%name%', 'themes' => 'user/themes/%name%', 'skeletons' => 'user/']
$items
protected
array<string|int, mixed>
$items
= []
$callback
private
callable|null
$callback
$grav
private
GravCore|null
$grav
Remove Grav Packages
$installed
private
Packages
$installed
Local installed Packages
$refresh
private
bool
$refresh
$repository
private
Packages|null
$repository
Remote available Packages
Methods
__call()
Convert function calls for the existing keys into their values.
public
__call(string $key, mixed $args) : mixed
Parameters
- $key : string
- $args : mixed
Attributes
- #[ReturnTypeWillChange]
__clone()
Clone the iterator.
public
__clone() : mixed
Attributes
- #[ReturnTypeWillChange]
__construct()
Creates a new GPM instance with Local and Remote packages available
public
__construct([bool $refresh = false ][, callable|null $callback = null ]) : mixed
Parameters
- $refresh : bool = false
-
Applies to Remote Packages only and forces a refetch of data
- $callback : callable|null = null
-
Either a function or callback in array notation
__get()
Magic getter method
public
__get(string $offset) : mixed
Parameters
- $offset : string
-
Asset name value
Attributes
- #[ReturnTypeWillChange]
Return values
mixed —Asset value
__isset()
Magic method to determine if the attribute is set
public
__isset(string $offset) : bool
Parameters
- $offset : string
-
Asset name value
Attributes
- #[ReturnTypeWillChange]
Return values
bool —True if the value is set
__toString()
Convents iterator to a comma separated list.
public
__toString() : string
Attributes
- #[ReturnTypeWillChange]
Return values
stringappend()
Append new elements to the list.
public
append(array<string|int, mixed>|Iterator $items) : $this
Parameters
- $items : array<string|int, mixed>|Iterator
-
Items to be appended. Existing keys will be overridden with the new values.
Return values
$thiscalculateMergedDependenciesOfPackages()
Calculates and merges the dependencies of the passed packages
public
calculateMergedDependenciesOfPackages(array<string|int, mixed> $packages) : array<string|int, mixed>
Parameters
- $packages : array<string|int, mixed>
Return values
array<string|int, mixed>calculateVersionNumberFromDependencyVersion()
Returns the actual version from a dependency version string.
public
calculateVersionNumberFromDependencyVersion(string $version) : string|null
Examples: $versionInformation == '~2.0' => returns '2.0' $versionInformation == '>=2.0.2' => returns '2.0.2' $versionInformation == '2.0.2' => returns '2.0.2' $versionInformation == '*' => returns null $versionInformation == '' => returns null
Parameters
- $version : string
Return values
string|nullcheckNextSignificantReleasesAreCompatible()
Check if two releases are compatible by next significant release
public
checkNextSignificantReleasesAreCompatible(string $version1, string $version2) : bool
~1.2 is equivalent to >=1.2 <2.0.0 ~1.2.3 is equivalent to >=1.2.3 <1.3.0
In short, allows the last digit specified to go up
Parameters
- $version1 : string
-
the version string (e.g. '2.0.0' or '1.0')
- $version2 : string
-
the version string (e.g. '2.0.0' or '1.0')
Return values
boolcheckNoOtherPackageNeedsTheseDependenciesInALowerVersion()
public
checkNoOtherPackageNeedsTheseDependenciesInALowerVersion(array<string|int, mixed> $dependencies_slugs) : void
Parameters
- $dependencies_slugs : array<string|int, mixed>
checkNoOtherPackageNeedsThisDependencyInALowerVersion()
Check the package identified by $slug can be updated to the version passed as argument.
public
checkNoOtherPackageNeedsThisDependencyInALowerVersion(string $slug, string $version_with_operator, array<string|int, mixed> $ignore_packages_list) : bool
Thrown an exception if it cannot be updated because another package installed requires it to be at an older version.
Parameters
- $slug : string
- $version_with_operator : string
- $ignore_packages_list : array<string|int, mixed>
Tags
Return values
boolcheckPackagesCanBeInstalled()
Check the passed packages list can be updated
public
checkPackagesCanBeInstalled(array<string|int, mixed> $packages_names_list) : void
Parameters
- $packages_names_list : array<string|int, mixed>
Tags
copyPackage()
Copy the local zip package to tmp
public
static copyPackage(string $package_file, string $tmp) : string|null
Parameters
- $package_file : string
- $tmp : string
Return values
string|nullcountInstalled()
Returns the amount of locally installed packages
public
countInstalled() : int
Return values
int —Amount of installed packages
countUpdates()
Returns the amount of updates available
public
countUpdates() : int
Return values
int —Amount of available updates
downloadPackage()
Download the zip package via the URL
public
static downloadPackage(string $package_file, string $tmp) : string|null
Parameters
- $package_file : string
- $tmp : string
Return values
string|nullfilter()
Filter elements from the list
public
filter([callable|null $callback = null ]) : $this
Parameters
- $callback : callable|null = null
-
A function the receives ($value, $key) and must return a boolean to indicate filter status
Return values
$thisfindPackage()
Searches for a Package in the repository
public
findPackage(string $search[, bool $ignore_exception = false ]) : Package|false
Parameters
- $search : string
-
Can be either the slug or the name
- $ignore_exception : bool = false
-
True if should not fire an exception (for use in Twig)
Return values
Package|false —Package if found, FALSE if not
findPackages()
Searches for a list of Packages in the repository
public
findPackages([array<string|int, mixed> $searches = [] ]) : array<string|int, mixed>
Parameters
- $searches : array<string|int, mixed> = []
-
An array of either slugs or names
Return values
array<string|int, mixed> —Array of found Packages
Format: ['total' => int, 'not_found' => array,
first()
Get the first item
public
first() : mixed
getBlueprints()
Find/Parse the blueprint file
public
static getBlueprints(string $source) : array<string|int, mixed>|false
Parameters
- $source : string
Return values
array<string|int, mixed>|falsegetDependencies()
Fetch the dependencies, check the installed packages and return an array with the list of packages with associated an information on what to do: install, update or ignore.
public
getDependencies(array<string|int, mixed> $packages) : array<string|int, mixed>
ignore means the package is already installed and can be safely left as-is.
install means the package is not installed and must be installed.
update means the package is already installed and must be updated as a dependency needs a higher version.
Parameters
- $packages : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>getGrav()
Returns Grav version available in the repository
public
getGrav() : GravCore|null
Return values
GravCore|nullgetInstallable()
Returns the Locally installable packages
public
getInstallable([array<string|int, mixed> $list_type_installed = ['plugins' => true, 'themes' => true] ]) : array<string|int, mixed>
Parameters
- $list_type_installed : array<string|int, mixed> = ['plugins' => true, 'themes' => true]
Return values
array<string|int, mixed> —The installed packages
getInstalled()
Return the locally installed packages
public
getInstalled() : Packages
Return values
PackagesgetInstalledPackage()
Return the instance of a specific Package
public
getInstalledPackage(string $slug) : Package|null
Parameters
- $slug : string
-
The slug of the Package
Return values
Package|null —The instance of the Package
getInstalledPlugin()
Return the instance of a specific Plugin
public
getInstalledPlugin(string $slug) : Package|null
Parameters
- $slug : string
-
The slug of the Plugin
Return values
Package|null —The instance of the Plugin
getInstalledPlugins()
Returns the Locally installed plugins
public
getInstalledPlugins() : Iterator
Return values
Iterator —The installed plugins
getInstalledTheme()
Return the instance of a specific Theme
public
getInstalledTheme(string $slug) : Package|null
Parameters
- $slug : string
-
The slug of the Theme
Return values
Package|null —The instance of the Theme
getInstalledThemes()
Returns the Locally installed themes
public
getInstalledThemes() : Iterator
Return values
Iterator —The installed themes
getInstallPath()
Get the install path for a name and a particular type of package
public
static getInstallPath(string $type, string $name) : string
Parameters
- $type : string
- $name : string
Return values
stringgetLatestVersionOfPackage()
Get the latest release of a package from the GPM
public
getLatestVersionOfPackage(string $package_name) : string|null
Parameters
- $package_name : string
Return values
string|nullgetPackageName()
Try to guess the package name from the source files
public
static getPackageName(string $source) : string|false
Parameters
- $source : string
Return values
string|falsegetPackagesThatDependOnPackage()
Return the list of packages that have the passed one as dependency
public
getPackagesThatDependOnPackage(string $slug) : array<string|int, mixed>
Parameters
- $slug : string
-
The slug name of the package
Return values
array<string|int, mixed>getPackageType()
Try to guess the package type from the source files
public
static getPackageType(string $source) : string|false
Parameters
- $source : string
Return values
string|falsegetReleaseType()
Get the release type of a package (stable / testing)
public
getReleaseType(string $package_name) : string|null
Parameters
- $package_name : string
Return values
string|nullgetRepository()
Returns the list of Plugins and Themes available in the repository
public
getRepository() : Packages|null
Return values
Packages|null —Available Plugins and Themes Format: ['plugins' => array, 'themes' => array]
getRepositoryPlugin()
Returns a Plugin from the repository
public
getRepositoryPlugin(string $slug) : Package|null
Parameters
- $slug : string
-
The slug of the Plugin
Return values
Package|null —Package if found, NULL if not
getRepositoryPlugins()
Returns the list of Plugins available in the repository
public
getRepositoryPlugins() : Iterator|null
Return values
Iterator|null —The Plugins remotely available
getRepositoryTheme()
Returns a Theme from the repository
public
getRepositoryTheme(string $slug) : Package|null
Parameters
- $slug : string
-
The slug of the Theme
Return values
Package|null —Package if found, NULL if not
getRepositoryThemes()
Returns the list of Themes available in the repository
public
getRepositoryThemes() : Iterator|null
Return values
Iterator|null —The Themes remotely available
getUpdatable()
Returns an array of Plugins and Themes that can be updated.
public
getUpdatable([array<string|int, mixed> $list_type_update = ['plugins' => true, 'themes' => true] ]) : array<string|int, mixed>
Plugins and Themes are extended with the available property that relies to the remote version
Parameters
- $list_type_update : array<string|int, mixed> = ['plugins' => true, 'themes' => true]
-
specifies what type of package to update
Return values
array<string|int, mixed> —Array of updatable Plugins and Themes. Format: ['total' => int, 'plugins' => array, 'themes' => array]
getUpdatablePlugins()
Returns an array of Plugins that can be updated.
public
getUpdatablePlugins() : array<string|int, mixed>
The Plugins are extended with the available property that relies to the remote version
Return values
array<string|int, mixed> —Array of updatable Plugins
getUpdatableThemes()
Returns an array of Themes that can be updated.
public
getUpdatableThemes() : array<string|int, mixed>
The Themes are extended with the available property that relies to the remote version
Return values
array<string|int, mixed> —Array of updatable Themes
getVersionOfDependencyRequiredByPackage()
Get the required version of a dependency of a package
public
getVersionOfDependencyRequiredByPackage(string $package_slug, string $dependency_slug) : mixed|null
Parameters
- $package_slug : string
- $dependency_slug : string
Return values
mixed|nullindexOf()
public
indexOf(mixed $needle) : string|int|false
Parameters
- $needle : mixed
-
Searched value.
Return values
string|int|false —Key if found, otherwise false.
isPluginEnabled()
Returns the plugin's enabled state
public
isPluginEnabled(string $slug) : bool
Parameters
- $slug : string
Return values
bool —True if the Plugin is Enabled. False if manually set to enable:false. Null otherwise.
isPluginInstalled()
Checks if a Plugin is installed
public
isPluginInstalled(string $slug) : bool
Parameters
- $slug : string
-
The slug of the Plugin
Return values
bool —True if the Plugin has been installed. False otherwise
isPluginInstalledAsSymlink()
public
isPluginInstalledAsSymlink(string $slug) : bool
Parameters
- $slug : string
Return values
boolisPluginUpdatable()
Checks if a Plugin is updatable
public
isPluginUpdatable(string $plugin) : bool
Parameters
- $plugin : string
-
The slug of the Plugin
Return values
bool —True if the Plugin is updatable. False otherwise
isStableRelease()
Returns true if the package latest release is stable
public
isStableRelease(string $package_name) : bool
Parameters
- $package_name : string
Return values
boolisTestingRelease()
Returns true if the package latest release is testing
public
isTestingRelease(string $package_name) : bool
Parameters
- $package_name : string
Return values
boolisThemeEnabled()
Checks if a Theme is enabled
public
isThemeEnabled(string $slug) : bool
Parameters
- $slug : string
-
The slug of the Theme
Return values
bool —True if the Theme has been set to the default theme. False if installed, but not enabled. Null otherwise.
isThemeInstalled()
Checks if a Theme is installed
public
isThemeInstalled(string $slug) : bool
Parameters
- $slug : string
-
The slug of the Theme
Return values
bool —True if the Theme has been installed. False otherwise
isThemeUpdatable()
Checks if a Theme is Updatable
public
isThemeUpdatable(string $theme) : bool
Parameters
- $theme : string
-
The slug of the Theme
Return values
bool —True if the Theme is updatable. False otherwise
isUpdatable()
Check if a Plugin or Theme is updatable
public
isUpdatable(string $slug) : bool
Parameters
- $slug : string
-
The slug of the package
Return values
bool —True if updatable. False otherwise or if not found
last()
Get the last item
public
last() : mixed
nth()
Return nth item.
public
nth(int $key) : mixed|bool
Parameters
- $key : int
Return values
mixed|boolprev()
Return previous item.
public
prev() : mixed
random()
Pick one or more random entries.
public
random([int $num = 1 ]) : $this
Parameters
- $num : int = 1
-
Specifies how many entries should be picked.
Return values
$thisremove()
Remove item from the list.
public
remove(string $key) : void
Parameters
- $key : string
reverse()
Reverse the Iterator
public
reverse() : $this
Return values
$thisshuffle()
Shuffle items.
public
shuffle() : $this
Return values
$thisslice()
Slice the list.
public
slice(int $offset[, int|null $length = null ]) : $this
Parameters
- $offset : int
- $length : int|null = null
Return values
$thissort()
Sorts elements from the list and returns a copy of the list in the proper order
public
sort([callable|null $callback = null ][, bool $desc = false ]) : $this|array<string|int, mixed>
Parameters
- $callback : callable|null = null
- $desc : bool = false
Return values
$this|array<string|int, mixed>versionFormatIsEqualOrHigher()
Check if the passed version information contains equal or higher operator
public
versionFormatIsEqualOrHigher(string $version) : bool
Example: returns true for $version: '>=2.0'
Parameters
- $version : string
Return values
boolversionFormatIsNextSignificantRelease()
Check if the passed version information contains next significant release (tilde) operator
public
versionFormatIsNextSignificantRelease(string $version) : bool
Example: returns true for $version: '~2.0'
Parameters
- $version : string
Return values
boolcalculateMergedDependenciesOfPackage()
Calculates and merges the dependencies of a package
private
calculateMergedDependenciesOfPackage(string $packageName, array<string|int, mixed> $dependencies) : array<string|int, mixed>
Parameters
- $packageName : string
-
The package information
- $dependencies : array<string|int, mixed>
-
The dependencies array
Return values
array<string|int, mixed>firstVersionIsLower()
private
firstVersionIsLower(string $firstVersion, string $secondVersion) : bool
Parameters
- $firstVersion : string
- $secondVersion : string