Configuration
Configuration file
Open the configuration file for your current environment: etc/config.{MW_ENVIRONMENT}.php
Package
Access to a package is done in the configuration file. The package host must match the server host for MageWork to load the corresponding package.
You can specify multiple hosts to access the same package, or develop multiple packages with their own host.
<?php
// etc/config.default.php
$config = [
'packages' => [
'localhost.magework' => [ // HTTP Host
'Magework' => '', // Package name (directory) and URL prefix (empty = no prefix)
],
],
/* ... */
];
See Add a new package page for more information about packages.
Object data
In the configuration file, you can define all the environment information that needs to be passed to your own objects.
For example, to pass a variable to page-type objects in a package:
<?php
// etc/config.default.php
$config = [
/* ... */
'Acme' => [ // Package name
Core_Page::TYPE => [ // Object type
'default' => [ // All pages (default value)
'email' => 'default@example.com',
],
'/contact.html' => [ // Specific page
'email' => 'contact@example.com', // Override the default value
],
],
],
/* ... */
];
Database
To interact with a database, you need to configure your database connection:
<?php
// etc/config.default.php
$config = [
/* ... */
'default' => [ // "default" is the configuration for all packages. Use the package name for a specific configuration.
Core_Model::TYPE => [
'database' => [
'db_host' => '',
'db_username' => '',
'db_password' => '',
'db_database' => '',
'db_charset' => 'utf8mb4',
'lc_time_names' => 'en_US', // Language used to display day and month names and abbreviations
'time_zone' => '+00:00', // Affects display and storage of time values that are zone-sensitive
],
],
],
/* ... */
];
This provides the connection information to the Core_Model_Database class, for all packages.
Session cookie
If you need to use a session, the following configurations are available:
<?php
// etc/config.default.php
$config = [
/* ... */
'app' => [
'session_lifetime' => 3600, // Cookie lifetime in seconds
'cookie_same_site' => 'Lax', // None, Lax, Strict
'cookie_http_only' => true,
],
/* ... */
];
Secured protocol port
By default, the port is 443. If you're using a certificate on a different port, a configuration allows you to define the port.
This enables the application to determine if the context is secure: App::isSsl().
<?php
// etc/config.default.php
$config = [
/* ... */
'app' => [
'secured_port' => 443,
],
/* ... */
];
Forms
To manage forms and send emails, you can configure the contact settings.
<?php
// etc/config.default.php
$config = [
/* ... */
'default' => [ // "default" is the configuration for all packages. Use the package name for a specific configuration.
Core_Model::TYPE => [
'form' => [
'_mail_from_name' => 'MageWork',
'_mail_from_email' => 'hello@example.com',
'_mail_enabled' => true,
],
],
],
/* ... */
];
This provides the contact information to the Core_Model_Form class.
- Installation
- Configuration
- Add a new package
- Add a new HTML page
- Serve any type of file
- Rewrite a route
- Add a new block
- Data assignment
- Objects and class fallback
- Database
- Console Commands
- Framework tools
- Custom shared libraries
- External libraries with composer
- Templating best practices
- Forms
- Captcha
- Write content in Markdown
- Static Site Generator