Compare commits

...

10 Commits

Author SHA1 Message Date
Abel Hoogeveen 5b8e71981a
Fixed composer bug, being unable to build on Drone.
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2024-04-01 14:09:07 +02:00
Abel Hoogeveen 98c3b92363
Updated Application to PHP8.1.
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/tag Build is failing Details
Made slight changes to the codebase to more align with existing FuzeWorks projects.
2024-04-01 14:06:10 +02:00
Abel Hoogeveen 52c41a205e
PHP8 compatibility update.
continuous-integration/drone/push Build is passing Details
- Updated to latest libraries
- Added and amended config files
- Implemented drone
2021-11-30 00:42:08 +01:00
Abel Hoogeveen a5bb5124ce
Merge branch '3-implement-fuzeworks-120'
# Conflicts:
#	composer.json
#	www/.htaccess
#	www/index.php
2019-09-22 00:22:35 +02:00
Abel Hoogeveen 9b5da03b02
Release 1.2.0 2019-09-22 00:04:15 +02:00
Abel Hoogeveen 37d5ab4b17
Implemented 1.2.0-RC5
Also moved index to fuzeworks.php and added some variables to templates.
2019-09-18 17:34:19 +02:00
Abel Hoogeveen dbbe6c9d16
Fixed Gitlab CI not correctly processing PHPUnit 2019-03-15 17:33:36 +01:00
Abel Hoogeveen 702f2e8ba5
Implemented all changes requested during development 2019-03-15 17:29:08 +01:00
Abel Hoogeveen 46197d45b4
Updated license notice in application and www directories. 2019-02-27 14:09:02 +01:00
Abel Hoogeveen a89c38706e
Initial commit for 1.2.0-BETA. 2019-02-27 13:58:34 +01:00
45 changed files with 1429 additions and 1643 deletions

View File

@ -1,25 +0,0 @@
---
engines:
duplication:
enabled: true
config:
languages:
- ruby
- javascript
- python
- php
fixme:
enabled: true
phpmd:
enabled: true
ratings:
paths:
- "**.inc"
- "**.js"
- "**.jsx"
- "**.module"
- "**.php"
- "**.py"
- "**.rb"
exclude_paths:
- tests/

24
.drone.yml Normal file
View File

@ -0,0 +1,24 @@
kind: pipeline
type: docker
name: test
steps:
- name: composer
image: registry.i15.nl/i15/fuzephp:8.1-alpine
commands:
- composer install
- name: php81test
image: registry.i15.nl/i15/fuzephp:8.1-alpine
commands:
- docker-php-ext-enable xdebug
- vendor/bin/phpunit -c test/phpunit.xml
- name: coverage
image: registry.i15.nl/i15/fuzephp:8.1-alpine
commands:
- docker-php-ext-enable xdebug
- vendor/bin/phpunit -c test/phpunit.xml --coverage-text
image_pull_secrets:
- dockerconfig

2
.gitattributes vendored
View File

@ -3,5 +3,7 @@
.gitlab_ci.yml export-ignore
.travis.yml export-ignore
.codeclimate.yml export-ignore
.drone.yml export-ignore
Dockerfile export-ignore
DCO export-ignore
CONTRIBUTING.md export-ignore

View File

@ -1,82 +0,0 @@
before_script:
# Install dependencies
- set -xe
- apt-get update -yqq
- apt-get install git zip unzip -yqq
stages:
- build
- test
- deploy
build:composer:
image: php:7.2
stage: build
script:
- curl -sS https://getcomposer.org/installer | php
- php composer.phar install
cache:
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
paths:
- vendor/
test:7.1:
stage: test
image: php:7.1
script:
- vendor/bin/phpunit -c test/phpunit.xml
cache:
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
paths:
- vendor/
test:7.2:
stage: test
image: php:7.2
script:
- vendor/bin/phpunit -c test/phpunit.xml
cache:
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
paths:
- vendor/
test:7.3:
stage: test
image: php:7.3
script:
- vendor/bin/phpunit -c test/phpunit.xml
cache:
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
paths:
- vendor/
test:coverage:
stage: test
image: php:7.2
script:
- pecl install xdebug
- docker-php-ext-enable xdebug
- vendor/bin/phpunit -c test/phpunit.xml --coverage-text
cache:
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
paths:
- vendor/
release:
stage: deploy
image: php:7.2
only:
- master
script:
- pecl install xdebug
- docker-php-ext-enable xdebug
- vendor/bin/phpunit -c test/phpunit.xml --coverage-text
artifacts:
name: "${CI_BUILD_NAME}_${CI_BUILD_REF_NAME}"
paths:
- build/
expire_in: 3 weeks
cache:
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
paths:
- vendor/

View File

@ -1,12 +0,0 @@
language: php
php:
- 7.1
- 7.2
- 7.3
script:
- php vendor/bin/phpunit -v -c tests/phpunit.xml --coverage-text
before_script:
- composer install

11
Dockerfile Normal file
View File

@ -0,0 +1,11 @@
FROM registry.i15.nl/i15/fuzephp:8.1-apache
MAINTAINER i15 <abel@i15.nl>
# Write application to image
ENV APACHE_DOCUMENT_ROOT /usr/src/application/www/
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf && sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf && a2enmod rewrite
# Amend permissions
COPY --chown=www-data . /usr/src/application
RUN chmod -R 777 /usr/src/application/temp
RUN chmod -R 777 /usr/src/application/log

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2013-2019 TechFuze
Copyright (c) 2013-2024 i15
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,18 +1,18 @@
FuzeWorks Application Skeleton [![Build Status](https://travis-ci.org/FuzeWorks/Application.svg?branch=master)](https://travis-ci.org/FuzeWorks/Application)
FuzeWorks Application Skeleton
=================
This is a simple, skeleton application using [FuzeWorks](https://techfuze.net/fuzeworks). This is meant to
This is a simple, skeleton application using [FuzeWorks](https://i15.nl/fuzeworks). This is meant to
be used as a starting point for your new projects.
[FuzeWorks](https://techfuze.net/fuzeworks) is a versatile framework for web development.
[FuzeWorks](https://i15.nl/fuzeworks) is a versatile framework for web development.
It is designed to be the most usable and friendliest as possible. It focuses
on security and performance.
on modularity and ease-of-use.
Requirements
------------
PHP 7.1 or higher.
PHP 8.1 or higher.
Installation

View File

@ -1,197 +0,0 @@
<?php
/**
* FuzeWorks Application Skeleton.
*
* The FuzeWorks PHP FrameWork
*
* Copyright (C) 2013-2019 TechFuze
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* @author TechFuze
* @copyright Copyright (c) 2013 - 2019, TechFuze. (http://techfuze.net)
* @license https://opensource.org/licenses/MIT MIT License
*
* @link http://techfuze.net/fuzeworks
* @since Version 0.0.1
*
* @version Version 1.2.0
*/
/*
| -------------------------------------------------------------------
| MIME TYPES
| -------------------------------------------------------------------
| This file contains an array of mime types.
*/
return [
'hqx' => array('application/mac-binhex40', 'application/mac-binhex', 'application/x-binhex40', 'application/x-mac-binhex40'),
'cpt' => 'application/mac-compactpro',
'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain'),
'bin' => array('application/macbinary', 'application/mac-binary', 'application/octet-stream', 'application/x-binary', 'application/x-macbinary'),
'dms' => 'application/octet-stream',
'lha' => 'application/octet-stream',
'lzh' => 'application/octet-stream',
'exe' => array('application/octet-stream', 'application/x-msdownload'),
'class' => 'application/octet-stream',
'psd' => array('application/x-photoshop', 'image/vnd.adobe.photoshop'),
'so' => 'application/octet-stream',
'sea' => 'application/octet-stream',
'dll' => 'application/octet-stream',
'oda' => 'application/oda',
'pdf' => array('application/pdf', 'application/force-download', 'application/x-download', 'binary/octet-stream'),
'ai' => array('application/pdf', 'application/postscript'),
'eps' => 'application/postscript',
'ps' => 'application/postscript',
'smi' => 'application/smil',
'smil' => 'application/smil',
'mif' => 'application/vnd.mif',
'xls' => array('application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/excel', 'application/download', 'application/vnd.ms-office', 'application/msword'),
'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.ms-office', 'application/msword'),
'pptx' => array('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/x-zip', 'application/zip'),
'wbxml' => 'application/wbxml',
'wmlc' => 'application/wmlc',
'dcr' => 'application/x-director',
'dir' => 'application/x-director',
'dxr' => 'application/x-director',
'dvi' => 'application/x-dvi',
'gtar' => 'application/x-gtar',
'gz' => 'application/x-gzip',
'gzip' => 'application/x-gzip',
'php' => array('application/x-httpd-php', 'application/php', 'application/x-php', 'text/php', 'text/x-php', 'application/x-httpd-php-source'),
'php4' => 'application/x-httpd-php',
'php3' => 'application/x-httpd-php',
'phtml' => 'application/x-httpd-php',
'phps' => 'application/x-httpd-php-source',
'js' => array('application/x-javascript', 'text/plain'),
'swf' => 'application/x-shockwave-flash',
'sit' => 'application/x-stuffit',
'tar' => 'application/x-tar',
'tgz' => array('application/x-tar', 'application/x-gzip-compressed'),
'z' => 'application/x-compress',
'xhtml' => 'application/xhtml+xml',
'xht' => 'application/xhtml+xml',
'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/s-compressed', 'multipart/x-zip'),
'rar' => array('application/x-rar', 'application/rar', 'application/x-rar-compressed'),
'mid' => 'audio/midi',
'midi' => 'audio/midi',
'mpga' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
'aif' => array('audio/x-aiff', 'audio/aiff'),
'aiff' => array('audio/x-aiff', 'audio/aiff'),
'aifc' => 'audio/x-aiff',
'ram' => 'audio/x-pn-realaudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'ra' => 'audio/x-realaudio',
'rv' => 'video/vnd.rn-realvideo',
'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'),
'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'),
'gif' => 'image/gif',
'jpeg' => array('image/jpeg', 'image/pjpeg'),
'jpg' => array('image/jpeg', 'image/pjpeg'),
'jpe' => array('image/jpeg', 'image/pjpeg'),
'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpg2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpx' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'png' => array('image/png', 'image/x-png'),
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'css' => array('text/css', 'text/plain'),
'html' => array('text/html', 'text/plain'),
'htm' => array('text/html', 'text/plain'),
'shtml' => array('text/html', 'text/plain'),
'txt' => 'text/plain',
'text' => 'text/plain',
'log' => array('text/plain', 'text/x-log'),
'rtx' => 'text/richtext',
'rtf' => 'text/rtf',
'xml' => array('application/xml', 'text/xml', 'text/plain'),
'xsl' => array('application/xml', 'text/xsl', 'text/xml'),
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'mpe' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'avi' => array('video/x-msvideo', 'video/msvideo', 'video/avi', 'application/x-troff-msvideo'),
'movie' => 'video/x-sgi-movie',
'doc' => array('application/msword', 'application/vnd.ms-office'),
'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword', 'application/x-zip'),
'dot' => array('application/msword', 'application/vnd.ms-office'),
'dotx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword'),
'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'),
'word' => array('application/msword', 'application/octet-stream'),
'xl' => 'application/excel',
'eml' => 'message/rfc822',
'json' => array('application/json', 'text/json'),
'pem' => array('application/x-x509-user-cert', 'application/x-pem-file', 'application/octet-stream'),
'p10' => array('application/x-pkcs10', 'application/pkcs10'),
'p12' => 'application/x-pkcs12',
'p7a' => 'application/x-pkcs7-signature',
'p7c' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'),
'p7m' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'),
'p7r' => 'application/x-pkcs7-certreqresp',
'p7s' => 'application/pkcs7-signature',
'crt' => array('application/x-x509-ca-cert', 'application/x-x509-user-cert', 'application/pkix-cert'),
'crl' => array('application/pkix-crl', 'application/pkcs-crl'),
'der' => 'application/x-x509-ca-cert',
'kdb' => 'application/octet-stream',
'pgp' => 'application/pgp',
'gpg' => 'application/gpg-keys',
'sst' => 'application/octet-stream',
'csr' => 'application/octet-stream',
'rsa' => 'application/x-pkcs7',
'cer' => array('application/pkix-cert', 'application/x-x509-ca-cert'),
'3g2' => 'video/3gpp2',
'3gp' => array('video/3gp', 'video/3gpp'),
'mp4' => 'video/mp4',
'm4a' => 'audio/x-m4a',
'f4v' => array('video/mp4', 'video/x-f4v'),
'flv' => 'video/x-flv',
'webm' => 'video/webm',
'aac' => 'audio/x-acc',
'm4u' => 'application/vnd.mpegurl',
'm3u' => 'text/plain',
'xspf' => 'application/xspf+xml',
'vlc' => 'application/videolan',
'wmv' => array('video/x-ms-wmv', 'video/x-ms-asf'),
'au' => 'audio/x-au',
'ac3' => 'audio/ac3',
'flac' => 'audio/x-flac',
'ogg' => array('audio/ogg', 'video/ogg', 'application/ogg'),
'kmz' => array('application/vnd.google-earth.kmz', 'application/zip', 'application/x-zip'),
'kml' => array('application/vnd.google-earth.kml+xml', 'application/xml', 'text/xml'),
'ics' => 'text/calendar',
'ical' => 'text/calendar',
'zsh' => 'text/x-scriptzsh',
'7zip' => array('application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'),
'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'),
'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'),
'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'),
'svg' => array('image/svg+xml', 'application/xml', 'text/xml'),
'vcf' => 'text/x-vcard',
'srt' => array('text/srt', 'text/plain'),
'vtt' => array('text/vtt', 'text/plain'),
'ico' => array('image/x-icon', 'image/x-ico', 'image/vnd.microsoft.icon')
];

View File

@ -54,16 +54,16 @@ $webAppComponent->enableWebRequest();
$configurator->addComponent($webAppComponent);
// Add directories
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Config', 'config', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Helper', 'helpers', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Library', 'libraries', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Plugin', 'plugins', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Controller', 'controllers', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'View', 'views', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Model', 'models', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Layout', 'layouts', Priority::NORMAL);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'config', 'config', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'helper', 'helpers', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'library', 'libraries', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'plugin', 'plugins', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'controller', 'controllers', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'view', 'views', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'model', 'models', Priority::HIGH);
$configurator->addDirectory(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'layout', 'layouts', Priority::NORMAL);
// Debug
$configurator->enableDebugMode()->setDebugAddress('127.0.0.1');
$configurator->enableDebugMode()->setDebugAddress('ALL');
return $configurator->createContainer();

View File

@ -34,16 +34,16 @@
* @version Version 1.2.0
*/
use FuzeWorks\Core;
return [
'active_group' => 'default',
'connections' => [
'default' => [
'engineName' => 'pdo',
'dsn' => '',
'hostname' => '',
'username' => '',
'password' => '',
'database' => '',
'dsn' => Core::getEnv("PDO_DSN", "mysql:host=" . Core::getEnv("MYSQL_HOST", "127.0.0.1") . ";dbname=" . Core::getEnv("MYSQL_NAME") . ";charset=UTF8"),
'username' => Core::getEnv("MYSQL_USER", ""),
'password' => Core::getEnv("MYSQL_PASS", ""),
'prefix' => '',
'persistent' => false,
'debug' => false,

View File

@ -0,0 +1,58 @@
<?php
/**
* FuzeWorks Application
*
* Copyright (C) 2013-2021 i15
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* @author i15
* @copyright Copyright (c) 2013 - 2021, i15. (https://i15.nl)
* @license https://opensource.org/licenses/MIT MIT License
*
* @since Version 1.3.0
*
* @version Version 1.3.0
*/
use FuzeWorks\Core;
return [
// Which provider shall be used
// Options: DummyProvider, RedisProvider, FileProvider
'ObjectStorageProvider' => Core::getEnv('OBJECTSTORAGE_PROVIDER', 'DummyProvider'),
'DummyProvider' => [],
'RedisProvider' => [
// Type can be 'tcp' or 'unix'
'socket_type' => Core::getEnv('OBJECTSTORAGE_REDIS_SOCKET_TYPE', 'tcp'),
// If socket_type == 'unix', set the socket here
'socket' => Core::getEnv('OBJECTSTORAGE_REDIS_SOCKET', null),
// If socket_type == 'tcp', set the host here
'host' => Core::getEnv('OBJECTSTORAGE_REDIS_HOST', '127.0.0.1'),
// And some standard settings
'port' => Core::getEnv('OBJECTSTORAGE_REDIS_PORT', 6379),
'password' => Core::getEnv('OBJECTSTORAGE_REDIS_PASSWORD', null),
'timeout' => Core::getEnv('OBJECTSTORAGE_REDIS_TIMEOUT', 0),
'db_index' => Core::getEnv('OBJECTSTORAGE_REDIS_DBINDEX', 0),
],
'FileProvider' => [
// The directory where objects get stored by the FileProvider
'storage_directory' => Core::getEnv('OBJECTSTORAGE_FILE_DIRECTORY', Core::$tempDir)
]
];

View File

@ -38,5 +38,5 @@
* Special settings for plugins. Allows the administrator to disable plugins. Can be edited manually or automatically.
*/
return array(
'disabled_plugins' => array(),
'disabled_plugins' => [],
);

View File

@ -39,5 +39,6 @@ return array(
'default_view' => 'index',
'default_viewType' => 'html',
'default_viewMethod' => 'index',
'default_namespacePrefix' => '\Application\\'
);

View File

@ -50,12 +50,12 @@ return [
| 'csrf_exclude_uris' = Array of URIs which ignore CSRF checks
*/
'csrf_protection' => true,
'csrf_token_name' => 'fw_csrf_token',
'csrf_token_name' => 'csrf_token',
'csrf_expire' => 7200,
'csrf_exclude_uris' => array(),
// CSRF Cookie information
'csrf_cookie_name' => 'fw_csrf_cookie',
'csrf_cookie_name' => 'csrf_cookie',
'csrf_cookie_prefix' => '',
'csrf_cookie_domain' => '',
'csrf_cookie_path' => '/',

View File

@ -33,24 +33,40 @@
*
* @version Version 1.2.0
*/
use FuzeWorks\Core;
return [
// General
'base_url' => '',
'base_url' => Core::getEnv('WEB_URL', "http://127.0.0.1"),
'serverName' => 'FuzeWorks',
// Whether to allow GET parameters
'allow_get_input' => true,
// Clears the global $_GET, $_POST, $_COOKIE and $_SERVER arrays in order to prevent misuse
'empty_global_arrays' => true,
// Whether to restore the $_GET, $_POST, $_COOKIE and $_SERVER arrays when FuzeWorks shuts down
'restore_global_arrays' => true,
'permitted_uri_chars' => 'a-z 0-9~%.:_\-',
'charset' => 'UTF-8',
// Whether to redirect http traffic to https
'redirect_to_https' => false,
// Whether to gzip the output when the client supports it
'compress_output' => false,
// Global switch for output cache. To use, must be enabled in view as well
'cache_output' => false,
'xss_clean' => true,
// Cookie settings
'cookie_prefix' => 'FWZ_',
'cookie_prefix' => 'fuzeworks_',
'cookie_domain' => '',
'cookie_path' => '/',
'cookie_secure' => false,
'cookie_httponly' => false,
'cookie_httponly' => false
];

View File

@ -37,7 +37,7 @@
<html>
<head>
<title>FuzeWorks - Home</title>
<title><?= $vars['serverName']; ?> - Home</title>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
@ -60,7 +60,7 @@
<div class='col-lg-12 col-md-4 col-sm-12'>
<div id='contentPanel' class="panel panel-default" style='display:none'>
<div id='1' class="panel-body" style='display:none'>
<p class="lead">Welcome to FuzeWorks</p>
<p class="lead">Welcome to <?= $vars['serverName']; ?></p>
<p>
This website is currently under development.
</p>

View File

@ -36,13 +36,19 @@
namespace Application\View;
use Application\Controller\IndexController;
use FuzeWorks\Controller;
use FuzeWorks\WebAppView;
class IndexHtmlView extends WebAppView
{
/** @var IndexController $controller */
protected Controller $controller;
public function index()
{
$this->output->cache(3600);
return $this->layouts->get('home');
}

View File

@ -1,26 +1,19 @@
{
"name": "fuzeworks/application",
"description": "FuzeWorks Application Skeleton",
"homepage": "https://techfuze.net/fuzeworks",
"homepage": "https://i15.nl/fuzeworks",
"license": ["MIT"],
"authors": [
{
"name": "TechFuze",
"homepage": "https://techfuze.net"
},
{
"name": "FuzeWorks Community",
"homepage": "https://techfuze.net/fuzeworks/contributors"
"name": "Abel Hoogeveen",
"homepage": "https://i15.nl"
}
],
"require": {
"php": ">=7.1.0",
"fuzeworks/webappcomponent": "1.2.0-RC3",
"ext-pdo": "*"
"php": ">=8.1.0",
"fuzeworks/webappcomponent": "~1.3.0"
},
"require-dev": {
"phpunit/phpunit": "^7"
},
"minimum-stability": "RC",
"prefer-stable": true
"phpunit/phpunit": "^9"
}
}

1
test/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.cache

View File

@ -40,7 +40,7 @@ use PHPUnit\Framework\TestCase;
* Tests if the application is able to open FuzeWorks and all it's classes.
* Does not test any internal workings of FuzeWorks
*/
class loadFuzeWorksTest extends TestCase
class FuzeWorksTest extends TestCase
{
public function testLoadCore()

View File

@ -1,38 +1,20 @@
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.5/phpunit.xsd"
bootstrap="autoload.php"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
colors="false">
<?xml version="1.0"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" bootstrap="autoload.php" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" stopOnSkipped="false" colors="false">
<coverage processUncoveredFiles="false">
<include>
<directory suffix=".php">../</directory>
</include>
<exclude>
<directory suffix=".php">../vendor/</directory>
<directory suffix=".php">../test/</directory>
<directory suffix=".php">../build/</directory>
<directory suffix=".php">../log/</directory>
<directory suffix=".php">../temp/</directory>
</exclude>
</coverage>
<testsuites>
<testsuite name="Application Suite">
<testsuite name="Core Suite">
<directory>./</directory>
</testsuite>
</testsuites>
<logging>
<log type="json" target="../build/phpunit/logfile.json"/>
<log type="junit" target="../build/phpunit/logfile.xml"/>
<log type="testdox-html" target="../build/phpunit/testdox.html"/>
<log type="testdox-text" target="../build/phpunit/testdox.txt"/>
</logging>
<filter>
<whitelist processUncoveredFilesFromWhitelist="false">
<directory suffix=".php">../</directory>
<exclude>
<directory suffix=".php">../vendor/</directory>
<directory suffix=".php">../test/</directory>
<directory suffix=".php">../www/</directory>
<directory suffix=".php">../build/</directory>
<directory suffix=".php">../log/</directory>
<directory suffix=".php">../temp/</directory>
</exclude>
</whitelist>
</filter>
</phpunit>

View File

@ -1,4 +1,4 @@
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?path=$1 [QSA,L]
RewriteRule (.*) fuzeworks.php?path=$1 [QSA,L]

View File

@ -34,7 +34,12 @@
* @version Version 1.2.0
*/
return array(
// DON'T TURN THIS OFF UNLESS YOU KNOW WHAT YOU ARE DOING
'enable_events' => true
);
use FuzeWorks\Factory;
use FuzeWorks\WebComponent;
/** @var Factory $container */
$container = require(dirname(__DIR__) . '/application/bootstrap.php');
/** @var WebComponent $web */
$web = $container->web;
$web->routeWebRequest();

View File

@ -34,9 +34,12 @@
* @version Version 1.2.0
*/
/** @var \FuzeWorks\Factory $container */
use FuzeWorks\Factory;
use FuzeWorks\WebComponent;
/** @var Factory $container */
$container = require(dirname(__DIR__) . '/application/bootstrap.php');
/** @var \FuzeWorks\WebComponent $web */
/** @var WebComponent $web */
$web = $container->web;
$web->routeWebRequest();