Fájlok feltöltése a következőre: 'frontend'
This commit is contained in:
parent
31d8501cc8
commit
dc0ca5f2a6
22
frontend/LICENSE
Normal file
22
frontend/LICENSE
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2014-2019 British Columbia Institute of Technology
|
||||||
|
Copyright (c) 2019-2023 CodeIgniter Foundation
|
||||||
|
|
||||||
|
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.
|
66
frontend/composer.json
Normal file
66
frontend/composer.json
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
{
|
||||||
|
"name": "codeigniter4/framework",
|
||||||
|
"description": "The CodeIgniter framework v4",
|
||||||
|
"license": "MIT",
|
||||||
|
"type": "project",
|
||||||
|
"homepage": "https://codeigniter.com",
|
||||||
|
"support": {
|
||||||
|
"forum": "https://forum.codeigniter.com/",
|
||||||
|
"source": "https://github.com/codeigniter4/CodeIgniter4",
|
||||||
|
"slack": "https://codeigniterchat.slack.com"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.4 || ^8.0",
|
||||||
|
"ext-intl": "*",
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"laminas/laminas-escaper": "^2.9",
|
||||||
|
"psr/log": "^1.1"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"codeigniter/coding-standard": "^1.5",
|
||||||
|
"fakerphp/faker": "^1.9",
|
||||||
|
"friendsofphp/php-cs-fixer": "3.13.0",
|
||||||
|
"kint-php/kint": "^5.0.4",
|
||||||
|
"mikey179/vfsstream": "^1.6",
|
||||||
|
"nexusphp/cs-config": "^3.6",
|
||||||
|
"phpunit/phpunit": "^9.1",
|
||||||
|
"predis/predis": "^1.1 || ^2.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-curl": "If you use CURLRequest class",
|
||||||
|
"ext-dom": "If you use TestResponse",
|
||||||
|
"ext-exif": "If you run Image class tests",
|
||||||
|
"ext-fileinfo": "Improves mime type detection for files",
|
||||||
|
"ext-gd": "If you use Image class GDHandler",
|
||||||
|
"ext-imagick": "If you use Image class ImageMagickHandler",
|
||||||
|
"ext-libxml": "If you use TestResponse",
|
||||||
|
"ext-memcache": "If you use Cache class MemcachedHandler with Memcache",
|
||||||
|
"ext-memcached": "If you use Cache class MemcachedHandler with Memcached",
|
||||||
|
"ext-mysqli": "If you use MySQL",
|
||||||
|
"ext-oci8": "If you use Oracle Database",
|
||||||
|
"ext-pgsql": "If you use PostgreSQL",
|
||||||
|
"ext-readline": "Improves CLI::input() usability",
|
||||||
|
"ext-redis": "If you use Cache class RedisHandler",
|
||||||
|
"ext-simplexml": "If you format XML",
|
||||||
|
"ext-sqlite3": "If you use SQLite3",
|
||||||
|
"ext-sqlsrv": "If you use SQL Server",
|
||||||
|
"ext-xdebug": "If you use CIUnitTestCase::assertHeaderEmitted()"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"CodeIgniter\\": "system/"
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"**/Database/Migrations/**"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"optimize-autoloader": true,
|
||||||
|
"preferred-install": "dist",
|
||||||
|
"sort-packages": true
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "phpunit"
|
||||||
|
}
|
||||||
|
}
|
143
frontend/env
Normal file
143
frontend/env
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Example Environment Configuration file
|
||||||
|
#
|
||||||
|
# This file can be used as a starting point for your own
|
||||||
|
# custom .env files, and contains most of the possible settings
|
||||||
|
# available in a default install.
|
||||||
|
#
|
||||||
|
# By default, all of the settings are commented out. If you want
|
||||||
|
# to override the setting, you must un-comment it by removing the '#'
|
||||||
|
# at the beginning of the line.
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# ENVIRONMENT
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# CI_ENVIRONMENT = production
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# APP
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# app.baseURL = ''
|
||||||
|
# If you have trouble with `.`, you could also use `_`.
|
||||||
|
# app_baseURL = ''
|
||||||
|
# app.forceGlobalSecureRequests = false
|
||||||
|
# app.CSPEnabled = false
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# DATABASE
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# database.default.hostname = localhost
|
||||||
|
# database.default.database = ci4
|
||||||
|
# database.default.username = root
|
||||||
|
# database.default.password = root
|
||||||
|
# database.default.DBDriver = MySQLi
|
||||||
|
# database.default.DBPrefix =
|
||||||
|
# database.default.port = 3306
|
||||||
|
|
||||||
|
# database.tests.hostname = localhost
|
||||||
|
# database.tests.database = ci4_test
|
||||||
|
# database.tests.username = root
|
||||||
|
# database.tests.password = root
|
||||||
|
# database.tests.DBDriver = MySQLi
|
||||||
|
# database.tests.DBPrefix =
|
||||||
|
# database.tests.port = 3306
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# CONTENT SECURITY POLICY
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# contentsecuritypolicy.reportOnly = false
|
||||||
|
# contentsecuritypolicy.defaultSrc = 'none'
|
||||||
|
# contentsecuritypolicy.scriptSrc = 'self'
|
||||||
|
# contentsecuritypolicy.styleSrc = 'self'
|
||||||
|
# contentsecuritypolicy.imageSrc = 'self'
|
||||||
|
# contentsecuritypolicy.baseURI = null
|
||||||
|
# contentsecuritypolicy.childSrc = null
|
||||||
|
# contentsecuritypolicy.connectSrc = 'self'
|
||||||
|
# contentsecuritypolicy.fontSrc = null
|
||||||
|
# contentsecuritypolicy.formAction = null
|
||||||
|
# contentsecuritypolicy.frameAncestors = null
|
||||||
|
# contentsecuritypolicy.frameSrc = null
|
||||||
|
# contentsecuritypolicy.mediaSrc = null
|
||||||
|
# contentsecuritypolicy.objectSrc = null
|
||||||
|
# contentsecuritypolicy.pluginTypes = null
|
||||||
|
# contentsecuritypolicy.reportURI = null
|
||||||
|
# contentsecuritypolicy.sandbox = false
|
||||||
|
# contentsecuritypolicy.upgradeInsecureRequests = false
|
||||||
|
# contentsecuritypolicy.styleNonceTag = '{csp-style-nonce}'
|
||||||
|
# contentsecuritypolicy.scriptNonceTag = '{csp-script-nonce}'
|
||||||
|
# contentsecuritypolicy.autoNonce = true
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# COOKIE
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# cookie.prefix = ''
|
||||||
|
# cookie.expires = 0
|
||||||
|
# cookie.path = '/'
|
||||||
|
# cookie.domain = ''
|
||||||
|
# cookie.secure = false
|
||||||
|
# cookie.httponly = false
|
||||||
|
# cookie.samesite = 'Lax'
|
||||||
|
# cookie.raw = false
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# ENCRYPTION
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# encryption.key =
|
||||||
|
# encryption.driver = OpenSSL
|
||||||
|
# encryption.blockSize = 16
|
||||||
|
# encryption.digest = SHA512
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# HONEYPOT
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# honeypot.hidden = 'true'
|
||||||
|
# honeypot.label = 'Fill This Field'
|
||||||
|
# honeypot.name = 'honeypot'
|
||||||
|
# honeypot.template = '<label>{label}</label><input type="text" name="{name}" value=""/>'
|
||||||
|
# honeypot.container = '<div style="display:none">{template}</div>'
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# SECURITY
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# security.csrfProtection = 'cookie'
|
||||||
|
# security.tokenRandomize = false
|
||||||
|
# security.tokenName = 'csrf_token_name'
|
||||||
|
# security.headerName = 'X-CSRF-TOKEN'
|
||||||
|
# security.cookieName = 'csrf_cookie_name'
|
||||||
|
# security.expires = 7200
|
||||||
|
# security.regenerate = true
|
||||||
|
# security.redirect = false
|
||||||
|
# security.samesite = 'Lax'
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# SESSION
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# session.driver = 'CodeIgniter\Session\Handlers\FileHandler'
|
||||||
|
# session.cookieName = 'ci_session'
|
||||||
|
# session.expiration = 7200
|
||||||
|
# session.savePath = null
|
||||||
|
# session.matchIP = false
|
||||||
|
# session.timeToUpdate = 300
|
||||||
|
# session.regenerateDestroy = false
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# LOGGER
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# logger.threshold = 4
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# CURLRequest
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
# curlrequest.shareOptions = true
|
57
frontend/phpunit.xml.dist
Normal file
57
frontend/phpunit.xml.dist
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
bootstrap="system/Test/bootstrap.php"
|
||||||
|
backupGlobals="false"
|
||||||
|
colors="true"
|
||||||
|
convertErrorsToExceptions="true"
|
||||||
|
convertNoticesToExceptions="true"
|
||||||
|
convertWarningsToExceptions="true"
|
||||||
|
stopOnError="false"
|
||||||
|
stopOnFailure="false"
|
||||||
|
stopOnIncomplete="false"
|
||||||
|
stopOnSkipped="false"
|
||||||
|
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
|
||||||
|
<coverage includeUncoveredFiles="true" processUncoveredFiles="true">
|
||||||
|
<include>
|
||||||
|
<directory suffix=".php">./app</directory>
|
||||||
|
</include>
|
||||||
|
<exclude>
|
||||||
|
<directory suffix=".php">./app/Views</directory>
|
||||||
|
<file>./app/Config/Routes.php</file>
|
||||||
|
</exclude>
|
||||||
|
<report>
|
||||||
|
<clover outputFile="build/logs/clover.xml"/>
|
||||||
|
<html outputDirectory="build/logs/html"/>
|
||||||
|
<php outputFile="build/logs/coverage.serialized"/>
|
||||||
|
<text outputFile="php://stdout" showUncoveredFiles="false"/>
|
||||||
|
</report>
|
||||||
|
</coverage>
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="App">
|
||||||
|
<directory>./tests</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
<logging>
|
||||||
|
<testdoxHtml outputFile="build/logs/testdox.html"/>
|
||||||
|
<testdoxText outputFile="build/logs/testdox.txt"/>
|
||||||
|
<junit outputFile="build/logs/logfile.xml"/>
|
||||||
|
</logging>
|
||||||
|
<php>
|
||||||
|
<server name="app.baseURL" value="http://example.com/"/>
|
||||||
|
<!-- Directory containing phpunit.xml -->
|
||||||
|
<const name="HOMEPATH" value="./"/>
|
||||||
|
<!-- Directory containing the Paths config file -->
|
||||||
|
<const name="CONFIGPATH" value="./app/Config/"/>
|
||||||
|
<!-- Directory containing the front controller (index.php) -->
|
||||||
|
<const name="PUBLICPATH" value="./public/"/>
|
||||||
|
<!-- Database configuration -->
|
||||||
|
<!-- Uncomment to provide your own database for testing
|
||||||
|
<env name="database.tests.hostname" value="localhost"/>
|
||||||
|
<env name="database.tests.database" value="tests"/>
|
||||||
|
<env name="database.tests.username" value="tests_user"/>
|
||||||
|
<env name="database.tests.password" value=""/>
|
||||||
|
<env name="database.tests.DBDriver" value="MySQLi"/>
|
||||||
|
<env name="database.tests.DBPrefix" value="tests_"/>
|
||||||
|
-->
|
||||||
|
</php>
|
||||||
|
</phpunit>
|
113
frontend/preload.php
Normal file
113
frontend/preload.php
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This file is part of CodeIgniter 4 framework.
|
||||||
|
*
|
||||||
|
* (c) CodeIgniter Foundation <admin@codeigniter.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view
|
||||||
|
* the LICENSE file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
*---------------------------------------------------------------
|
||||||
|
* Sample file for Preloading
|
||||||
|
*---------------------------------------------------------------
|
||||||
|
* See https://www.php.net/manual/en/opcache.preloading.php
|
||||||
|
*
|
||||||
|
* How to Use:
|
||||||
|
* 0. Copy this file to your project root folder.
|
||||||
|
* 1. Set the $paths property of the preload class below.
|
||||||
|
* 2. Set opcache.preload in php.ini.
|
||||||
|
* php.ini:
|
||||||
|
* opcache.preload=/path/to/preload.php
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Load the paths config file
|
||||||
|
require __DIR__ . '/app/Config/Paths.php';
|
||||||
|
|
||||||
|
// Path to the front controller
|
||||||
|
define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR . 'public' . DIRECTORY_SEPARATOR);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* See https://www.php.net/manual/en/function.str-contains.php#126277
|
||||||
|
*/
|
||||||
|
if (! function_exists('str_contains')) {
|
||||||
|
/**
|
||||||
|
* Polyfill of str_contains()
|
||||||
|
*/
|
||||||
|
function str_contains(string $haystack, string $needle): bool
|
||||||
|
{
|
||||||
|
return empty($needle) || strpos($haystack, $needle) !== false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class preload
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var array Paths to preload.
|
||||||
|
*/
|
||||||
|
private array $paths = [
|
||||||
|
[
|
||||||
|
'include' => __DIR__ . '/vendor/codeigniter4/framework/system',
|
||||||
|
'exclude' => [
|
||||||
|
// Not needed if you don't use them.
|
||||||
|
'/system/Database/OCI8/',
|
||||||
|
'/system/Database/Postgre/',
|
||||||
|
'/system/Database/SQLSRV/',
|
||||||
|
// Not needed.
|
||||||
|
'/system/Database/Seeder.php',
|
||||||
|
'/system/Test/',
|
||||||
|
'/system/Language/',
|
||||||
|
'/system/CLI/',
|
||||||
|
'/system/Commands/',
|
||||||
|
'/system/Publisher/',
|
||||||
|
'/system/ComposerScripts.php',
|
||||||
|
'/Views/',
|
||||||
|
// Errors occur.
|
||||||
|
'/system/Config/Routes.php',
|
||||||
|
'/system/ThirdParty/',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->loadAutoloader();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function loadAutoloader()
|
||||||
|
{
|
||||||
|
$paths = new Config\Paths();
|
||||||
|
require rtrim($paths->systemDirectory, '\\/ ') . DIRECTORY_SEPARATOR . 'bootstrap.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load PHP files.
|
||||||
|
*/
|
||||||
|
public function load()
|
||||||
|
{
|
||||||
|
foreach ($this->paths as $path) {
|
||||||
|
$directory = new RecursiveDirectoryIterator($path['include']);
|
||||||
|
$fullTree = new RecursiveIteratorIterator($directory);
|
||||||
|
$phpFiles = new RegexIterator(
|
||||||
|
$fullTree,
|
||||||
|
'/.+((?<!Test)+\.php$)/i',
|
||||||
|
RecursiveRegexIterator::GET_MATCH
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($phpFiles as $key => $file) {
|
||||||
|
foreach ($path['exclude'] as $exclude) {
|
||||||
|
if (str_contains($file[0], $exclude)) {
|
||||||
|
continue 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once $file[0];
|
||||||
|
echo 'Loaded: ' . $file[0] . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(new preload())->load();
|
Loading…
Reference in New Issue
Block a user