Pagekit exposes some of its core functionality to developers via its command line interface (CLI). A number of commands are available that offer useful tools and helpers.
Open a terminal and navigate to the directory of an existing Pagekit installation. The script pagekit
(no file extension) in that directory is a PHP script that can be run from the command line.
cd /var/www/pagekit # navigate to pagekit directory
./pagekit # run pagekit CLI script
Note You might need to make this script executable using chmod +x pagekit
. Alternatively you can explicetly call your PHP interpreter php pagekit
.
When simple invoking the CLI tool without any arguments, it will output the Pagekit version number, some basic usage information and list the available commands that you can use.
$ ./pagekit
Pagekit version 1.0.3
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
archive Archives an extension or theme
build Builds a .zip release file
clearcache Clears the system cache
help Displays help for a command
install Installs a Pagekit package
list Lists commands
migrate Migrates Pagekit
self-update Checks for newer Pagekit versions and installs the latest
setup Setup a Pagekit installation
start Starts the built-in web server
uninstall Uninstalls a Pagekit package
update Updates dependencies of Pagekit packages
extension
extension:translate Generates extension's translation .pot/.po/.php files
translation
translation:fetch Fetches current translation files from languages repository
To run a command, you can add arguments when invoking the CLI tool. For example, installing the Hello extension from the marketplace will look as follows.
./pagekit install pagekit/hello
The available commands include helpers for extension and theme developers, but also tools that make maintaining the Pagekit project itself easier for the Pagekit developer team (such as the build
command).
To create an installable *.zip
archive from any theme or extension, run this command and provide the path to the package you want to build. The following command will create a file called pagekit-hello.zip
in the top folder of the Pagekit installation.
Example:
./pagekit archive pagekit/hello
Usage, arguments and options:
Usage:
archive [options] [--] <name>
Arguments:
name Package name
Options:
--dir[=DIR] Write the archive to this directory
This command is used by the Pagekit maintainers to build a Pagekit release package. It will create a *.zip
archive in the root folder of the Pagekit installation. This release package can then be used both as a package as you can download it from the official Pagekit website, or as an custom installation that you could deliver, e.g. to your clients.
Example:
./pagekit build
Usage (no arguments, no options):
Usage:
build
To empty the cache you can use the clearcache
command. This command removes all *.cache
files from the cache directory, which is located at tmp/cache
in a usual Pagekit installation.
Example:
./pagekit clearcache
Usage (no arguments, no options):
Usage:
clearcache
To learn what a CLI command actually does and how it is used, you can use the help
command.
Example:
./pagekit help install
Usage and arguments:
Usage:
help [options] [--] [<command_name>]
Arguments:
command The command to execute
command_name The command name [default: "help"]
Options:
--format=FORMAT The output format (txt, xml, json, or md) [default: "txt"]
Example:
./pagekit install pagekit/hello
Usage, arguments and options:
Usage:
install [options] [--] <packages> (<packages>)...
Arguments:
packages [Package name]:[Version constraint]
Options:
--prefer-source Forces installation from package sources when possible, including VCS information.
You can kist all available CLI commands with the list
command. This creates the same output as running the CLI script without any parameters.
Example:
./pagekit list
Usage, arguments and options:
Usage:
list [options] [--] [<namespace>]
Arguments:
namespace The namespace name
Options:
--raw To output raw command list
--format=FORMAT The output format (txt, xml, json, or md) [default: "txt"]
After a new Pagekit version has been installed, the system sometimes needs to apply changes to its database structure. These changes are grouped in so called migrations. To run any migrations that might need to be run, you can use the migrate
command. In general though, you do not need to do this explicitely. When you login to the admin area, Pagekit will also check if any migrations are available and will run them if needed.
Example:
./pagekit migrate
Usage (no arguments or options):
Usage:
migrate
Upgrade your Pagekit installation from the terminal. Optionally, you can provide a link to the new Pagekit package that should be used for running the upgrade. In that case, you also need to provide a valid SHA hash that is used to verify the downloaded file. If you do not provide URL and hash, the command will use the most recent Pagekit package from pagekit.com.
Example:
./pagekit self-update
Usage and options:
Usage:
self-update [options]
Options:
-u, --url=URL
-s, --shasum=SHASUM
You can run a terminal command from a freshly downloaded Pagekit installation package to run the installation without opening the browser. This could be used for automated installs, either for yourself or client projects.
Example to install Pagekit using SQLite and default admin user:
./pagekit setup --password=<SOMETHING-SECURE>
Usage and options:
Usage:
setup [options]
Options:
-u, --username=USERNAME Admin username [default: "admin"]
-p, --password=PASSWORD Admin account password
-t, --title[=TITLE] Site title [default: "Pagekit"]
-m, --mail[=MAIL] Admin account email [default: "admin@example.com"]
-d, --db-driver=DB-DRIVER DB driver ('sqlite' or 'mysql') [default: "sqlite"]
--db-prefix[=DB-PREFIX] DB prefix [default: "pk_"]
-H, --db-host[=DB-HOST] MySQL host
-N, --db-name[=DB-NAME] MySQL database name
-U, --db-user[=DB-USER] MySQL user
-P, --db-pass[=DB-PASS] MySQL password
-l, --locale[=LOCALE] Locale
You actually do not need a full Apache server setup. You can instead run the start
command for a self-contained server instance running on your local machine. The command will keep running until you hit CTRL + C to quit the server instance.
./pagekit start --server=127.0.0.1:8080
Usage and options:
Usage:
start [options]
Options:
-s, --server[=SERVER] Server name and port [default: "127.0.0.1:8080"]
Removes a theme or extension from your Pagekit installation.
Example:
./pagekit uninstall pagekit/hello
Usage and arguments:
Usage:
uninstall <packages> (<packages>)...
Arguments:
packages [Package name]
When creating a theme or extension, you can and should use Pagekit's internationalization system to make sure the user interface can be displayed in multiple languages. Basically, this works by wrapping strings in special function calls (like __('Translate me!')
in PHP templates or {{ 'Translate me!' |trans }}
in Vue templates. The extension:translate
commands will find all occurences of such function calls in a given theme or extension, and collect all translatable strings for you and write them to the languages/
subdirectory of the specified package. These files can then be used to create translations for your package, for example using a service like Transifex.
Example:
./pagekit extension:translate pagekit/blog
Usage and arguments:
Usage:
extension:translate [<extension>]
Arguments:
extension Extension name
Deprecated Warning This command will be replaced.
This command is used by the Pagekit core maintainers to fetch translations from the Pagekit translation repository. The translation workflow and file structure is currently under discussion and this command will probably replaced in a future version of Pagekit.
Example:
./pagekit translation:fetch
Usage:
Usage:
translation:fetch