This application is the code powering the Joomla! Framework website.
composer install
command to install all dependenciesetc/config.dist.json
to etc/config.json
and configure your environment (see below for full details on the configuration)vendor/bin/phinx migrate
to set up the databaseTo seed the database with the Framework package data, the following steps should be taken:
bin/framework package:sync
command, this will load the packages table based on the contents of the packages.yml
file at the repository rootbin/framework packagist:sync:releases
command, this will load the releases table with all stable releases that have been tagged based on the Packagist API responsebin/framework packagist:sync:downloads
command, this will load the download counts for all packages into the databasebin/framework github:contributors
command, this will query the GitHub API to get all code contributors for each package The web assets (CSS, JavaScript, and images) are compiled and processed with Laravel Mix which is a wrapper around webpack. The primary source for all assets is the assets
directory, running Mix will place production assets into the www/media
directory.
The use of Mix requires NPM as hinted at in the Installation section. NPM 5+ and Node 8+ are required. Three scripts are available:
npm run prod
will compile assets for production, which includes compression and minification; code must be committed to this repository with the production configurationnpm run dev
will compile the assets without production optimizationsnpm run watch
is the same as the dev
script but with the --watch
flag passedThis site makes use of Subresource Integrity (SRI), therefore the integrity hashes must be regenerated after compiling assets. This can be done by running the bin/framework template:generate-sri
command.
The database schema is managed through Phinx. The phinx.php
file at the root of this repo configures the Phinx environment. Please see their documentation for more information.
The application's configuration is defined as follows:
joomla/database
package is used to provide a database connection as required
database.host
- The address of the database serverdatabase.user
- The user to connect to the database asdatabase.password
- The password for the database userdatabase.database
- The name of the database to usedatabase.prefix
- The prefix to use for the database's tablestwig/twig
package is used for the application's templates
template.debug
- Flag to enable Twig's debug functionality, when enabled the caching functionality is not availabletemplate.cache.enabled
- Flag to enable Twig's caching functionalitytemplate.cache.path
- The path relative to the repo root where cached Twig files should be storedanalytics.enabled
- Flag to enable this featureanalytics.account
- The UA code of the Analytics account to send data tomonolog/monolog
package is used for logging functionality
log.level
- The default logging level to use for all application loggers, this defaults to the ERROR
levellog.application
- The logging level to use specifically for the monolog.handler.application
logger; defaults to the log.level
valuejoomla/github
package is used to interface with the GitHub API for some of the site's capabilities
gh.token
- Set a GitHub API token to use for authenticating to the API, this is the recommended settingapi.username
- Set the GitHub account username to use for authenticating to the APIapi.password
- Set the GitHub account password to use for authenticating to the APIerrorReporting
configuration key can be set to a valid bitmask to be passed into the error_reporting()
functiondebug
key allows enabling the application's debug mode, this also makes the PHP Debug Bar available