diff --git a/applications/asset_server/Dockerfile b/applications/asset_server/Dockerfile
index 56d0e6612..6029c0c13 100644
--- a/applications/asset_server/Dockerfile
+++ b/applications/asset_server/Dockerfile
@@ -1,103 +1,144 @@
-FROM alpine
+FROM alpine:3.9
-#RUN echo "ipv6" >> /etc/modules
+# TODO: Look into using https://github.com/docker-library/php/tree/a9f19e9df5f7a5b74d72a97439ca5b77b87faa35/7.3/alpine3.9/cli
-# update
-RUN apk update && apk upgrade \
- # bash
- && apk add --no-cache bash && apk add --no-cache bash-completion \
- # npm
- && apk add --no-cache nodejs && apk add --no-cache nodejs-npm \
- # curl
- && apk add --no-cache curl \
- # "metapackage that pulls in the most essential packages used to build new packages"
- && apk add --update alpine-sdk \
- # add GZIP just in case
- && apk add --no-cache gzip \
- # install Postgres for compatibility
- && apk add --no-cache postgresql-dev \
- && apk add --update wget
+# ----------------------------------------------------------------------------------------------------------------
+# Base OS libs.
+# ----------------------------------------------------------------------------------------------------------------
+RUN apk update && apk upgrade && apk --no-cache add bash bash-completion nodejs nodejs-npm curl gzip postgresql-dev \
+ && apk add --update alpine-sdk wget
# ----------------------------------------------------------------------------------------------------------------
# __ __
# |__) |__| |__)
# | | | |
# ----------------------------------------------------------------------------------------------------------------
-
-# trust this project public key to trust the packages.
-ADD https://php.codecasts.rocks/php-alpine.rsa.pub /etc/apk/keys/php-alpine.rsa.pub
-
-# https://github.com/codecasts/php-alpine
-
-RUN apk add --update ca-certificates \
- && update-ca-certificates \
- && echo "@php https://php.codecasts.rocks/v3.9/php-7.3" >> /etc/apk/repositories \
- && apk add --update php@php \
- && apk add --update php-common@php \
- && apk add --update php-fpm@php \
- && apk add --update php-cgi@php \
- && apk add --update php-doc@php \
- && apk add --update php-dev@php \
- && apk add --update php-gd@php \
- && apk add --update php-curl@php \
- && apk add --update php-openssl@php \
- && apk add --update php-dom@php --repository http://nl.alpinelinux.org/alpine/edge/testing/ \
- && apk add --update php-fpm@php \
- && apk add --update php-phar@php \
- && apk add --update php-json@php \
- && apk add --update php-iconv@php \
- && apk add --update php-openssl@php \
- && apk add --update php-zlib@php \
- && apk add --update php-iconv@php \
- && apk add --update php-mbstring@php \
- && apk add --update php-xml@php \
- && apk add --update php-zip@php \
- && apk add --update php-ctype@php \
- && apk add --update php-session@php \
- # Database libraries.
- && apk add --update php-pdo@php \
- && apk add --update php-pgsql@php \
- && apk add --update php-pdo_pgsql@php \
- # Set alias for 'php' --> 'php7'
- && ln -s /usr/bin/php7 /usr/bin/php
-
-#RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
-
-# Deployer
-#RUN curl -L0 https://deployer.org/deployer.phar --output dep && chmod +x ./dep
+RUN apk --no-cache add php7 php7-fpm php7-mysqli php7-json php7-openssl php7-curl php7-zlib php7-xml \
+ php7-phar php7-intl php7-dom php7-xmlreader php7-ctype php7-mbstring php7-gd php7-common php7-doc \
+ php7-cgi php7-dev php7-iconv php7-zip php7-session php7-pdo php7-pgsql php7-pdo_pgsql php7-tokenizer \
+ curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
# ----------------------------------------------------------------------------------------------------------------
# __
# / ` __|__ __|__
# \__, | |
# ----------------------------------------------------------------------------------------------------------------
-RUN apk add --no-cache libc-dev \
- && apk add --no-cache libressl-dev \
- && apk add --no-cache gcc \
- && apk add --no-cache zlib-dev \
- && apk add --no-cache jpeg-dev \
- && apk add --no-cache boost-dev \
- && apk add --no-cache musl-dev \
- && apk add --no-cache cmake \
- && apk add libev-dev \
- && apk add linux-headers \
- && apk add libtool \
- && apk add libsodium-dev \
- && apk add automake
-
-
- # && apk add --no-cache build-base \
- #&& apk add openssl-dev
+#RUN apk add --no-cache libc-dev \
+# && apk add --no-cache libressl-dev \
+# && apk add --no-cache gcc \
+# && apk add --no-cache zlib-dev \
+# && apk add --no-cache jpeg-dev \
+# && apk add --no-cache boost-dev \
+# && apk add --no-cache musl-dev \
+# && apk add --no-cache cmake \
+# && apk add --no-cache libev-dev \
+# && apk add --no-cache linux-headers \
+# && apk add --no-cache libtool \
+# && apk add --no-cache libsodium-dev \
+# && apk add --no-cache utomake
RUN rm /var/cache/apk/*
-#COPY ./generated_output/third_party_libraries/AMQP_CPP_3_1_0 /quasar_source/generated_output/third_party_libraries/AMQP_CPP_3_1_0
-#RUN cd /quasar_source/generated_output/third_party_libraries/AMQP_CPP_3_1_0 \
-# && make \
-# && make install
-
-#COPY ./libraries/pre_compiled/libamqpcpp.so.3.1 /usr/lib/libamqpcpp.so.3.1
+RUN echo $'[PHP] \n\
+engine=On \n\
+short_open_tag=Off \n\
+precision=14 \n\
+output_buffering=4096 \n\
+zlib.output_compression=Off \n\
+implicit_flush=Off \n\
+serialize_precision=-1 \n\
+realpath_cache_size=4096k \n\
+realpath_cache_ttl=600 \n\
+zend.enable_gc=On \n\
+expose_php=Off \n\
+max_execution_time=30 \n\
+max_input_time=60 \n\
+memory_limit=256M \n\
+error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT \n\
+display_errors=On \n\
+display_startup_errors=On \n\
+log_errors=On \n\
+log_errors_max_len=1024 \n\
+ignore_repeated_errors=Off \n\
+ignore_repeated_source=Off \n\
+report_memleaks=On \n\
+html_errors=Off \n\
+variables_order="S" \n\
+request_order="GP" \n\
+register_argc_argv=On \n\
+auto_globals_jit=On \n\
+enable_post_data_reading=Off \n\
+post_max_size=8M \n\
+include_path = ".:/usr/share/php7" \n\
+enable_dl = Off \n\
+file_uploads=On \n\
+upload_max_filesize=2M \n\
+max_file_uploads=20 \n\
+allow_url_fopen=On \n\
+allow_url_include=Off \n\
+default_socket_timeout=60 \n\
+[CLI Server] \n\
+cli_server.color=On \n\
+[Date] \n\
+date.timezone=America/Chicago \n\
+[ODBC] \n\
+odbc.allow_persistent=On \n\
+odbc.check_persistent=On \n\
+odbc.max_persistent=-1 \n\
+odbc.max_links=-1 \n\
+odbc.defaultlrl=4096 \n\
+odbc.defaultbinmode=1 \n\
+[Interbase] \n\
+ibase.allow_persistent=-1 \n\
+[mysqlnd] \n\
+mysqlnd.collect_statistics=Off \n\
+mysqlnd.collect_memory_statistics=Off \n\
+[PostgreSQL] \n\
+pgsql.allow_persistent=On \n\
+pgsql.auto_reset_persistent=On \n\
+pgsql.max_persistent=-1 \n\
+pgsql.max_links=-1 \n\
+pgsql.ignore_notice=1 \n\
+pgsql.log_notice=1 \n\
+[bcmath] \n\
+bcmath.scale=0 \n\
+[Session] \n\
+session.save_handler=files \n\
+session.use_strict_mode=0 \n\
+session.use_cookies=0 \n\
+session.use_only_cookies=0\n\
+session.name=PHPSESSID \n\
+session.auto_start=-1\n\
+session.serialize_handler = php \n\
+session.gc_probability=1 \n\
+session.gc_divisor=1000 \n\
+session.gc_maxlifetime=1440 \n\
+session.cache_limiter=nocache \n\
+session.cache_expire=180 \n\
+session.use_trans_sid=0 \n\
+[Assertion] \n\
+zend.assertions=-1 \n\
+[Tidy] \n\
+tidy.clean_output=Off \n\
+[soap] \n\
+soap.wsdl_cache_enabled=1 \n\
+soap.wsdl_cache_dir="/tmp" \n\
+soap.wsdl_cache_ttl=86400 \n\
+soap.wsdl_cache_limit=5 \n\
+[ldap] \n\
+ldap.max_links=-1 \n\
+[opcache] \n\
+opcache.enable=1 \n\
+opcache.enable_cli=1 \n\
+opcache.file_cache_only=1 \n\
+opcache.file_cache=/tmp/php-opcache \n\
+opcache.validate_timestamps=1 \n\
+opcache.revalidate_freq=0 \n\
+op.cache.revalidate_path=1 \n\
+opcache.max_accelerated_files=20000 \n\
+opcache.memory_consumption=192 \n\
+opcache.max_wasted_percentage=10 \n\
+opcache.interned_strings_buffer=16 \n\
+opcache.fast_shutdown=1\n' > /etc/php7/php.ini
CMD ["bash", "/quasar_source/applications/asset_server/src/asset_server.sh"]
-
-
diff --git a/applications/asset_server/code_manager/.env.dist b/applications/asset_server/code_manager/.env.dist
index 414430e7f..494111bb6 100644
--- a/applications/asset_server/code_manager/.env.dist
+++ b/applications/asset_server/code_manager/.env.dist
@@ -1,4 +1,3 @@
-# define your env variables for the test env here
-KERNEL_CLASS='App\Kernel'
+KERNEL_CLASS='CodeManager\Kernel'
APP_SECRET='s$cretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
diff --git a/applications/asset_server/code_manager/.env.test b/applications/asset_server/code_manager/.env.test
index 414430e7f..494111bb6 100644
--- a/applications/asset_server/code_manager/.env.test
+++ b/applications/asset_server/code_manager/.env.test
@@ -1,4 +1,3 @@
-# define your env variables for the test env here
-KERNEL_CLASS='App\Kernel'
+KERNEL_CLASS='CodeManager\Kernel'
APP_SECRET='s$cretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
diff --git a/applications/asset_server/code_manager/.gitignore b/applications/asset_server/code_manager/.gitignore
index 50e13f759..683670f64 100644
--- a/applications/asset_server/code_manager/.gitignore
+++ b/applications/asset_server/code_manager/.gitignore
@@ -1,4 +1,3 @@
-
###> symfony/framework-bundle ###
/.env.local
/.env.local.php
diff --git a/applications/asset_server/code_manager/bin/console b/applications/asset_server/code_manager/bin/console
index 41a2aaf64..9f0f5331f 100755
--- a/applications/asset_server/code_manager/bin/console
+++ b/applications/asset_server/code_manager/bin/console
@@ -1,13 +1,13 @@
#!/usr/bin/env php
-run($input);
diff --git a/applications/asset_server/code_manager/composer.json b/applications/asset_server/code_manager/composer.json
index 6355224ec..011d24855 100644
--- a/applications/asset_server/code_manager/composer.json
+++ b/applications/asset_server/code_manager/composer.json
@@ -1,27 +1,33 @@
{
- "type": "project",
- "license": "MIT",
- "require": {
- "php": "7.3.*",
- "ext-ctype": "*",
- "ext-iconv": "*",
+ "type" : "project",
+ "license" : "MIT",
+ "name" : "code_manager/code_manager",
+ "description": "Automated processes to manage and build Quasar Source.",
+ "require" : {
+ "php" : "7.2.*",
+ "ext-ctype" : "*",
+ "ext-iconv" : "*",
"doctrine/doctrine-bundle": "^1.10",
- "symfony/console": "4.2.*",
- "symfony/dotenv": "4.2.*",
- "symfony/event-dispatcher": "4.2.*",
- "symfony/flex": "^1.1",
+ "doctrine/persistence" : "1.*",
+ "doctrine/reflection" : "1.*",
+ "symfony/config" : "4.2.*",
+ "symfony/console" : "4.*",
+ "symfony/doctrine-bridge" : "4.*",
+ "symfony/dotenv" : "4.*",
+ "symfony/event-dispatcher": "4.*",
+ "symfony/flex" : "^1.1",
"symfony/framework-bundle": "4.2.*",
- "symfony/monolog-bundle": "^3.3",
- "symfony/orm-pack": "^1.0",
- "symfony/phpunit-bridge": "4.2.*",
- "symfony/process": "4.2.*",
- "symfony/yaml": "4.2.*"
+ "symfony/monolog-bundle" : "^3.3",
+ "symfony/orm-pack" : "^1.0",
+ "symfony/phpunit-bridge" : "4.*",
+ "symfony/process" : "4.*",
+ "symfony/yaml" : "4.*"
},
"config": {
"preferred-install": {
"*": "dist"
},
- "sort-packages": true
+ "sort-packages": false
},
"autoload": {
"psr-4": {
diff --git a/applications/asset_server/code_manager/config/bootstrap.php b/applications/asset_server/code_manager/config/bootstrap.php
index 570bb924e..6ee0dca99 100644
--- a/applications/asset_server/code_manager/config/bootstrap.php
+++ b/applications/asset_server/code_manager/config/bootstrap.php
@@ -1,4 +1,4 @@
-=1.2)
if (is_array($env = @include dirname(__DIR__).'/.env.local.php')) {
$_ENV += $env;
-} elseif (!class_exists(Dotenv::class)) {
+} else if (!class_exists(Dotenv::class)) {
throw new RuntimeException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
} else {
// load all the .env files
diff --git a/applications/asset_server/code_manager/config/bundles.php b/applications/asset_server/code_manager/config/bundles.php
index d30aebb63..8754ce8dd 100644
--- a/applications/asset_server/code_manager/config/bundles.php
+++ b/applications/asset_server/code_manager/config/bundles.php
@@ -1,9 +1,8 @@
- ['all' => true],
Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true],
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
- Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
];
diff --git a/applications/asset_server/code_manager/config/packages/cache.yaml b/applications/asset_server/code_manager/config/packages/cache.yaml
index 93e620efa..1a63c7bd8 100644
--- a/applications/asset_server/code_manager/config/packages/cache.yaml
+++ b/applications/asset_server/code_manager/config/packages/cache.yaml
@@ -1,19 +1,2 @@
framework:
cache:
- # Put the unique name of your app here: the prefix seed
- # is used to compute stable namespaces for cache keys.
- #prefix_seed: your_vendor_name/app_name
-
- # The app cache caches to the filesystem by default.
- # Other options include:
-
- # Redis
- #app: cache.adapter.redis
- #default_redis_provider: redis://localhost
-
- # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
- #app: cache.adapter.apcu
-
- # Namespaced pools use the above "app" backend by default
- #pools:
- #my.dedicated.cache: ~
diff --git a/applications/asset_server/code_manager/config/packages/dev/monolog.yaml b/applications/asset_server/code_manager/config/packages/dev/monolog.yaml
index b1998da1a..71554587c 100644
--- a/applications/asset_server/code_manager/config/packages/dev/monolog.yaml
+++ b/applications/asset_server/code_manager/config/packages/dev/monolog.yaml
@@ -5,14 +5,6 @@ monolog:
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
channels: ["!event"]
- # uncomment to get logging in your browser
- # you may have to allow bigger header sizes in your Web server configuration
- #firephp:
- # type: firephp
- # level: info
- #chromephp:
- # type: chromephp
- # level: info
console:
type: console
process_psr_3_messages: false
diff --git a/applications/asset_server/code_manager/config/packages/doctrine.yaml b/applications/asset_server/code_manager/config/packages/doctrine.yaml
index dd7f8bbff..f7892d6fb 100644
--- a/applications/asset_server/code_manager/config/packages/doctrine.yaml
+++ b/applications/asset_server/code_manager/config/packages/doctrine.yaml
@@ -1,13 +1,8 @@
parameters:
- # Adds a fallback DATABASE_URL if the env var is not set.
- # This allows you to run cache:warmup even if your
- # environment variables are not available yet.
- # You should not need to change this value.
env(DATABASE_URL): 'pgsql://postgres:password@postgres_server:5432/postgres'
doctrine:
dbal:
- # configure these for your database server
driver: 'pdo_pgsql'
charset: utf8
url: '%env(DATABASE_URL)%'
@@ -22,9 +17,3 @@ doctrine:
dir: '%kernel.project_dir%/src/Entity'
prefix: 'CodeManager\Entity'
alias: CodeManager
-# App:
-# is_bundle: false
-# type: annotation
-# dir: '%kernel.project_dir%/src/Entity'
-# prefix: 'CodeManager\Entity'
-# alias: App
diff --git a/applications/asset_server/code_manager/config/packages/doctrine_migrations.yaml b/applications/asset_server/code_manager/config/packages/doctrine_migrations.yaml
deleted file mode 100644
index 3bf0fbcae..000000000
--- a/applications/asset_server/code_manager/config/packages/doctrine_migrations.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-doctrine_migrations:
- dir_name: '%kernel.project_dir%/src/Migrations'
- # namespace is arbitrary but should be different from App\Migrations
- # as migrations classes should NOT be autoloaded
- namespace: DoctrineMigrations
diff --git a/applications/asset_server/code_manager/config/packages/framework.yaml b/applications/asset_server/code_manager/config/packages/framework.yaml
index d3f884c4b..8ce131a8d 100644
--- a/applications/asset_server/code_manager/config/packages/framework.yaml
+++ b/applications/asset_server/code_manager/config/packages/framework.yaml
@@ -1,17 +1,4 @@
framework:
secret: '%env(APP_SECRET)%'
- #default_locale: en
- #csrf_protection: true
- #http_method_override: true
-
- # Enables session support. Note that the session will ONLY be started if you read or write from it.
- # Remove or comment this section to explicitly disable session support.
- session:
- handler_id: ~
- cookie_secure: auto
- cookie_samesite: lax
-
- #esi: true
- #fragments: true
php_errors:
log: true
diff --git a/applications/asset_server/code_manager/config/routes.yaml b/applications/asset_server/code_manager/config/routes.yaml
index 4a02b42ef..0f2d8fec7 100644
--- a/applications/asset_server/code_manager/config/routes.yaml
+++ b/applications/asset_server/code_manager/config/routes.yaml
@@ -1,7 +1,3 @@
-#index:
-# path: /
-# controller: App\Controller\DefaultController::index
-
qa_test:
path: /qa_test
controller: CodeManager\Controller\QAController::test_response
diff --git a/applications/asset_server/code_manager/config/services.yaml b/applications/asset_server/code_manager/config/services.yaml
index c7930983b..5f566c766 100644
--- a/applications/asset_server/code_manager/config/services.yaml
+++ b/applications/asset_server/code_manager/config/services.yaml
@@ -1,35 +1,12 @@
-# This file is the entry point to configure your own services.
-# Files in the packages/ subdirectory configure your dependencies.
-
-# Put parameters here that don't need to change on each machine where the app is deployed
-# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
-parameters:
-
services:
- # default configuration for services in *this* file
_defaults:
- autowire: true # Automatically injects dependencies in your services.
- autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
+ autowire: true
+ autoconfigure: true
- # makes classes in src/ available to be used as services
- # this creates a service per class whose id is the fully-qualified class name
CodeManager\:
resource: '../src/*'
exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
- # controllers are imported separately to make sure services can be injected
- # as action arguments even if you don't extend any base controller class
CodeManager\Controller\:
resource: '../src/Controller'
tags: ['controller.service_arguments']
-
- # add more service definitions when explicit configuration is needed
- # please note that last definitions always *replace* previous ones
-
-
- #CodeManager\EventListener\TestHighPriorityListener:
- # tags:
- # - {name: doctrine.event_listener, event: postPersist, prority: 10}
- #CodeManager\EventListener\TestLowPriorityListener:
- # tags:
- # - {name: doctrine.event_listener, event: postPersist, prority: 2}
diff --git a/applications/asset_server/code_manager/phpunit.xml.dist b/applications/asset_server/code_manager/phpunit.xml.dist
index 3034a39d6..76cf3a812 100644
--- a/applications/asset_server/code_manager/phpunit.xml.dist
+++ b/applications/asset_server/code_manager/phpunit.xml.dist
@@ -12,6 +12,8 @@
+
+
diff --git a/applications/asset_server/code_manager/src/Command/Abstractions/AbstractCommand.php b/applications/asset_server/code_manager/src/Command/Abstractions/AbstractCommand.php
deleted file mode 100644
index 0f8a7bab2..000000000
--- a/applications/asset_server/code_manager/src/Command/Abstractions/AbstractCommand.php
+++ /dev/null
@@ -1,37 +0,0 @@
-setName(self::COMMAND_NAME)
- ->setDescription(self::DESCRIPTION)
- ->setHelp(self::HELP);
- $this->add_required_arguments();
- }
-
- protected function execute(InputInterface $input, OutputInterface $output): ?int {
- $this->input = $input;
- $this->output = $output;
- return $this->run_command();
- }
-
- abstract protected function add_required_arguments(): void;
-
- abstract protected function run_command(): int;
-}
diff --git a/applications/asset_server/code_manager/src/Command/CodeHealthCheckCommand.php b/applications/asset_server/code_manager/src/Command/CodeHealthCheckCommand.php
index eaefe1c6e..4e4e054ab 100644
--- a/applications/asset_server/code_manager/src/Command/CodeHealthCheckCommand.php
+++ b/applications/asset_server/code_manager/src/Command/CodeHealthCheckCommand.php
@@ -1,44 +1,69 @@
-code_builder = $code_builder;
+ $this->db_health = $db_health;
}
protected function configure(): void {
- $this
+ $this->setName(self::COMMAND_NAME)
->setDescription('Runs a code health check.')
->setHelp('Runs a health check across all files and settings for the all local code files in this project.');
}
- protected function execute(InputInterface $input, OutputInterface $output) {
- $this->code_builder->prepare_code_health_check($this->getApplication());
- $this->code_builder->run_code_health_check();
+ /**
+ * Executes the current command.
+ *
+ * This method is not abstract because you can use this class
+ * as a concrete class. In this case, instead of defining the
+ * execute() method, you set the code to execute by passing
+ * a Closure to the setCode() method.
+ *
+ * @param InputInterface $input
+ * @param OutputInterface $output
+ * @return int|null null or 0 if everything went fine, or an error code
+ *
+ * @see setCode()
+ */
+ protected function execute(InputInterface $input, OutputInterface $output): ?int {
+ $this->db_health->prepare_for_build_step($this->getApplication(), $this->code_builder);
+ $this->code_builder->run_code_health_check($this->db_health);
#var_dump('TODO: run_composer_self_update');
- #$c = RUN::run_composer_self_update(PATH::get(PATH::COMPOSER));
+ #$c = RUN::run_composer_self_update();
#var_dump($c);
return 0;
diff --git a/applications/asset_server/code_manager/src/Command/Prepared/DBSchemaUpdate.php b/applications/asset_server/code_manager/src/Command/Prepared/DBSchemaUpdate.php
index 96a54fd66..a1cb0674b 100644
--- a/applications/asset_server/code_manager/src/Command/Prepared/DBSchemaUpdate.php
+++ b/applications/asset_server/code_manager/src/Command/Prepared/DBSchemaUpdate.php
@@ -1,18 +1,23 @@
- null,
'--no-interaction' => null,
'--force' => null
diff --git a/applications/asset_server/code_manager/src/Command/Prepared/DBSchemaValidate.php b/applications/asset_server/code_manager/src/Command/Prepared/DBSchemaValidate.php
index 3733fd5bf..98454285a 100644
--- a/applications/asset_server/code_manager/src/Command/Prepared/DBSchemaValidate.php
+++ b/applications/asset_server/code_manager/src/Command/Prepared/DBSchemaValidate.php
@@ -1,12 +1,14 @@
-exit_code !== 0) {
# DBG::throw_exception('DB Health CMD had non 0 exit code{' . $this->exit_code . '} with output {' . $this->results . '}');
@@ -26,11 +34,11 @@ protected function on_command_completed(): void {
$output = STR::split_into_non_empty_lines($this->results);
if (count($output) !== 6) {
- DBG::throw_exception('DB Check has invalid output<<' . json_encode($output) . '>>');
+ throw LogicException::invalid_function_call('on_command_completed', 'DB Check has invalid output<<' . json_encode($output) . '>>');
}
- $this->is_healthy_mapping = STR::contains($output[2], '[OK]');
- $this->is_healthy_schema = STR::contains($output[5], '[OK]');
+ $this->is_healthy_mapping = STR::has($output[2], '[OK]');
+ $this->is_healthy_schema = STR::has($output[5], '[OK]');
}
public function is_healthy_schema(): bool {
diff --git a/applications/asset_server/code_manager/src/Command/Abstractions/PreparedCommand.php b/applications/asset_server/code_manager/src/Command/Prepared/PreparedCommand.php
similarity index 69%
rename from applications/asset_server/code_manager/src/Command/Abstractions/PreparedCommand.php
rename to applications/asset_server/code_manager/src/Command/Prepared/PreparedCommand.php
index d0c0db7fd..18724b867 100644
--- a/applications/asset_server/code_manager/src/Command/Abstractions/PreparedCommand.php
+++ b/applications/asset_server/code_manager/src/Command/Prepared/PreparedCommand.php
@@ -1,18 +1,17 @@
-set_name($name);
+ /**
+ * @param Command $command
+ * @param array $input
+ */
+ public function __construct(Command $command, array $input=[]) {
$this->cmd = $command;
$this->output = new BufferedOutput();
$this->input = new ArrayInput($input);
}
+ /**
+ * @throws Exception
+ */
public function run_command(): void {
$this->exit_code = $this->cmd->run($this->input, $this->output);
$this->results = $this->output->fetch();
diff --git a/applications/asset_server/code_manager/src/Controller/QAController.php b/applications/asset_server/code_manager/src/Controller/QAController.php
index 05e29fff0..e5c09f757 100644
--- a/applications/asset_server/code_manager/src/Controller/QAController.php
+++ b/applications/asset_server/code_manager/src/Controller/QAController.php
@@ -1,9 +1,9 @@
-files = new ArrayCollection();
+ # $this->directories = new ArrayCollection();
+ #}
+
+ public function cache_needs_update(bool $trigger_update): bool {
+ return false;
+ }
+
+ public function cache_update(bool $update_state=true): void {}
+
+ public function on_event_born($data): void {}
+
+ public function cache_calculate(string $cache_key) {}
+}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Files/EntityFile.php b/applications/asset_server/code_manager/src/Entity/Abstractions/File/EntityFile.php
similarity index 65%
rename from applications/asset_server/code_manager/src/Entity/Abstractions/Files/EntityFile.php
rename to applications/asset_server/code_manager/src/Entity/Abstractions/File/EntityFile.php
index 9f494b1a1..6fabbfda0 100644
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Files/EntityFile.php
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/File/EntityFile.php
@@ -1,4 +1,4 @@
- self::TYPE_CSS,
- UFO::EXTENSION_XML => self::TYPE_XML,
- UFO::EXTENSION_HTML => self::TYPE_HTML,
- UFO::EXTENSION_JSON => self::TYPE_JSON,
- UFO::EXTENSION_SHADER_VERTEX => self::TYPE_SHADER_VERTEX,
- UFO::EXTENSION_SHADER_FRAGMENT => self::TYPE_SHADER_FRAGMENT,
- UFO::EXTENSION_WEB_MANIFEST => self::TYPE_WEB_MANIFEST,
- UFO::EXTENSION_YAML => self::TYPE_YAML
+ EXTENSION::CSS => self::TYPE_CSS,
+ EXTENSION::XML => self::TYPE_XML,
+ EXTENSION::HTML => self::TYPE_HTML,
+ EXTENSION::JSON => self::TYPE_JSON,
+ EXTENSION::SHADER_VERTEX => self::TYPE_SHADER_VERTEX,
+ EXTENSION::SHADER_FRAGMENT => self::TYPE_SHADER_FRAGMENT,
+ EXTENSION::WEB_MANIFEST => self::TYPE_WEB_MANIFEST,
+ EXTENSION::YAML => self::TYPE_YAML
];
public const FLAG_MINIFY = 'minify';
@@ -141,29 +126,20 @@ public function before_remove(): void {
private $content;
/**
- * @var bool
- * @Column(name="is_gzipped", type="boolean", nullable=false, unique=false)
- */
- private $is_gzipped;
-
- /**
- * @var bool
- * @Column(name="is_minified", type="boolean", nullable=false, unique=false)
+ * @inheritDoc
*/
- private $is_minified;
-
- /**
- * @var bool
- * @Column(name="is_pre_processed", type="boolean", nullable=false, unique=false)
- */
- private $is_pre_processed;
-
- public function cache_set(string $key): void {
+ public function cache_calculate(string $key) {
if ($key === self::CACHE_KEY_SHA512_SUM) {
- $this->cached_values[$key] = UFO::get_sha512sum($this->getFullPath());
+ return UFO::get_sha512sum($this->getFullPath());
}
+ return null;
}
+ /**
+ * @param string $path
+ * @return int
+ * @throws LogicException
+ */
public static function get_file_type_from_path(string $path) : int {
$all_extensions = PATH::get_all_extensions($path);
foreach (self::EXTENSION_TO_TYPE as $extension => $type) {
@@ -171,8 +147,7 @@ public static function get_file_type_from_path(string $path) : int {
return $type;
}
}
- DBG::throw_exception('No file type match for {' . $path . '}');
- return self::TYPE_NO_MATCH;
+ throw LogicException::invalid_function_call('get_file_type_from_path', 'No file type match for {' . $path . '}');
}
public function get_flags(): array {
@@ -209,15 +184,14 @@ public function set_flag(string $key, bool $value): void {
* @throws Exception
*/
public function on_event_born($full_path): void {
- $current_date_time = TIME::now();
- $this->setFirstCached($current_date_time);
+ $this->setUnixTimestamp0(-1);
$this->setFullPath($full_path);
$this->setTypeID(self::get_file_type_from_path($full_path));
$this->setRank(0);
$this->setIsGzipped(false);
$this->setIsMinified(false);
$this->setIsPreProcessed(false);
- $this->setName(UPO::get_file_name($full_path));
+ $this->setText0(UPO::get_file_name($full_path));
$this->setExtension(UPO::get_ending_extension($full_path));
$this->cache_update(false);
}
@@ -234,12 +208,15 @@ public function cache_needs_update(bool $trigger_update): bool {
}
/**
- * When DB values are out of date compared to the file's current values, this function is called to re-update those values.
- * @param bool $update_state
+ * Called when DB values are out of date compared to the file's current values (to then update them if needed).
+ *
+ * @param bool $update_state [If the Entity state should be updated.]
+ *
+ * @return void
* @throws Exception
*/
- public function cache_update(bool $update_state=true): void {
- $this->setLastCached(TIME::now());
+ public function cache_update(bool $update_state = true): void {
+ $this->setUnixTimestampEnd(-1);
$this->setSizeInBytes(UFO::get_size($this->full_path));
$this->setSha512sum($this->cache_get(self::CACHE_KEY_SHA512_SUM));
if ($update_state) {
@@ -250,7 +227,7 @@ public function cache_update(bool $update_state=true): void {
/**
* @return EntityDirectory
*/
- public function getDirectory() : EntityDirectory {
+ public function getDirectory(): EntityDirectory {
return $this->directory;
}
@@ -258,19 +235,19 @@ public function getDirectory() : EntityDirectory {
* @param $directory
* @return self
*/
- public function setDirectory(EntityDirectory $directory) : self {
+ public function setDirectory(EntityDirectory $directory): self {
$this->directory = $directory;
return $this;
}
- public function getFullName() : string {
+ public function getFullName(): string {
return $this->name . $this->extension;
}
/**
* @return mixed
*/
- public function getExtension() : string {
+ public function getExtension(): string {
return $this->extension;
}
@@ -278,7 +255,7 @@ public function getExtension() : string {
* @param mixed $extension
* @return self
*/
- public function setExtension($extension) : self {
+ public function setExtension($extension): self {
$this->extension = $extension;
return $this;
}
@@ -384,7 +361,7 @@ public function to_full_string(?EntityFile $relative_to=null) : string {
if ($relative_to !== null) {
$base = $this->getSizeInBytes();
$new = $relative_to->getSizeInBytes();
- $dif = MATH::get_percentage_decreased($base, $new, true);
+ $dif = MATH::percentage_decreased($base, $new, true);
$info .= "\tsize{" . $base . '} to {' . $new . '}, reduction of(' . $dif . ')' . PHP_EOL;
} else {
$info .= "\tsize{" . $this->getSizeInBytes() . '}' . PHP_EOL;
@@ -403,58 +380,10 @@ public function __toString() {
return 'EntityFile{' . $this->getFullPath() . '}';
}
- /**
- * @return bool
- */
- public function getIsGzipped() : bool {
- return $this->is_gzipped;
- }
-
- /**
- * @param bool $is_gzipped
- * @return self
- */
- public function setIsGzipped(bool $is_gzipped): self {
- $this->is_gzipped = $is_gzipped;
- return $this;
- }
-
- /**
- * @return bool
- */
- public function getIsMinified(): bool {
- return $this->is_minified;
- }
-
- /**
- * @param bool $is_minified
- * @return self
- */
- public function setIsMinified(bool $is_minified): self {
- $this->is_minified = $is_minified;
- return $this;
- }
-
- /**
- * @return bool
- */
- public function getIsPreProcessed(): bool {
- return $this->is_pre_processed;
- }
-
- /**
- * @param bool $is_pre_processed
- * @return self
- */
- public function setIsPreProcessed(bool $is_pre_processed): self {
- $this->is_pre_processed = $is_pre_processed;
- return $this;
- }
-
// ------ U T I L I T Y ------
public function get_full_name_minified() : string {
- return $this->name . UFO::EXTENSION_MINIFIED . $this->extension;
+ return $this->name . EXTENSION::MINIFIED . $this->extension;
}
public function get_full_name_processed() : string {
@@ -462,6 +391,6 @@ public function get_full_name_processed() : string {
}
public function get_full_name_gzipped() : string {
- return $this->getFullName() . UFO::EXTENSION_GZIPPED;
+ return $this->getFullName() . EXTENSION::GZIPPED;
}
}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/File/EntityFileType.php b/applications/asset_server/code_manager/src/Entity/Abstractions/File/EntityFileType.php
new file mode 100644
index 000000000..bcbb0e047
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/File/EntityFileType.php
@@ -0,0 +1,30 @@
+files = new ArrayCollection();
- $this->directories = new ArrayCollection();
- }
-
- /**
- * @return mixed
- */
- public function getPath() {
- return $this->path;
- }
-
- /**
- * @param mixed $path
- * @return self
- */
- public function setPath($path) : self {
- $this->path = $path;
- return $this;
- }
-
- /**
- * @return mixed
- */
- public function getParentDirectory() {
- return $this->parent_directory;
- }
-
- /**
- * @param mixed $parent_directory
- * @return self
- */
- public function setParentDirectory($parent_directory) : self {
- $this->parent_directory = $parent_directory;
- return $this;
- }
-
- /**
- * @return mixed
- */
- public function getFiles() : Collection {
- return $this->files;
- }
-
- /**
- * @param mixed $files
- * @return self
- */
- public function setFiles($files) : self {
- $this->files = $files;
- return $this;
- }
-
- /**
- * @return mixed
- */
- public function getDirectories() {
- return $this->directories;
- }
-
- /**
- * @param mixed $directories
- * @return self
- */
- public function setDirectories($directories) : self {
- $this->directories = $directories;
- return $this;
- }
-
- public function cache_needs_update(bool $trigger_update): bool {
- return false;
- }
-
- public function cache_update(bool $update_state=true): void {}
-
- public function on_event_born($data): void {}
-
- public function cache_set(string $cache_key): void {}
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldBoolean.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldBoolean.php
new file mode 100644
index 000000000..07120b68d
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldBoolean.php
@@ -0,0 +1,34 @@
+bool0;
+ }
+
+ /**
+ * @param bool $bool0
+ * @return self
+ */
+ public function setBooleanValue0(bool $bool0): self {
+ $this->bool0 = $bool0;
+ return $this;
+ }
+}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldBooleanThree.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldBooleanThree.php
new file mode 100644
index 000000000..9999d8a56
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldBooleanThree.php
@@ -0,0 +1,31 @@
+bool2;
+ }
+
+ /**
+ * @param bool $bool2
+ * @return self
+ */
+ public function setBooleanValue2(bool $bool2): self {
+ $this->bool2 = $bool2;
+ return $this;
+ }
+}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldBooleanTwo.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldBooleanTwo.php
new file mode 100644
index 000000000..651dcff6f
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldBooleanTwo.php
@@ -0,0 +1,31 @@
+bool1;
+ }
+
+ /**
+ * @param bool $bool1
+ * @return self
+ */
+ public function setBooleanValue1(bool $bool1): self {
+ $this->bool1 = $bool1;
+ return $this;
+ }
+}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldLibVersionUpdated.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldLibVersionUpdated.php
deleted file mode 100644
index 138ec6446..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldLibVersionUpdated.php
+++ /dev/null
@@ -1,30 +0,0 @@
-lib_version_updated;
- }
-
- /**
- * @param bool $lib_version_updated
- * @return self
- */
- public function setLibVersionUpdated(bool $lib_version_updated): self {
- $this->lib_version_updated = $lib_version_updated;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldOptional.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldOptional.php
deleted file mode 100644
index 477d96b17..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Boolean/FieldOptional.php
+++ /dev/null
@@ -1,30 +0,0 @@
-optional;
- }
-
- /**
- * @param bool $optional
- * @return self
- */
- public function setOptional(bool $optional): self {
- $this->optional = $optional;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Enum/EntityFields.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Enum/EntityFields.php
new file mode 100644
index 000000000..9a20c8c88
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Enum/EntityFields.php
@@ -0,0 +1,12 @@
+duration;
- }
-
- /**
- * @param float $duration
- * @return self
- */
- public function setDuration(float $duration): self {
- $this->duration = $duration;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Decimal/FieldFloat.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Decimal/FieldFloat.php
new file mode 100644
index 000000000..895f5db9d
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Decimal/FieldFloat.php
@@ -0,0 +1,30 @@
+float0;
+ }
+
+ /**
+ * @param float $float0
+ * @return self
+ */
+ public function setFloat0(float $float0): self {
+ $this->float0 = $float0;
+ return $this;
+ }
+}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldCashAmount.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldCashAmount.php
deleted file mode 100644
index e1664f9d7..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldCashAmount.php
+++ /dev/null
@@ -1,32 +0,0 @@
-amount;
- }
-
- /**
- * @param int $amount
- * @return self
- */
- public function setAmount(int $amount): self {
- $this->amount = $amount;
- return $this;
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldInt.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldInt.php
new file mode 100644
index 000000000..bc8ca51e5
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldInt.php
@@ -0,0 +1,41 @@
+int0;
+ }
+
+ /**
+ * @param int $int0
+ * @return self
+ */
+ public function setInt0(int $int0): self {
+ $this->int0 = $int0;
+ return $this;
+ }
+
+ /**
+ * @param int $n
+ * @return bool
+ */
+ public function isInt0EqualTo(int $n): bool {
+ return $this->int0 === $n;
+ }
+
+}
+
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldIntFour.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldIntFour.php
new file mode 100644
index 000000000..50c1dfa18
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldIntFour.php
@@ -0,0 +1,34 @@
+int3;
+ }
+
+ /**
+ * @param int $int3
+ * @return self
+ */
+ public function setInt3(int $int3): self {
+ $this->int3 = $int3;
+ return $this;
+ }
+
+}
+
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldIntThree.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldIntThree.php
new file mode 100644
index 000000000..84e0b50a6
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldIntThree.php
@@ -0,0 +1,34 @@
+int2;
+ }
+
+ /**
+ * @param int $int2
+ * @return self
+ */
+ public function setInt2(int $int2): self {
+ $this->int2 = $int2;
+ return $this;
+ }
+
+}
+
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldIntTwo.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldIntTwo.php
new file mode 100644
index 000000000..cde341a80
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldIntTwo.php
@@ -0,0 +1,34 @@
+int1;
+ }
+
+ /**
+ * @param int $int1
+ * @return self
+ */
+ public function setInt1(int $int1): self {
+ $this->int1 = $int1;
+ return $this;
+ }
+
+}
+
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumElements.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumElements.php
deleted file mode 100644
index 84366c8ab..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumElements.php
+++ /dev/null
@@ -1,30 +0,0 @@
-number_of_elements;
- }
-
- /**
- * @param int $number_of_elements
- * @return self
- */
- public function setNumElements(int $number_of_elements): self {
- $this->number_of_elements = $number_of_elements;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumErrors.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumErrors.php
deleted file mode 100644
index 770060a7a..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumErrors.php
+++ /dev/null
@@ -1,31 +0,0 @@
-num_errors;
- }
-
- /**
- * @param int $num_errors
- * @return self
- */
- public function setNumErrors(int $num_errors): self {
- $this->num_errors = $num_errors;
- return $this;
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumFailed.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumFailed.php
deleted file mode 100644
index 23c94b6be..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumFailed.php
+++ /dev/null
@@ -1,31 +0,0 @@
-num_failed;
- }
-
- /**
- * @param int $num_failed
- * @return self
- */
- public function setNumFailed(int $num_failed): self {
- $this->num_failed = $num_failed;
- return $this;
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumSkipped.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumSkipped.php
deleted file mode 100644
index 7235d2f84..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldNumSkipped.php
+++ /dev/null
@@ -1,30 +0,0 @@
-num_skipped;
- }
-
- /**
- * @param int $num_skipped
- * @return self
- */
- public function setNumSkipped(int $num_skipped): self {
- $this->num_skipped = $num_skipped;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldRank.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldRank.php
deleted file mode 100644
index 68094d59a..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldRank.php
+++ /dev/null
@@ -1,33 +0,0 @@
-rank;
- }
-
- /**
- * @param int $rank
- * @return self
- */
- public function setRank(int $rank): self {
- $this->rank = $rank;
- return $this;
- }
-
-}
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldSizeInBytes.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldSizeInBytes.php
deleted file mode 100644
index e25a8fa0b..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldSizeInBytes.php
+++ /dev/null
@@ -1,29 +0,0 @@
-size_in_bytes;
- }
-
- /**
- * @param int $sizeInBytes
- * @return self
- */
- public function setSizeInBytes(int $sizeInBytes) : self {
- $this->size_in_bytes = $sizeInBytes;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldTypeID.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldTypeID.php
deleted file mode 100644
index 22a500267..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Number/Whole/FieldTypeID.php
+++ /dev/null
@@ -1,35 +0,0 @@
-type_id;
- }
-
- /**
- * @param int $type_id
- * @return self
- */
- public function setTypeID(int $type_id) : self {
- $this->type_id = $type_id;
- return $this;
- }
-
-}
-
-
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldEntityPointer.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldEntityPointer.php
new file mode 100644
index 000000000..3e835e5c8
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldEntityPointer.php
@@ -0,0 +1,31 @@
+entity_pointer0;
+ }
+
+ /**
+ * @param int $entity_0_id
+ * @return self
+ */
+ public function setEntityPointer0(int $entity_0_id): self {
+ $this->entity_pointer0 = $entity_0_id;
+ return $this;
+ }
+
+}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldEntityPointerTwo.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldEntityPointerTwo.php
new file mode 100644
index 000000000..469cb63e4
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldEntityPointerTwo.php
@@ -0,0 +1,31 @@
+entity_pointer1;
+ }
+
+ /**
+ * @param int $entity_1_id
+ * @return self
+ */
+ public function setEntityPointer1(int $entity_1_id): self {
+ $this->entity_pointer1 = $entity_1_id;
+ return $this;
+ }
+
+}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldFromUser.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldFromUser.php
deleted file mode 100644
index 2c510f312..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldFromUser.php
+++ /dev/null
@@ -1,32 +0,0 @@
-fromUser;
- }
-
- /**
- * @param EntityUser $fromUser
- * @return self
- */
- public function setFromUser(EntityUser $fromUser): self {
- $this->fromUser = $fromUser;
- return $this;
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldFromVendor.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldFromVendor.php
deleted file mode 100644
index 452a2975d..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldFromVendor.php
+++ /dev/null
@@ -1,32 +0,0 @@
-fromVendor;
- }
-
- /**
- * @param EntityVendor $fromVendor
- * @return self
- */
- public function setFromVendor(EntityVendor $fromVendor): self {
- $this->fromVendor = $fromVendor;
- return $this;
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToBankTransactionType.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToBankTransactionType.php
deleted file mode 100644
index 328d42943..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToBankTransactionType.php
+++ /dev/null
@@ -1,30 +0,0 @@
-type;
- }
-
- /**
- * @param EntityBankTransactionType $type
- * @return self
- */
- public function setType(EntityBankTransactionType $type): self {
- $this->type = $type;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToDBSnapshot.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToDBSnapshot.php
deleted file mode 100644
index 0e997ce8e..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToDBSnapshot.php
+++ /dev/null
@@ -1,31 +0,0 @@
-db_snapshot;
- }
-
- /**
- * @param EntityDBSnapshot $db_snapshot
- * @return self
- */
- public function setDbSnapshot(EntityDBSnapshot $db_snapshot): self {
- $this->db_snapshot = $db_snapshot;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToEntityFile.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToEntityFile.php
deleted file mode 100644
index 86baa33c7..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToEntityFile.php
+++ /dev/null
@@ -1,36 +0,0 @@
-
- * @return EntityFile
- */
- public function getEntityFile(bool $raise_exception_if_null=false): EntityFile {
- if ($raise_exception_if_null && $this->entity_file === null) {
- DBG::throw_exception('EntityQAReport does not have {entity_file} set.');
- }
- return $this->entity_file;
- }
-
- /**
- * @param EntityFile $entity_file
- * @return self
- */
- public function setEntityFile(EntityFile $entity_file): self {
- $this->entity_file = $entity_file;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToQAReport.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToQAReport.php
deleted file mode 100644
index 12b3ec2a0..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToQAReport.php
+++ /dev/null
@@ -1,31 +0,0 @@
-qa_results;
- }
-
- /**
- * @param EntityQAReport $qa_results
- * @return self
- */
- public function setQaResults(EntityQAReport $qa_results): self {
- $this->qa_results = $qa_results;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToUserRole.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToUserRole.php
deleted file mode 100644
index d9d8deb37..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToUserRole.php
+++ /dev/null
@@ -1,31 +0,0 @@
-role;
- }
-
- /**
- * @param EntityUserRole $role
- * @return self
- */
- public function setRole(EntityUserRole $role): self {
- $this->role = $role;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToVendorCategory.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToVendorCategory.php
deleted file mode 100644
index 03716befa..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldHasPointerToVendorCategory.php
+++ /dev/null
@@ -1,31 +0,0 @@
-category;
- }
-
- /**
- * @param EntityVendorCategory $category
- * @return self
- */
- public function setCategory(EntityVendorCategory $category): self {
- $this->category = $category;
- return $this;
- }
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldToUser.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldToUser.php
deleted file mode 100644
index b6b7c6de8..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldToUser.php
+++ /dev/null
@@ -1,32 +0,0 @@
-toUser;
- }
-
- /**
- * @param EntityUser $toUser
- * @return self
- */
- public function setToUser(EntityUser $toUser): self {
- $this->toUser = $toUser;
- return $this;
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldToVendor.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldToVendor.php
deleted file mode 100644
index bd1aaacc3..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Relations/FieldToVendor.php
+++ /dev/null
@@ -1,32 +0,0 @@
-toVendor;
- }
-
- /**
- * @param EntityVendor $toVendor
- * @return self
- */
- public function setToVendor(EntityVendor $toVendor): self {
- $this->toVendor = $toVendor;
- return $this;
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldDescription.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldDescription.php
deleted file mode 100644
index ab6599d87..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldDescription.php
+++ /dev/null
@@ -1,33 +0,0 @@
-description;
- }
-
- /**
- * @param string $description
- * @return self
- */
- public function setDescription(string $description): self {
- $this->description = $description;
- return $this;
- }
-
-}
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldDetails.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldDetails.php
deleted file mode 100644
index f35ea0bbb..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldDetails.php
+++ /dev/null
@@ -1,35 +0,0 @@
-details;
- }
-
- /**
- * @param string $details
- * @return self
- */
- public function setDetails(string $details): self {
- $this->details = $details;
- return $this;
- }
-
-}
-
-
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldEmail.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldEmail.php
deleted file mode 100644
index 9239dae83..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldEmail.php
+++ /dev/null
@@ -1,35 +0,0 @@
-email;
- }
-
- /**
- * @param string $email
- * @return self
- */
- public function setEmail(string $email): self {
- $this->email = $email;
- return $this;
- }
-
-}
-
-
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldJSONMetaData.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldJSONMetaData.php
deleted file mode 100644
index bfa1e3d92..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldJSONMetaData.php
+++ /dev/null
@@ -1,35 +0,0 @@
-json_meta_data;
- }
-
- /**
- * @param string $json_meta_data
- * @return self
- */
- public function setJSONMetaData(string $json_meta_data): self {
- $this->json_meta_data = $json_meta_data;
- return $this;
- }
-
-}
-
-
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldName.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldName.php
deleted file mode 100644
index 2f5a899fd..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldName.php
+++ /dev/null
@@ -1,35 +0,0 @@
-name;
- }
-
- /**
- * @param string $name
- * @return self
- */
- public function setName(string $name): self {
- $this->name = $name;
- return $this;
- }
-
-}
-
-
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldPassword.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldPassword.php
deleted file mode 100644
index d42b1453f..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldPassword.php
+++ /dev/null
@@ -1,33 +0,0 @@
-password;
- }
-
- /**
- * @param string $password
- * @return self
- */
- public function setPassword(string $password): self {
- $this->password = $password;
- return $this;
- }
-
-}
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldSHA512Sum.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldSHA512Sum.php
deleted file mode 100644
index dd7d92d89..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldSHA512Sum.php
+++ /dev/null
@@ -1,32 +0,0 @@
-sha512sum;
- }
-
- /**
- * @param string $sha512sum
- * @return self
- */
- public function setSha512sum(string $sha512sum) : self {
- $this->sha512sum = $sha512sum;
- return $this;
- }
-
-}
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldText.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldText.php
new file mode 100644
index 000000000..67cdbd850
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldText.php
@@ -0,0 +1,35 @@
+text0;
+ }
+
+ /**
+ * @param string $text0
+ * @return self
+ */
+ public function setText0(string $text0): self {
+ $this->text0 = $text0;
+ return $this;
+ }
+
+}
+
+
+
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldTextThree.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldTextThree.php
new file mode 100644
index 000000000..7eb364a67
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldTextThree.php
@@ -0,0 +1,34 @@
+text2;
+ }
+
+ /**
+ * @param string $text2
+ * @return self
+ */
+ public function setText2(string $text2): self {
+ $this->text2 = $text2;
+ return $this;
+ }
+}
+
+
+
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldTextTwo.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldTextTwo.php
new file mode 100644
index 000000000..000945e2d
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldTextTwo.php
@@ -0,0 +1,36 @@
+text1;
+ }
+
+ /**
+ * @param string $text1
+ * @return self
+ */
+ public function setText1(string $text1): self {
+ $this->text1 = $text1;
+ return $this;
+ }
+
+}
+
+
+
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldVersionLatest.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldVersionLatest.php
deleted file mode 100644
index 52c8b6acc..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldVersionLatest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-version_latest;
- }
-
- /**
- * @param string $version_latest
- * @return self
- */
- public function setVersionLatest(string $version_latest): self {
- $this->version_latest = $version_latest;
- return $this;
- }
-}
-
-
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldVersionLocal.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldVersionLocal.php
deleted file mode 100644
index c487b47b7..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Text/FieldVersionLocal.php
+++ /dev/null
@@ -1,34 +0,0 @@
-version_local;
- }
-
- /**
- * @param string $version_local
- * @return self
- */
- public function setVersionLocal(string $version_local): self {
- $this->version_local = $version_local;
- return $this;
- }
-}
-
-
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldCreatedAt.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldCreatedAt.php
deleted file mode 100644
index 8628fa301..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldCreatedAt.php
+++ /dev/null
@@ -1,36 +0,0 @@
-created_at;
- }
-
- /**
- * @param DateTime $created_at
- * @return self
- */
- public function setCreatedAt(DateTime $created_at): self {
- $this->created_at = $created_at;
- return $this;
- }
-
-}
-
-
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldFirstCached.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldFirstCached.php
deleted file mode 100644
index de7f1fba4..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldFirstCached.php
+++ /dev/null
@@ -1,36 +0,0 @@
-first_cached;
- }
-
- /**
- * @param DateTime $first_cached
- * @return self
- */
- public function setFirstCached(DateTime $first_cached): self {
- $this->first_cached = $first_cached;
- return $this;
- }
-
-}
-
-
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldLastCached.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldLastCached.php
deleted file mode 100644
index eddd78010..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldLastCached.php
+++ /dev/null
@@ -1,36 +0,0 @@
-last_cached;
- }
-
- /**
- * @param DateTime $last_cached
- * @return self
- */
- public function setLastCached(DateTime $last_cached): self {
- $this->last_cached = $last_cached;
- return $this;
- }
-
-}
-
-
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldLastChecked.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldLastChecked.php
deleted file mode 100644
index 823297306..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldLastChecked.php
+++ /dev/null
@@ -1,33 +0,0 @@
-last_checked;
- }
-
- /**
- * @param DateTime $last_checked
- * @return self
- */
- public function setLastChecked(DateTime $last_checked): self {
- $this->last_checked = $last_checked;
- return $this;
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldLastLogin.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldLastLogin.php
deleted file mode 100644
index dd14ad9f1..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldLastLogin.php
+++ /dev/null
@@ -1,33 +0,0 @@
-last_login;
- }
-
- /**
- * @param DateTime $last_login
- * @return self
- */
- public function setLastLogin(DateTime $last_login): self {
- $this->last_login = $last_login;
- return $this;
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldRanAt.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldRanAt.php
deleted file mode 100644
index 2f6630442..000000000
--- a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldRanAt.php
+++ /dev/null
@@ -1,39 +0,0 @@
-ran_at;
- }
-
- /**
- * @param DateTime $ran_at
- * @return self
- */
- public function setRanAt(DateTime $ran_at): self {
- $this->ran_at = $ran_at;
- return $this;
- }
-
- public function setRanAtNow(): self {
- return $this->setRanAt(TIME::now());
- }
-
-}
-
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldUnixTime.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldUnixTime.php
new file mode 100644
index 000000000..e611ecc92
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldUnixTime.php
@@ -0,0 +1,38 @@
+unix_timestamp0;
+ }
+
+ /**
+ * @param int $unix_timestamp0
+ * @return self
+ */
+ public function setUnixTimestamp0(int $unix_timestamp0=-1): self {
+ if ($unix_timestamp0 === -1) {
+ $this->unix_timestamp0 = UNIX::now();
+ } else {
+ $this->unix_timestamp0 = $unix_timestamp0;
+ }
+ return $this;
+ }
+
+}
+
diff --git a/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldUnixTimeTwo.php b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldUnixTimeTwo.php
new file mode 100644
index 000000000..8cd5ab3cf
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Abstractions/Traits/Time/FieldUnixTimeTwo.php
@@ -0,0 +1,39 @@
+unix_timestamp1;
+ }
+
+ /**
+ * @param int $unix_timestamp1
+ * @return self
+ */
+ public function setUnixTimestamp1(int $unix_timestamp1=-1): self {
+ if ($unix_timestamp1 === -1) {
+ $this->unix_timestamp1 = UNIX::now();
+ } else {
+ $this->unix_timestamp1 = $unix_timestamp1;
+ }
+ return $this;
+ }
+
+}
+
diff --git a/applications/asset_server/code_manager/src/Entity/CodeManager/EntityCodeBuild.php b/applications/asset_server/code_manager/src/Entity/CodeManager/EntityCodeBuild.php
index 0c7a18323..6feb1cfa6 100644
--- a/applications/asset_server/code_manager/src/Entity/CodeManager/EntityCodeBuild.php
+++ b/applications/asset_server/code_manager/src/Entity/CodeManager/EntityCodeBuild.php
@@ -1,15 +1,14 @@
-setUnixTimestamp0(-1);
+ $this->setInt0($build_type);
+ }
+
+ public function is_mode_rushed(): bool {
+ return $this->isInt0EqualTo(self::BUILD_TYPE_RUSH);
+ }
+
+ #public function get_current_db_snapshot(): EntityDBSnapshot {
+ # return
+ #}
}
diff --git a/applications/asset_server/code_manager/src/Entity/CodeManager/EntityDBSnapshot.php b/applications/asset_server/code_manager/src/Entity/CodeManager/EntityDBSnapshot.php
index 30f99d7dd..72d305598 100644
--- a/applications/asset_server/code_manager/src/Entity/CodeManager/EntityDBSnapshot.php
+++ b/applications/asset_server/code_manager/src/Entity/CodeManager/EntityDBSnapshot.php
@@ -1,15 +1,13 @@
-cached_values[$key] = RUN::get_npm_lib_latest_version($this->getName());
+ return RUN::get_npm_lib_latest_version($this->getName());
}
+ return null;
}
public function cache_needs_inspection() : bool {
- $last_checked = $this->getLastChecked();
- if (DATE::is_different_day($last_checked, DATE::now())) {
- $this->setLastChecked(TIME::now());
- return true;
- }
+ $last_checked = $this->getUnixTimestamp();
+ var_dump('Last checked is {' . $last_checked . '}');
+
+
+ #if (DATE::is_different_day($last_checked, DATE::now())) {
+ # $this->setLastChecked(TIME::now());
+ # return true;
+ #}
return false;
}
@@ -88,7 +76,7 @@ public function cache_update(bool $update_state=true): void {
public function on_event_born($data): void {
$latest_version = RUN::get_npm_lib_latest_version($data);
- PATH::cwd_push(PATH::get(PATH::NODE_DIR));
+ PATH::cwd_push(\CodeManager\Enum\ProjectParameterKeys\Path::DIRECTORY_NODE);
$current_version = RUN::get_npm_lib_version_local($data);
PATH::cwd_pop();
$this->setName($data);
diff --git a/applications/asset_server/code_manager/src/Entity/CodeManager/EntityQAReport.php b/applications/asset_server/code_manager/src/Entity/CodeManager/EntityQAReport.php
index 098ea5962..a88538684 100644
--- a/applications/asset_server/code_manager/src/Entity/CodeManager/EntityQAReport.php
+++ b/applications/asset_server/code_manager/src/Entity/CodeManager/EntityQAReport.php
@@ -1,4 +1,4 @@
-cached_values[$key] = new ProjectTestSuiteResult($this->entity_file->getFullPath());
+ return new ProjectTestSuiteResult($this->entity_file->getFullPath());
}
+ return null;
}
public function cache_update(bool $update_state=true) : void {
@@ -94,7 +77,7 @@ public function cache_update(bool $update_state=true) : void {
->setDuration($qa_results->get_time_taken())
->setNumElements($qa_results->get_num_tests())
->setNumSkipped($qa_results->get_num_skipped())
- ->setRanAtNow()
+ ->setUnixTimestamp(-1)
->setJSONMetaData($qa_results->get_qa_report());
}
diff --git a/applications/asset_server/code_manager/src/Entity/Finance/Bank/EntityBankTransaction.php b/applications/asset_server/code_manager/src/Entity/Finance/Bank/EntityBankTransaction.php
new file mode 100644
index 000000000..9dac74f52
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Finance/Bank/EntityBankTransaction.php
@@ -0,0 +1,32 @@
+
+asset_server | int(82867589)
+asset_server | ["clientOrderId"]=>
+asset_server | string(22) "Sl9EcSrqAguN3fFRjpuVVh"
+asset_server | ["price"]=>
+asset_server | string(10) "0.00004155"
+asset_server | ["origQty"]=>
+asset_server | string(13) "2000.00000000"
+asset_server | ["executedQty"]=>
+asset_server | string(13) "2000.00000000"
+asset_server | ["cummulativeQuoteQty"]=>
+asset_server | string(10) "0.08310000"
+asset_server | ["status"]=>
+asset_server | string(6) "FILLED"
+asset_server | ["timeInForce"]=>
+asset_server | string(3) "GTC"
+asset_server | ["type"]=>
+asset_server | string(5) "LIMIT"
+asset_server | ["side"]=>
+asset_server | string(3) "BUY"
+asset_server | ["stopPrice"]=>
+asset_server | string(10) "0.00000000"
+asset_server | ["icebergQty"]=>
+asset_server | string(10) "0.00000000"
+asset_server | ["time"]=>
+asset_server | int(1559463867238)
+asset_server | ["updateTime"]=>
+asset_server | int(1559463873069)
+asset_server | ["isWorking"]=>
+asset_server | bool(true)
+asset_server | }
+ */
\ No newline at end of file
diff --git a/applications/asset_server/code_manager/src/Entity/Finance/Binance/EntityBinanceTrade.php b/applications/asset_server/code_manager/src/Entity/Finance/Binance/EntityBinanceTrade.php
new file mode 100644
index 000000000..74a80e59d
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Entity/Finance/Binance/EntityBinanceTrade.php
@@ -0,0 +1,25 @@
+ VendorToVendor, 1 --> VendorToUser, 2 --> UserToUser, 3 --> UserToVendor
+ use FieldInt;
+ // A pointer from Entity and pointer to Entity.
+ use FieldEntityPointerTwo;
}
diff --git a/applications/asset_server/code_manager/src/Entity/Users/EntityUser.php b/applications/asset_server/code_manager/src/Entity/Users/EntityUser.php
index c7bfac3df..edcb2e1eb 100644
--- a/applications/asset_server/code_manager/src/Entity/Users/EntityUser.php
+++ b/applications/asset_server/code_manager/src/Entity/Users/EntityUser.php
@@ -1,4 +1,4 @@
-getProjectDir().'/config/bundles.php';
- foreach ($contents as $class => $envs) {
- if ($envs[$this->environment] ?? $envs['all'] ?? false) {
- yield new $class();
- }
- }
+ yield new \Symfony\Bundle\FrameworkBundle\FrameworkBundle();
+ yield new \Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle();
+ yield new \Doctrine\Bundle\DoctrineBundle\DoctrineBundle();
+ yield new \Symfony\Bundle\MonologBundle\MonologBundle();
}
+ /**
+ * @return string
+ */
public function getProjectDir(): string {
- return dirname(__DIR__);
+ if ($this->project_directory === null) {
+ $this->project_directory = dirname(__DIR__);
+ }
+ return $this->project_directory;
}
+ /**
+ * @param ContainerBuilder $container
+ * @param LoaderInterface $loader
+ * @throws Exception
+ */
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void {
- $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php'));
- $container->setParameter('container.dumper.inline_class_loader', true);
- $confDir = $this->getProjectDir().'/config';
+ var_dump('CONFIGURE CONTAINER!');
+ foreach ([PATHS::DIRECTORY_PROJECT, PATHS::DIRECTORY_CODE_MANAGER, PATHS::PROJECT_CONFIG, PATHS::PROJECT_BUNDLES, PATHS::NODE_MINIFY_CSS, PATHS::NODE_MINIFY_HTML, PATHS::NODE_MINIFY_JS] as $key) {
+ $container->setParameter($key, getenv($key));
+ }
+
+ $container->setParameter(SCHEMAS::YAML_CODE_MANAGER, [
+ 'global_information' => null,
+ 'assets' => [
+ '.css' => null,
+ '.html' => null,
+ '.json' => null,
+ '.vert' => null,
+ '.frag' => null
+ ],
+ 'npm' => null,
+ 'qa_report' => null,
+ 'docker' => null,
+ 'projects' => null
+ ]);
+ $container->setParameter(SCHEMAS::YAML_ASSETS, [
+ [PATHS::DIRECTORY_OUTPUT => null, PATHS::DIRECTORY_DATA => null, 'files' => null]
+ ]);
- $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
- $loader->load($confDir.'/{packages}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob');
+ $container->addResource(new FileResource($container->getParameter(PATHS::PROJECT_BUNDLES)));
+ $container->setParameter('container.dumper.inline_class_loader', true);
+ $confDir = $this->getProjectDir() . '/config';
+ $loader->load($confDir.'/{packages}/*.yaml', 'glob');
+ $loader->load($confDir.'/{packages}/'.$this->environment.'/**/*.yaml', 'glob');
$loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob');
$loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob');
}
+ /**
+ * @param RouteCollectionBuilder $routes
+ * @throws LoaderLoadException
+ */
protected function configureRoutes(RouteCollectionBuilder $routes): void {
- $confDir = $this->getProjectDir().'/config';
-
- $routes->import($confDir.'/{routes}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, '/', 'glob');
- $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob');
- $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob');
+ $conf_dir = dirname(__DIR__).'/config/{routes}';
+ $routes->import($conf_dir.'/'.$this->environment.'/**/*.yaml', '/', 'glob');
+ $routes->import($conf_dir.'/*'.self::CONFIG_EXTS, '/', 'glob');
+ $routes->import($conf_dir.self::CONFIG_EXTS, '/', 'glob');
}
}
diff --git a/applications/asset_server/code_manager/src/Repository/Abstractions/AbstractRepository.php b/applications/asset_server/code_manager/src/Repository/Abstractions/AbstractRepository.php
index 8f3a93d8e..e5e6a56b3 100644
--- a/applications/asset_server/code_manager/src/Repository/Abstractions/AbstractRepository.php
+++ b/applications/asset_server/code_manager/src/Repository/Abstractions/AbstractRepository.php
@@ -1,26 +1,31 @@
-event_before_remove_entity($entity);
try {
$this->_em->remove($entity);
} catch (ORMException $e) {
- DBG::throw_exception($e->getMessage());
+ throw ExceptionDB::doctrine_error($e->getMessage());
}
if ($save_db_state) {
$this->flush();
}
}
+ /**
+ * @param $entity
+ * @param bool $save_db_state
+ * @throws ExceptionDB
+ */
public function save_entity($entity, bool $save_db_state=false): void {
try {
$this->_em->persist($entity);
} catch (ORMException $e) {
- DBG::throw_exception($e->getMessage());
+ throw ExceptionDB::doctrine_error($e->getMessage());
}
if ($save_db_state) {
$this->flush();
}
}
+ /**
+ * @throws ExceptionDB
+ */
private function flush(): void {
try {
$this->_em->flush();
} catch (OptimisticLockException $e) {
- DBG::throw_exception($e->getMessage());
+ throw ExceptionDB::doctrine_error($e->getMessage());
} catch (ORMException $e) {
- DBG::throw_exception($e->getMessage());
+ throw ExceptionDB::doctrine_error($e->getMessage());
}
}
diff --git a/applications/asset_server/code_manager/src/Repository/Abstractions/QueryableRepository.php b/applications/asset_server/code_manager/src/Repository/Abstractions/QueryableRepository.php
deleted file mode 100644
index cf2bcace6..000000000
--- a/applications/asset_server/code_manager/src/Repository/Abstractions/QueryableRepository.php
+++ /dev/null
@@ -1,72 +0,0 @@
-connection = $this->_em->getConnection();
- }
-
- public function set_table_name(string $table_name): void {
- $this->table_name = $table_name;
- }
-
- public function set_sort_field_time(string $field_name): void {
- $this->sort_field_time = $field_name;
- }
-
- protected function execute_query(string $sql, bool $single_result=false): ?array {
- $statement = $this->connection->prepare($sql);
- $statement->execute();
- $results = $statement->fetchAll();
- if ($single_result) {
- if (count($results) !== 0) {
- return $results[0];
- }
- return null;
- }
- return $results;
- }
-
- protected function get_table_size(): ?int {
- $result = $this->execute_query(TABLE::get_size($this->table_name), true);
- if ($result !== null) {
- return $result['pg_total_relation_size'];
- }
- return null;
- }
-
- protected function get_newest_entity() {
- return $this->execute_query(TABLE::get_latest($this->table_name, $this->sort_field_time), true);
- }
-
- protected function get_oldest_entity() {
- return $this->execute_query(TABLE::get_oldest($this->table_name, $this->sort_field_time), true);
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Repository/CodeManager/EntityCodeBuildRepository.php b/applications/asset_server/code_manager/src/Repository/CodeManager/EntityCodeBuildRepository.php
index d3ea6511d..f9e1e62a0 100644
--- a/applications/asset_server/code_manager/src/Repository/CodeManager/EntityCodeBuildRepository.php
+++ b/applications/asset_server/code_manager/src/Repository/CodeManager/EntityCodeBuildRepository.php
@@ -1,25 +1,46 @@
-set_table_name(EntityCodeBuild::TABLE_NAME);
- $this->set_sort_field_time(EntityCodeBuild::SORT_FIELD_TIME);
+ $this->query_manager->set_table_name(TABLE::CODE_BUILDS);
+ $this->query_manager->set_sort_field(FIELD::TIME_START);
+ }
+
+ public function fetch_or_generate_last_build(): EntityCodeBuild {
+ var_dump($this->get_table_size());
+
+ exit(3);
+
+ #var_dump($this->get_table_num_rows());
+
+ var_dump($this->analyze_table());
+
+ $table_rows = $this->get_table_num_rows();
+ if ($table_rows === 0) {
+ return new EntityCodeBuild();
+ }
+ var_dump('ELSE, HANDLE THIS!');
+ exit(2);
}
public function get_datetime_of_last_successful_build(): ?DateTime {
@@ -28,14 +49,16 @@ public function get_datetime_of_last_successful_build(): ?DateTime {
#var_dump($results);
#var_dump($this->get_table_size());
+ #var_dump($this->get_table_num_rows());
+ return null;
#var_dump($this->get_newest_entity());
#var_dump($this->get_oldest_entity());
- $entity = $this->get_newest_entity();
+ #$entity = $this->get_newest_entity();
#var_dump('The newest entity is:');
- #ar_dump($entity);
+ #var_dump($entity);
- return $entity;
+ #return $entity;
}
protected function event_before_remove_entity(EntityInterface $entity): void {
diff --git a/applications/asset_server/code_manager/src/Repository/CodeManager/EntityDBSnapshotRepository.php b/applications/asset_server/code_manager/src/Repository/CodeManager/EntityDBSnapshotRepository.php
index f2ab96d7b..088bf3931 100644
--- a/applications/asset_server/code_manager/src/Repository/CodeManager/EntityDBSnapshotRepository.php
+++ b/applications/asset_server/code_manager/src/Repository/CodeManager/EntityDBSnapshotRepository.php
@@ -1,4 +1,4 @@
-set_table_name(EntityFile::TABLE_NAME);
- $this->set_sort_field_time(EntityFile::SORT_FIELD_TIME);
+ /**
+ * @param EntityManagerInterface $em
+ * @param ClassMetadata $class
+ * @param DBService $service_db
+ */
+ public function __construct(EntityManagerInterface $em, ClassMetadata $class, DBService $service_db) {
+ parent::__construct($em, $class, $service_db);
+ #$this->query_manager->set_table_name(TABLE::CODE_BUILDS);
+ #$this->query_manager->set_sort_field(FIELD::TIME_END);
}
public function does_child_file_exist_as_needed(EntityFile $file, string $path_to_child) : bool {
@@ -54,14 +67,21 @@ protected function set_entity_file_child(EntityFile $parent, EntityFile $child):
$this->save_entity($child, true);
}
- private function create_new_child_entity(EntityFile $file, string $path_to_child, array $options) : EntityInterface {
+ private function create_new_child_entity(EntityFile $file, string $path_to_child, array $options): EntityInterface {
$child = $this->create_new_entity($path_to_child, false);
$child->set_flags($options);
$this->set_entity_file_child($file, $child);
return $child;
}
- public function ensure_file_has_child(EntityFile $file, string $path_to_child, string $flag) : EntityInterface {
+ /**
+ * @param EntityFile $file
+ * @param string $path_to_child
+ * @param string $flag
+ * @return EntityInterface
+ * @throws ParameterException
+ */
+ public function ensure_file_has_child(EntityFile $file, string $path_to_child, string $flag): EntityInterface {
if (!$this->does_child_file_exist_as_needed($file, $path_to_child)) {
$options = $file->get_flags();
$options[$flag] = true;
@@ -72,13 +92,15 @@ public function ensure_file_has_child(EntityFile $file, string $path_to_child, s
case EntityFile::FLAG_MINIFY:
switch ($file->getType()) {
case EntityFile::TYPE_HTML:
- UFO::minify_html($file->getFullPath(), $path_to_child);
+ #UFO::minify_html($file->getFullPath(), $path_to_child);
+ HTMLUtilities::minify($file->getFullPath(), $path_to_child);
break;
case EntityFile::TYPE_CSS:
- UFO::minify_css($file->getFullPath(), $path_to_child);
+ #UFO::minify_css($file->getFullPath(), $path_to_child);
+ CSSUtilities::minify($file->getFullPath(), $path_to_child);
break;
default:
- DBG::throw_exception('TODO: Handle minification for type{' . $path_to_child . '}');
+ throw ParameterException::invalid_function_parameter('ensure_file_has_child', 'file type not supported {' . $path_to_child . '}');
break;
}
return $this->create_new_child_entity($file, $path_to_child, $options);
diff --git a/applications/asset_server/code_manager/src/Repository/CodeManager/EntityFileTypeRepository.php b/applications/asset_server/code_manager/src/Repository/CodeManager/EntityFileTypeRepository.php
new file mode 100644
index 000000000..ac75fef10
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Repository/CodeManager/EntityFileTypeRepository.php
@@ -0,0 +1,40 @@
+logger = $logger;
- }
-
- public function log($content): void {
- $this->logger->debug($content);
- }
-
- public function warn($content): void {
- $this->logger->warning($content);
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Service/Abstractions/OwnsCommands.php b/applications/asset_server/code_manager/src/Service/Abstractions/OwnsCommands.php
deleted file mode 100644
index a713ce47e..000000000
--- a/applications/asset_server/code_manager/src/Service/Abstractions/OwnsCommands.php
+++ /dev/null
@@ -1,9 +0,0 @@
-
*/
- public function __construct(LoggerInterface $logger, ManagerService $manager_service) {
- parent::__construct($logger);
- self::$SINGLETON = $this;
- $this->manager_service = $manager_service;
- $this->config_initialize(
- [
- 'global_information' => null,
- 'assets' => [
- UFO::EXTENSION_CSS => null,
- UFO::EXTENSION_HTML => null,
- UFO::EXTENSION_JSON => null,
- UFO::EXTENSION_SHADER_VERTEX => null,
- UFO::EXTENSION_SHADER_FRAGMENT => null
- ],
- 'npm' => null,
- 'qa_report' => null,
- 'docker' => null,
- 'projects' => null
- ],
- UFO::get_yaml(PATH::get(PATH::PROJECT_CONFIG))
- );
- }
+ private const BUILD_STEPS = [
+ #CSSBuildSection::class,
+ #HTMLBuildSection::class,
+ #JSONBuildSection::class,
+ #NPMLibBuildSection::class,
+ #QAReportBuildSection::class
+ ];
- public function get_test_hi(): string {
- return 'wow, it freaking works :o';
+ /**
+ * @param ContainerInterface $container
+ * @param ParameterBagInterface $bag
+ * @param LoggerService $logger_service
+ * @param DBService $service_db
+ * @throws \Exception
+ */
+ public function __construct(ContainerInterface $container, ParameterBagInterface $bag, LoggerService $logger_service, DBService $service_db) {
+ parent::__construct($logger_service);
+ $this->configs_universal = $bag;
+ $this->service_db = $service_db;
+
+ $apple = '/hello/world/how/are/you?/';
+ var_dump(PathUtilities::remove_layer($apple));
+
+ var_dump('Early exit!');
+ exit();
+
+ #$this->config_yaml_load($this->configs_universal->get(SCHEMAS_ENUM::YAML_CODE_MANAGER), getenv(PATHS_ENUM::PROJECT_CONFIG));
+
+ #$this->container = $container;
+ #var_dump($this->container);
+ #exit();
+
+ $this->all_build_sections[] = $this->service_db_health;
+ foreach (self::BUILD_STEPS as $build_section_class) {
+ $this->all_build_sections[] = new $build_section_class($this);
+ }
+
+ $this->repo_code_builds = $this->service_db->get_repo(EntityCodeBuildRepository::class);
+
+ $this->repo_code_builds->fetch_or_generate_last_build();
+
+ #var_dump($this->repo_code_builds);
+ exit();
}
- public function prepare_code_health_check(Application $application): void {
- $this->manager_service->set_application($application);
- $this->manager_commands = $this->get_manager(CommandManagerService::class);
- $this->manager_repo = $this->get_manager(RepositoryManagerService::class);
- $this->manager_build_step = $this->get_manager(BuildStepManagerService::class);
- $this->repo_code_builds = $this->get_repo(EntityCodeBuildRepository::class);
+ /**
+ * @param string $key
+ * @return mixed
+ */
+ public function config_universal_get(string $key) {
+ return $this->configs_universal->get($key);
}
- public function run_code_health_check(): void {
- $last_datetime = $this->repo_code_builds->get_datetime_of_last_successful_build();
+ public function get_test_hi(): string {
+ return 'wow, it freaking works :o';
+ }
- if ($last_datetime === null) {
- var_dump('TODO: Create new EntityCodeBuild object!');
- }
+ public function run_code_health_check(DBService $db_health_service): void {
+ $this->service_db_health = $db_health_service;
- $binance = new BinanceAccountAPI(PATH::get(PATH::API));
- var_dump('Binance created!');
- $this->current_code_build = new EntityCodeBuild();
+ #$last_datetime = $this->repo_code_builds->get_datetime_of_last_successful_build();
+ #if ($last_datetime === null) {
+ # var_dump('TODO: Create new EntityCodeBuild object!');
+ #}
+ # TODO: Utilize this!
+ #$this->current_code_build = new EntityCodeBuild();
#$path = '/quasar_source/var/data/orders.json';
- #$content = FileUtilities::get_json_contents($path);
+ #$content = JSONUtilities::get($path);
#var_dump($content);
#$output = RUN::run_webpack_build();
@@ -119,8 +153,18 @@ public function run_code_health_check(): void {
#exit();
#var_dump('Code Health Check disabled');
- $this->manager_build_step->run_all_builds();
- $this->print_final_results();
+ $this->run_all_builds();
+ #$this->print_final_results();
+ }
+
+ private function run_all_builds(): void {
+ $previous_step_failed = false;
+ # TODO: Add try-catch.
+ /** @var BuildSection $build_section */
+ foreach ($this->all_build_sections as $build_section) {
+ # TODO: Check if the previous step failed or not.
+ $build_section->run_unit_of_work();
+ }
}
public function get_current_code_build(): EntityCodeBuild {
@@ -142,25 +186,17 @@ private function print_final_results(): void {
}
}
- $qa_results = new ProjectTestSuiteResult(PATH::get(PATH::QA_REPORT));
+ $qa_results = new ProjectTestSuiteResult(SYS::get_env(PATHS_ENUM::QA_REPORT));
var_dump($qa_results->get_qa_report());
}
- // ------------------------- I N T E R F A C E {OwnsCommands} -------------------------
-
- public function get_command(string $command_name): PreparedCommand {
- return $this->manager_commands->get_command($command_name);
- }
-
- // ------------------------- I N T E R F A C E {OwnsManagers} -------------------------
-
- public function get_manager(string $manager_class): BaseAbstractService {
- return $this->manager_service->get_manager($manager_class);
- }
-
- // --------------------------- I N T E R F A C E {OwnsRepos} ---------------------------
+ // ----------------------------------------- I N T E R F A C E {OwnsRepos} -----------------------------------------
+ /**
+ * @param string $repo_key
+ * @return ObjectRepository
+ */
public function get_repo(string $repo_key): ObjectRepository {
- return $this->manager_repo->get_repo($repo_key);
+ return $this->service_db->get_repo($repo_key);
}
}
diff --git a/applications/asset_server/code_manager/src/Service/DBService.php b/applications/asset_server/code_manager/src/Service/DBService.php
new file mode 100644
index 000000000..13ab257d5
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Service/DBService.php
@@ -0,0 +1,198 @@
+ EntityFile::class,
+ EntityDirectoryRepository::class => EntityDirectory::class,
+ EntityQAReportRepository::class => EntityQAReport::class,
+ EntityNPMLibRepository::class => EntityNPMLib::class,
+ EntityUserRepository::class => EntityUser::class,
+ EntityUserRoleRepository::class => EntityUserRole::class,
+ EntityCodeBuildRepository::class => EntityCodeBuild::class,
+ EntityDBSnapshotRepository::class => EntityDBSnapshot::class
+ ];
+
+ /** @var array */
+ private $commands = [];
+
+ /** @var DBSchemaUpdate */
+ private $cmd_db_schema_update;
+
+ /** @var DBSchemaValidate */
+ private $cmd_db_schema_validate;
+
+ /** @var Application */
+ private $application;
+
+ /** @var CodeBuilderService */
+ private $code_builder;
+
+ /** @var EntityManagerInterface */
+ private $entity_manager;
+
+ /** @var array */
+ private $entity_repos = [];
+
+ /** @var SQLQueryGroup $queries_schema */
+ private $queries_schema;
+
+ /**
+ * @param LoggerService $logger
+ * @param EntityManagerInterface $entity_manager
+ */
+ public function __construct(LoggerService $logger, EntityManagerInterface $entity_manager) {
+ parent::__construct($logger);
+ $this->entity_manager = $entity_manager;
+
+ $this->queries_schema = new DBSchema($this->entity_manager->getConnection());
+
+ #$this->query_manager = new QueryManager($this->entity_manager->getConnection());
+ #parent::__construct('DB Health Check', $logger);
+ }
+
+ /**
+ * @param string $command_name
+ * @param string $command_class
+ * @return PreparedCommand
+ */
+ private function get_command(string $command_name, string $command_class): PreparedCommand {
+ if (!array_key_exists($command_name, $this->commands)) {
+ $this->commands[$command_name] = new $command_class($this->application->find($command_name));
+ }
+ return $this->commands[$command_name];
+ }
+
+ // ----------------------------------------- I N T E R F A C E {OwnsRepo} ------------------------------------------
+
+ /**
+ * @param string $repo_key
+ * @return ObjectRepository
+ */
+ public function get_repo(string $repo_key): ObjectRepository {
+ if (!array_key_exists($repo_key, $this->entity_repos)) {
+ $this->set_repo($repo_key, self::REPO_TO_ENTITY[$repo_key]);
+ }
+ return $this->entity_repos[$repo_key];
+ }
+
+ /**
+ * @param string $repo_key
+ * @param string $entity_class
+ */
+ private function set_repo(string $repo_key, string $entity_class): void {
+ $this->entity_repos[$repo_key] = $this->entity_manager->getRepository($entity_class);
+ }
+
+ // ---------------------------------------------- B U I L D S T E P -----------------------------------------------
+
+ /**
+ * @param Application $application
+ * @param CodeBuilderService $code_builder
+ */
+ public function prepare_for_build_step(Application $application, CodeBuilderService $code_builder): void {
+ $this->application = $application;
+ $this->code_builder = $code_builder;
+ }
+
+ protected function pre_work(): void {
+ $this->cmd_db_schema_update = $this->get_command(
+ 'doctrine:schema:update',
+ DBSchemaUpdate::class
+ );
+ $this->cmd_db_schema_validate = $this->get_command(
+ 'doctrine:schema:validate',
+ DBSchemaValidate::class
+ );
+ }
+
+ protected function perform_work(): void {
+ $code_build = $this->code_builder->get_current_code_build();
+
+ if ($code_build->is_mode_rushed()) {
+ $this->log('Build mode is rushed, skipping DB checks.');
+ } else {
+ $this->run_cmd_wrapped([$this, 'run_schema_validate']);
+ if (!$this->cmd_db_schema_validate->is_healthy_mapping()) {
+ $this->log('Entity mapping is not healthy!');
+ $this->mark_as_failed();
+ }
+ if (!$this->cmd_db_schema_validate->is_healthy_schema()) {
+ $this->log('Updating the DB Schema!');
+ $this->run_cmd_wrapped([$this, 'run_schema_update']);
+
+ if ($this->cmd_db_schema_update->did_db_schema_update()) {
+ // setOptional --> setDbSchemaUpdated
+
+ #$this->code_builder->get_current_code_build()->setOptional(true);
+ $this->code_builder->get_current_code_build()->setBooleanValue0(true);
+ }
+ }
+ }
+
+ // TODO: Check for any enum tables that need to be populated!
+ // TODO: ^ The above check depends on the code build mode set!
+ }
+
+ private function run_schema_validate(): void {
+ $this->cmd_db_schema_validate->run_command();
+ }
+
+ private function run_schema_update(): void {
+ $this->cmd_db_schema_update->run_command();
+ }
+
+ /**
+ * @param callable $cmd
+ */
+ private function run_cmd_wrapped(callable $cmd): void {
+ try {
+ $cmd();
+ } catch (Exception $e) {
+ $this->mark_as_failed();
+ $this->warn('Exception', $e->getMessage());
+ }
+ }
+
+ protected function post_work(): void {
+ $this->log('DBHealthService post_work');
+ }
+
+
+}
diff --git a/applications/asset_server/code_manager/src/Service/Feature/AbstractService.php b/applications/asset_server/code_manager/src/Service/Feature/AbstractService.php
new file mode 100644
index 000000000..d3a60b28c
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Service/Feature/AbstractService.php
@@ -0,0 +1,23 @@
+service_set_logger($logger_service);
+ }
+
+}
\ No newline at end of file
diff --git a/applications/asset_server/code_manager/src/Service/Feature/Config/FeatureConfigUniversalInterface.php b/applications/asset_server/code_manager/src/Service/Feature/Config/FeatureConfigUniversalInterface.php
new file mode 100644
index 000000000..ab504a86e
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Service/Feature/Config/FeatureConfigUniversalInterface.php
@@ -0,0 +1,18 @@
+config_yaml_set_data($keys, YAML::get($path));
+ }
+
+ /**
+ * @param array $keys
+ * @param array $config
+ * @return FeatureConfigYAMLTrait
+ */
+ protected function config_yaml_set_data(array $keys, array $config): self {
+ foreach ($keys as $k => $v) {
+ if (array_key_exists($k, $config)) {
+ $this->config_yaml[$k] = $config[$k];
+ } else {
+ throw ParameterException::missing_config_parameter($k);
+ }
+
+ if (is_array($v)) {
+ $this->config_verify_sub_layer($v, $config[$k]);
+ }
+ }
+ return $this;
+ }
+
+ /**
+ * @param array $keys
+ * @param array $layer
+ * @throws ParameterException
+ */
+ private function config_verify_sub_layer(array $keys, array $layer): void {
+ foreach ($keys as $k => $v) {
+ if (!array_key_exists($k, $layer)) {
+ throw ParameterException::missing_config_parameter($k);
+ }
+ if (is_array($v)) {
+ $this->config_verify_sub_layer($v, $layer[$k]);
+ }
+ }
+ }
+
+ /**
+ * @return array
+ */
+ public function config_yaml_get_all(): array {
+ return $this->config_yaml;
+ }
+
+ /**
+ * @param string|array $keys
+ * @return mixed
+ */
+ public function config_yaml_get($keys) {
+ if (is_string($keys)) {
+ return $this->config_yaml[$keys];
+ }
+ #$current = $this->config_yaml;
+ #foreach ($keys as $k) {
+ # $current = $current[$k];
+ #}
+ #return $this->config_yaml[$key];
+ return array_values($this->config_yaml);
+ }
+
+}
diff --git a/applications/asset_server/code_manager/src/Service/Feature/Logging/FeatureLoggingInterface.php b/applications/asset_server/code_manager/src/Service/Feature/Logging/FeatureLoggingInterface.php
new file mode 100644
index 000000000..f9fb728ae
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Service/Feature/Logging/FeatureLoggingInterface.php
@@ -0,0 +1,27 @@
+service_logger;
+ }
+
+ /**
+ * @param LoggerService $logger_service
+ * @return FeatureLoggingTrait
+ */
+ protected function service_set_logger(LoggerService $logger_service): self {
+ $this->service_logger = $logger_service;
+ return $this;
+ }
+
+ /**
+ * @param string $message [Any kind of section title/header/divider, etc. ]
+ * @param mixed $value [Optional parameter to be displayed in brackets.]
+ */
+ public function header(string $message, $value = null): void {
+ $this->service_logger->header($value !== null ? STR::brackets($message, $value) : $message);
+ }
+
+ /**
+ * @param string $message [A regular log message.]
+ * @param mixed $value [Optional parameter to be displayed in brackets.]
+ */
+ public function log(string $message, $value = null): void {
+ $this->service_logger->log($value !== null ? STR::brackets($message, $value) : $message);
+ }
+
+ /**
+ * @param string $message [A warning message.]
+ * @param mixed $value [Optional parameter to be displayed in brackets.]
+ */
+ public function warn(string $message, $value = null): void {
+ $this->service_logger->warn($value !== null ? STR::brackets($message, $value) : $message);
+ }
+}
diff --git a/applications/asset_server/code_manager/src/Service/Feature/Repository/OwnsReposInterface.php b/applications/asset_server/code_manager/src/Service/Feature/Repository/OwnsReposInterface.php
new file mode 100644
index 000000000..9a8aabd59
--- /dev/null
+++ b/applications/asset_server/code_manager/src/Service/Feature/Repository/OwnsReposInterface.php
@@ -0,0 +1,18 @@
+logger = $logger;
+ }
+
+ /**
+ * @param string $message [Any kind of section title/header/divider, etc.]
+ */
+ public function header(string $message): void {
+ $this->logger->debug('--- ' . $message . ' ---');
+ }
+
+ /**
+ * @param string $message [A regular log message.]
+ */
+ public function log(string $message): void {
+ $this->logger->debug($message);
+ }
+
+ /**
+ * @param string $message [A warning message.]
+ */
+ public function warn(string $message): void {
+ $this->logger->warning($message);
+ }
+
+ /**
+ * @return LoggerService
+ */
+ public function service_get_logger(): LoggerService {
+ return $this;
+ }
+}
diff --git a/applications/asset_server/code_manager/src/Service/Manager/BuildStepManagerService.php b/applications/asset_server/code_manager/src/Service/Manager/BuildStepManagerService.php
deleted file mode 100644
index 2403fd258..000000000
--- a/applications/asset_server/code_manager/src/Service/Manager/BuildStepManagerService.php
+++ /dev/null
@@ -1,48 +0,0 @@
-
- */
- private const BUILD_STEPS = [
- DBBuildSection::class,
- CSSBuildSection::class,
- HTMLBuildSection::class,
- JSONBuildSection::class,
- NPMLibBuildSection::class,
- QAReportBuildSection::class
- ];
-
- /** @var CodeBuilderService */
- private $code_builder;
- /** @var array */
- private $all_build_sections = [];
-
- public function set_code_builder(CodeBuilderService $code_builder): void {
- $this->code_builder = $code_builder;
- foreach (self::BUILD_STEPS as $build_section_class) {
- $this->all_build_sections[] = new $build_section_class($this->code_builder);
- }
- }
-
- public function run_all_builds(): void {
- foreach ($this->all_build_sections as $build_section) {
- $build_section->run_unit_of_work();
- }
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Service/Manager/CommandManagerService.php b/applications/asset_server/code_manager/src/Service/Manager/CommandManagerService.php
deleted file mode 100644
index 998f2a9d2..000000000
--- a/applications/asset_server/code_manager/src/Service/Manager/CommandManagerService.php
+++ /dev/null
@@ -1,38 +0,0 @@
- DBSchemaUpdate::class,
- PreparedCommand::CMD_DB_SCHEMA_VALIDATE => DBSchemaValidate::class
- ];
-
- /** @var array */
- private $commands = [];
- /** @var Application */
- private $kernel;
-
- public function set_application(Application $application): void {
- $this->kernel = $application;
- }
-
- public function get_command(string $command_name): PreparedCommand {
- if (!array_key_exists($command_name, $this->commands)) {
- $cmd_class = self::CMD_NAMES_TO_CLASSES[$command_name];
- $this->commands[$command_name] = new $cmd_class($this->kernel->find($command_name));
- }
- return $this->commands[$command_name];
- }
-
-}
diff --git a/applications/asset_server/code_manager/src/Service/Manager/ManagerService.php b/applications/asset_server/code_manager/src/Service/Manager/ManagerService.php
deleted file mode 100644
index 09a965403..000000000
--- a/applications/asset_server/code_manager/src/Service/Manager/ManagerService.php
+++ /dev/null
@@ -1,53 +0,0 @@
-managers[self::KEY_REPO] = [true , $manager_repo];
- $this->managers[self::KEY_BUILD_STEP] = [false, $manager_build_step];
- $this->managers[self::KEY_COMMANDS] = [false, $manager_commands];
- }
-
- public function set_application(Application $application): void {
- $this->application = $application;
- }
-
- public function get_manager(string $manager_class): BaseAbstractService {
- if ($manager_class === self::KEY_BUILD_STEP && $this->managers[self::KEY_BUILD_STEP][0] === false) {
- /** @var BuildStepManagerService $manager_build_step */
- $manager_build_step = $this->managers[self::KEY_BUILD_STEP][1];
- $this->managers[self::KEY_BUILD_STEP][0] = true;
- $manager_build_step->set_code_builder(CodeBuilderService::$SINGLETON);
- } else if ($manager_class === self::KEY_COMMANDS && $this->managers[self::KEY_COMMANDS][0] === false) {
- /** @var CommandManagerService $manager_commands */
- $manager_commands = $this->managers[self::KEY_COMMANDS][1];
- $this->managers[self::KEY_COMMANDS][0] = true;
- $manager_commands->set_application($this->application);
- }
- return $this->managers[$manager_class][1];
- }
-
-}
\ No newline at end of file
diff --git a/applications/asset_server/code_manager/src/Service/Manager/RepositoryManagerService.php b/applications/asset_server/code_manager/src/Service/Manager/RepositoryManagerService.php
deleted file mode 100644
index fb53dc1dc..000000000
--- a/applications/asset_server/code_manager/src/Service/Manager/RepositoryManagerService.php
+++ /dev/null
@@ -1,62 +0,0 @@
- EntityFile::class,
- EntityDirectoryRepository::class => EntityDirectory::class,
- EntityQAReportRepository::class => EntityQAReport::class,
- EntityNPMLibRepository::class => EntityNPMLib::class,
- EntityUserRepository::class => EntityUser::class,
- EntityUserRoleRepository::class => EntityUserRole::class,
- EntityCodeBuildRepository::class => EntityCodeBuild::class,
- EntityDBSnapshotRepository::class => EntityDBSnapshot::class
- ];
-
- /** @var EntityManagerInterface */
- private $entity_manager;
- /** @var array */
- private $entity_repos = [];
-
- public function __construct(LoggerInterface $logger, EntityManagerInterface $entity_manager) {
- parent::__construct($logger);
- $this->entity_manager = $entity_manager;
- }
-
- public function get_repo(string $repo_key): ObjectRepository {
- if (!array_key_exists($repo_key, $this->entity_repos)) {
- $this->set_repo($repo_key, self::REPO_TO_ENTITY[$repo_key]);
- }
- return $this->entity_repos[$repo_key];
- }
-
- private function set_repo(string $repo_key, string $entity_class): void {
- $this->entity_repos[$repo_key] = $this->entity_manager->getRepository($entity_class);
- }
-
-}
diff --git a/applications/asset_server/code_manager/tests/traits/TraitPatternNameTest.php b/applications/asset_server/code_manager/tests/traits/TraitPatternNameTest.php
index 5ae78f760..f93f890f3 100644
--- a/applications/asset_server/code_manager/tests/traits/TraitPatternNameTest.php
+++ b/applications/asset_server/code_manager/tests/traits/TraitPatternNameTest.php
@@ -9,11 +9,11 @@
namespace CodeManager\Traits;
use PHPUnit\Framework\TestCase;
-use QuasarSource\Traits\TraitPatternName;
+use QuasarSource\Traits\TraitName;
class TraitPatternNameTest extends TestCase {
- use TraitPatternName;
+ use TraitName;
public function test_trait_pattern_name(): void {
$name = 'hello world';
diff --git a/applications/asset_server/code_manager/tests/universal_utilities/MathUtilitiesTest.php b/applications/asset_server/code_manager/tests/universal_utilities/MathUtilitiesTest.php
index aab06dae7..44b9e2db5 100644
--- a/applications/asset_server/code_manager/tests/universal_utilities/MathUtilitiesTest.php
+++ b/applications/asset_server/code_manager/tests/universal_utilities/MathUtilitiesTest.php
@@ -13,8 +13,8 @@
class MathUtilitiesTest extends FileTestSuite {
- public function test_get_percentage_decreased(): void {
- $this->assertLessThan(.41, MATH::get_percentage_decreased(2.5, 1.5, false));
+ public function test_percentage_decreased(): void {
+ $this->assertLessThan(.41, MATH::percentage_decreased(2.5, 1.5, false));
}
}
diff --git a/applications/asset_server/code_manager/tests/universal_utilities/SimpleTimerTest.php b/applications/asset_server/code_manager/tests/universal_utilities/SimpleTimerTest.php
index 1d3a70231..0187107b2 100644
--- a/applications/asset_server/code_manager/tests/universal_utilities/SimpleTimerTest.php
+++ b/applications/asset_server/code_manager/tests/universal_utilities/SimpleTimerTest.php
@@ -8,7 +8,7 @@
namespace CodeManager\Tests;
use QuasarSource\QualityAssurance\FileTestSuite;
-use QuasarSource\Utilities\SimpleTimer;
+use QuasarSource\Utilities\Time\SimpleTimer;
class SimpleTimerTest extends FileTestSuite {
diff --git a/applications/asset_server/code_manager/tests/universal_utilities/StringUtilitiesTest.php b/applications/asset_server/code_manager/tests/universal_utilities/StringUtilitiesTest.php
index b1b57a716..b34dc96c6 100644
--- a/applications/asset_server/code_manager/tests/universal_utilities/StringUtilitiesTest.php
+++ b/applications/asset_server/code_manager/tests/universal_utilities/StringUtilitiesTest.php
@@ -15,9 +15,9 @@ class StringUtilitiesTest extends FileTestSuite {
protected $class_to_test = STR::class;
- public function test_get_matches_removed(): void {
+ public function test_remove(): void {
$this->assert_equals_scenarios(
- 'get_matches_removed',
+ 'remove',
[
# Expected Result, To search, To Remove.
['hello ', 'hello world', 'world'],
@@ -77,12 +77,12 @@ public function test_contains(): void {
);
}
- public function test_ensure_starts_with(): void {
- $simple_case = 'png';
- STR::ensure_starts_with($simple_case, '.');
- $this->assertTrue(STR::starts_with($simple_case, '.'));
- STR::ensure_starts_with($simple_case, 'a');
- $this->assertFalse(STR::starts_with($simple_case, '.'));
+ public function test_ensure_start(): void {
+ #$simple_case = 'png';
+ #STR::ensure_start($simple_case, '.');
+ #$this->assertTrue(STR::starts_with($simple_case, '.'));
+ #STR::ensure_start($simple_case, 'a');
+ #$this->assertFalse(STR::starts_with($simple_case, '.'));
}
public function test_starts_with(): void {
diff --git a/applications/asset_server/code_manager/tests/universal_utilities/files/DirectoryUtilitiesTest.php b/applications/asset_server/code_manager/tests/universal_utilities/files/DirectoryUtilitiesTest.php
index c051f8814..845b8b114 100644
--- a/applications/asset_server/code_manager/tests/universal_utilities/files/DirectoryUtilitiesTest.php
+++ b/applications/asset_server/code_manager/tests/universal_utilities/files/DirectoryUtilitiesTest.php
@@ -9,9 +9,8 @@
namespace CodeManager\Tests;
use QuasarSource\QualityAssurance\FileTestSuite;
use QuasarSource\Utilities\ArrayUtilities;
-use QuasarSource\Utilities\Files\DirectoryUtilities as DIR;
-use QuasarSource\Utilities\Files\FileUtilities as UFO;
-use QuasarSource\Utilities\Files\PathUtilities as PATH;
+use QuasarSource\Utilities\File\DirectoryUtilities as DIR;
+use QuasarSource\Utilities\File\PathUtilities as PATH;
class DirectoryUtilitiesTest extends FileTestSuite {
diff --git a/applications/asset_server/code_manager/tests/universal_utilities/files/FileUtilitiesTest.php b/applications/asset_server/code_manager/tests/universal_utilities/files/FileUtilitiesTest.php
index cb2f57afc..5505d9050 100644
--- a/applications/asset_server/code_manager/tests/universal_utilities/files/FileUtilitiesTest.php
+++ b/applications/asset_server/code_manager/tests/universal_utilities/files/FileUtilitiesTest.php
@@ -8,7 +8,9 @@
namespace CodeManager\Tests;
use QuasarSource\QualityAssurance\FileTestSuite;
-use QuasarSource\Utilities\Files\FileUtilities as UFO;
+use QuasarSource\Utilities\File\Discrete\CSSUtilities;
+use QuasarSource\Utilities\File\Discrete\HTMLUtilities;
+use QuasarSource\Utilities\File\FileUtilities as UFO;
class FileUtilitiesTest extends FileTestSuite {
@@ -40,12 +42,14 @@ private function assert_compression(string $base_path, string $output_path, floa
}
public function test_minify_html(): void {
- UFO::minify_html(self::PATH_HTML_PRE, self::PATH_HTML_POST);
+ #UFO::minify_html(self::PATH_HTML_PRE, self::PATH_HTML_POST);
+ HTMLUtilities::minify(self::PATH_HTML_PRE, self::PATH_HTML_POST);
$this->assert_compression(self::PATH_HTML_PRE, self::PATH_HTML_POST, 0.30);
}
public function test_minify_css(): void {
- UFO::minify_css(self::PATH_CSS_PRE, self::PATH_CSS_POST);
+ #UFO::minify_css(self::PATH_CSS_PRE, self::PATH_CSS_POST);
+ CSSUtilities::minify(self::PATH_CSS_PRE, self::PATH_CSS_POST);
$this->assert_compression(self::PATH_CSS_PRE, self::PATH_CSS_POST, 0.60);
}
@@ -69,6 +73,7 @@ public function test_get_size(): void {
);
}
+ /*
public function test_get_yaml(): void {
$test_file_contents = [
'section_a' => ['a', 'b', 'c'],
@@ -82,6 +87,6 @@ public function test_get_yaml(): void {
$test_file_contents,
UFO::get_yaml(self::PATH_YAML)
);
- }
+ }*/
}
diff --git a/applications/asset_server/code_manager/tests/universal_utilities/files/PathUtilitiesTest.php b/applications/asset_server/code_manager/tests/universal_utilities/files/PathUtilitiesTest.php
index 00553b5ef..fa421f040 100644
--- a/applications/asset_server/code_manager/tests/universal_utilities/files/PathUtilitiesTest.php
+++ b/applications/asset_server/code_manager/tests/universal_utilities/files/PathUtilitiesTest.php
@@ -8,7 +8,7 @@
namespace CodeManager\Tests;
use QuasarSource\QualityAssurance\FileTestSuite;
-use QuasarSource\Utilities\Files\PathUtilities as PATH;
+use QuasarSource\Utilities\File\PathUtilities as PATH;
use QuasarSource\Utilities\StringUtilities as STR;
@@ -18,6 +18,24 @@ class PathUtilitiesTest extends FileTestSuite {
private const RELATIVE_TEST = 'tests/universal_utilities/files/PathUtilitiesTest.php';
private const RELATIVE_BASE = 'applications/asset_server/code_manager/';
+ private $app;
+ private $relative_path;
+
+ public function setUp() {
+ /*
+ $kernel = new AppKernel('test', true);
+ $kernel->boot();
+ $this->app = new Application();
+ $this->app->setAutoExit(false);
+
+ $this->relative_path = $this->app->getKernel()
+ */
+
+ $a = static::$kernel->getContainer()->getParameter('PATH_RELATIVE_PROJECT_CONFIGS');
+ var_dump('PATH RELATIVE PROJECT CONFIGS IS {' . $a . '}');
+ }
+
+ /*
public function test_remove_layer(): void {
// Positive cases.
$this->assertSame('/a/b/', PATH::remove_layer(self::DATA));
@@ -27,7 +45,7 @@ public function test_remove_layer(): void {
}
public function test_get(): void {
- $dir_base = STR::get_matches_removed(__FILE__, self::RELATIVE_BASE . self::RELATIVE_TEST);
+ $dir_base = STR::remove(__FILE__, self::RELATIVE_BASE . self::RELATIVE_TEST);
$dir_asset = $dir_base . 'applications/asset_server/';
$dir_node = $dir_asset . 'js/';
$dir_code_manager = $dir_asset . 'code_manager/';
@@ -37,9 +55,9 @@ public function test_get(): void {
$this->sub_test_get($dir_base . 'configs/code_manager.yml', PATH::PROJECT_CONFIG);
$this->sub_test_get($dir_asset, PATH::ASSET_DIR);
$this->sub_test_get($dir_node, PATH::NODE_DIR);
- $this->sub_test_get($dir_node . 'minify_html_file.js', PATH::JS_MINIFY_HTML);
- $this->sub_test_get($dir_node . 'minify_css_file.js', PATH::JS_MINIFY_CSS);
- $this->sub_test_get($dir_node . 'minify_js_file.js', PATH::JS_MINIFY_JS);
+ $this->sub_test_get($dir_node . 'minify_html_file.js', getenv('PATH_RELATIVE_NODE_MINIFY_HTML'));
+ $this->sub_test_get($dir_node . 'minify_css_file.js', getenv('PATH_RELATIVE_NODE_MINIFY_CSS'));
+ $this->sub_test_get($dir_node . 'minify_js_file.js', getenv('PATH_RELATIVE_NODE_MINIFY_CSS'));
$this->sub_test_get($dir_code_manager, PATH::CODE_MANAGER);
$this->sub_test_get($dir_code_manager . 'composer.phar', PATH::COMPOSER);
$this->sub_test_get($dir_code_manager . 'report.xml', PATH::QA_REPORT);
@@ -48,16 +66,7 @@ public function test_get(): void {
private function sub_test_get(string $expected, int $key): void {
$this->assertSame($expected, PATH::get($key));
- }
-
- public function test_is_valid(): void {
- $path_utilities = PATH::get(PATH::TEST_PATH_UTILITIES);
-
- // Positive cases.
- $this->assertTrue(PATH::is_valid($path_utilities));
- // Negative cases.
- $this->assertFalse(PATH::is_valid($path_utilities . 'fake_path'));
- }
+ }*/
}
diff --git a/applications/asset_server/src/asset_server.sh b/applications/asset_server/src/asset_server.sh
index 989583e51..2098fb50b 100755
--- a/applications/asset_server/src/asset_server.sh
+++ b/applications/asset_server/src/asset_server.sh
@@ -1,6 +1,24 @@
#!/usr/bin/env bash
-CMD_CONSOLE_MINIFY="minify:css"
+#-----------------------------------------------------------------------------------------------------------------------
+export PATH_DIRECTORY_PROJECT_BASE='/quasar_source/'
+export PATH_DIRECTORY_CODE_MANAGER='/quasar_source/applications/asset_server/code_manager/'
+export PATH_DIRECTORY_NODE='/quasar_source/applications/asset_server/js/'
+export PATH_QA_REPORT=${PATH_DIRECTORY_CODE_MANAGER}'report.xml'
+export PATH_PROJECT_CONFIGS='/quasar_source/configs/code_manager.yml'
+export PATH_PROJECT_BUNDLES='/quasar_source/applications/asset_server/code_manager/config/bundles.php'
+export PATH_NODE_MINIFY_HTML='/quasar_source/libraries/node/minifier_html.js'
+export PATH_NODE_MINIFY_CSS='/quasar_source/libraries/node/minifier_css.js'
+export PATH_NODE_MINIFY_JS='/quasar_source/libraries/node/minifier_css.js'
+export SYMFONY_ENV='dev'
+export DB_NAME='postgres'
+export PATH_RELATIVE_NODE_MINIFY_HTML='applications/asset_server/js/minify_html_file.js'
+export PATH_RELATIVE_NODE_MINIFY_CSS='applications/asset_server/js/minify_css_file.js'
+export PATH_RELATIVE_NODE_MINIFY_JS='applications/asset_server/js/minify_js_file.js'
+#-----------------------------------------------------------------------------------------------------------------------
+
+#PATH_RELATIVE_PROJECT_CONFIGS='configs/code_manager.yml'
+
RUN_CONSOLE="php /quasar_source/libraries/php/console.php"
RUN_DEPLOYER="./dep --file=/quasar_source/libraries/php/deploy.php"
CMD_DEPLOYER_RUN_ALL_TESTS="run_all_tests -vvv"
@@ -11,7 +29,6 @@ FILE_CSS_NEXUS_LOCAL=/quasar_source/assets/css/nexus_local.css
FILE_CSS_NEXUS_LOCAL_OUTPUT=/quasar_source/var/web_assets/nexus_local.min.css
FILE_CSS_NEXUS_LOCAL_OUTPUT_FINAL=/quasar_source/var/web_assets/nexus_local.min.css.gz
RUN_CONSOLE_CMD="php /quasar_source/applications/asset_server/code_manager/bin/console"
-RUN_COMPOSER_CMD="php composer.phar"
#${RUN_DEPLOYER} ${CMD_DEPLOYER_FULL_BUILD}
@@ -21,21 +38,27 @@ RUN_COMPOSER_CMD="php composer.phar"
#${RUN_DEPLOYER} ${CMD_DEPLOYER_BUILD_NEXUS_COURIER}
-cd /quasar_source/applications/asset_server/code_manager;
+cd ${PATH_DIRECTORY_CODE_MANAGER}
#php -S "0.0.0.0:80"
-#${RUN_COMPOSER_CMD} install -o;
+php -v
+
+#composer self-update
+#composer validate
+#composer update
+#composer install -o
+#composer install -o #--enable-opcache --enable-opcache-file
+
+#apk add --update php-opcache@php
+
+
+#composer require symfony/config
#${RUN_CONSOLE_CMD} doctrine:database:drop -vvv --force
${RUN_CONSOLE_CMD} code:health_check -vvv
-#curl -s https://getcomposer.org/installer
-#chmod +x ./composer.phar
-#${RUN_COMPOSER_CMD} self-update;
#${RUN_CONSOLE} cache:clear
-#${RUN_COMPOSER_CMD} update -o;
-
#${RUN_CONSOLE_CMD} list
#${RUN_CONSOLE_CMD} doctrine:cache:delete
diff --git a/applications/ftp_server/Dockerfile b/applications/ftp_server/Dockerfile
new file mode 100644
index 000000000..e69de29bb
diff --git a/configs/code_manager.yml b/configs/code_manager.yml
index 57f7b8dec..596419c25 100644
--- a/configs/code_manager.yml
+++ b/configs/code_manager.yml
@@ -4,30 +4,30 @@ global_information:
assets:
.css:
- data_directory : '/quasar_source/assets/css/'
- output_directory: '/quasar_source/var/web_assets/'
- files :
+ PATH_DIRECTORY_DATA : '/quasar_source/assets/css/'
+ PATH_DIRECTORY_OUTPUT: '/quasar_source/var/web_assets/'
+ files :
nexus_local.css: ['minify', 'gzipped']
dev.css : ['minify', 'gzipped']
.html:
- data_directory : '/quasar_source/assets/html/'
- output_directory: '/quasar_source/var/web_assets/'
- files :
+ PATH_DIRECTORY_DATA : '/quasar_source/assets/html/'
+ PATH_DIRECTORY_OUTPUT: '/quasar_source/var/web_assets/'
+ files :
nexus_local.html: ['pre_process', '/quasar_source/var/web_assets/nexus_local.min.css', 'minify', 'gzipped']
dev.html : ['pre_process', '/quasar_source/var/web_assets/dev.min.css' , 'minify', 'gzipped']
.json:
- data_directory : '/quasar_source/assets/fonts/three_js_fonts/'
- output_directory: '/quasar_source/var/web_assets/'
- files :
+ PATH_DIRECTORY_DATA : '/quasar_source/assets/fonts/three_js_fonts/'
+ PATH_DIRECTORY_OUTPUT: '/quasar_source/var/web_assets/'
+ files :
gentilis_regular.typeface.json: ['gzipped']
.vert:
- data_directory : '/quasar_source/assets/shaders/'
- output_directory: '/quasar_source/var/web_assets/'
- files : []
+ PATH_DIRECTORY_DATA : '/quasar_source/assets/shaders/'
+ PATH_DIRECTORY_OUTPUT: '/quasar_source/var/web_assets/'
+ files : []
.frag:
- data_directory : '/quasar_source/assets/shaders/'
- output_directory: '/quasar_source/var/web_assets/'
- files : []
+ PATH_DIRECTORY_DATA : '/quasar_source/assets/shaders/'
+ PATH_DIRECTORY_OUTPUT: '/quasar_source/var/web_assets/'
+ files : []
npm:
- 'css-tree'
diff --git a/configs/php/pre_modified.ini b/configs/php/pre_modified.ini
new file mode 100644
index 000000000..fa09ade78
--- /dev/null
+++ b/configs/php/pre_modified.ini
@@ -0,0 +1,1932 @@
+[PHP]
+
+;;;;;;;;;;;;;;;;;;;
+; About php.ini ;
+;;;;;;;;;;;;;;;;;;;
+; PHP's initialization file, generally called php.ini, is responsible for
+; configuring many of the aspects of PHP's behavior.
+
+; PHP attempts to find and load this configuration from a number of locations.
+; The following is a summary of its search order:
+; 1. SAPI module specific location.
+; 2. The PHPRC environment variable. (As of PHP 5.2.0)
+; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
+; 4. Current working directory (except CLI)
+; 5. The web server's directory (for SAPI modules), or directory of PHP
+; (otherwise in Windows)
+; 6. The directory from the --with-config-file-path compile time option, or the
+; Windows directory (usually C:\windows)
+; See the PHP docs for more specific information.
+; http://php.net/configuration.file
+
+; The syntax of the file is extremely simple. Whitespace and lines
+; beginning with a semicolon are silently ignored (as you probably guessed).
+; Section headers (e.g. [Foo]) are also silently ignored, even though
+; they might mean something in the future.
+
+; Directives following the section heading [PATH=/www/mysite] only
+; apply to PHP files in the /www/mysite directory. Directives
+; following the section heading [HOST=www.example.com] only apply to
+; PHP files served from www.example.com. Directives set in these
+; special sections cannot be overridden by user-defined INI files or
+; at runtime. Currently, [PATH=] and [HOST=] sections only work under
+; CGI/FastCGI.
+; http://php.net/ini.sections
+
+; Directives are specified using the following syntax:
+; directive = value
+; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
+; Directives are variables used to configure PHP or PHP extensions.
+; There is no name validation. If PHP can't find an expected
+; directive because it is not set or is mistyped, a default value will be used.
+
+; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one
+; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
+; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a
+; previously set variable or directive (e.g. ${foo})
+
+; Expressions in the INI file are limited to bitwise operators and parentheses:
+; | bitwise OR
+; ^ bitwise XOR
+; & bitwise AND
+; ~ bitwise NOT
+; ! boolean NOT
+
+; Boolean flags can be turned on using the values 1, On, True or Yes.
+; They can be turned off using the values 0, Off, False or No.
+
+; An empty string can be denoted by simply not writing anything after the equal
+; sign, or by using the None keyword:
+
+; foo = ; sets foo to an empty string
+; foo = None ; sets foo to an empty string
+; foo = "None" ; sets foo to the string 'None'
+
+; If you use constants in your value, and these constants belong to a
+; dynamically loaded extension (either a PHP extension or a Zend extension),
+; you may only use these constants *after* the line that loads the extension.
+
+;;;;;;;;;;;;;;;;;;;
+; About this file ;
+;;;;;;;;;;;;;;;;;;;
+; PHP comes packaged with two INI files. One that is recommended to be used
+; in production environments and one that is recommended to be used in
+; development environments.
+
+; php.ini-production contains settings which hold security, performance and
+; best practices at its core. But please be aware, these settings may break
+; compatibility with older or less security conscience applications. We
+; recommending using the production ini in production and testing environments.
+
+; php.ini-development is very similar to its production variant, except it is
+; much more verbose when it comes to errors. We recommend using the
+; development version only in development environments, as errors shown to
+; application users can inadvertently leak otherwise secure information.
+
+; This is the php.ini-production INI file.
+
+;;;;;;;;;;;;;;;;;;;
+; Quick Reference ;
+;;;;;;;;;;;;;;;;;;;
+; The following are all the settings which are different in either the production
+; or development versions of the INIs with respect to PHP's default behavior.
+; Please see the actual settings later in the document for more details as to why
+; we recommend these changes in PHP's behavior.
+
+; display_errors
+; Default Value: On
+; Development Value: On
+; Production Value: Off
+
+; display_startup_errors
+; Default Value: Off
+; Development Value: On
+; Production Value: Off
+
+; error_reporting
+; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
+; Development Value: E_ALL
+; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
+
+; html_errors
+; Default Value: On
+; Development Value: On
+; Production value: On
+
+; log_errors
+; Default Value: Off
+; Development Value: On
+; Production Value: On
+
+; max_input_time
+; Default Value: -1 (Unlimited)
+; Development Value: 60 (60 seconds)
+; Production Value: 60 (60 seconds)
+
+; output_buffering
+; Default Value: Off
+; Development Value: 4096
+; Production Value: 4096
+
+; register_argc_argv
+; Default Value: On
+; Development Value: Off
+; Production Value: Off
+
+; request_order
+; Default Value: None
+; Development Value: "GP"
+; Production Value: "GP"
+
+; session.gc_divisor
+; Default Value: 100
+; Development Value: 1000
+; Production Value: 1000
+
+; session.sid_bits_per_character
+; Default Value: 4
+; Development Value: 5
+; Production Value: 5
+
+; short_open_tag
+; Default Value: On
+; Development Value: Off
+; Production Value: Off
+
+; track_errors
+; Default Value: Off
+; Development Value: On
+; Production Value: Off
+
+; variables_order
+; Default Value: "EGPCS"
+; Development Value: "GPCS"
+; Production Value: "GPCS"
+
+;;;;;;;;;;;;;;;;;;;;
+; php.ini Options ;
+;;;;;;;;;;;;;;;;;;;;
+; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
+;user_ini.filename = ".user.ini"
+
+; To disable this feature set this option to an empty value
+;user_ini.filename =
+
+; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
+;user_ini.cache_ttl = 300
+
+;;;;;;;;;;;;;;;;;;;;
+; Language Options ;
+;;;;;;;;;;;;;;;;;;;;
+
+; Enable the PHP scripting language engine under Apache.
+; http://php.net/engine
+engine = On
+
+; This directive determines whether or not PHP will recognize code between
+; and ?> tags as PHP source which should be processed as such. It is
+; generally recommended that should be used and that this feature
+; should be disabled, as enabling it may result in issues when generating XML
+; documents, however this remains supported for backward compatibility reasons.
+; Note that this directive does not control the = shorthand tag, which can be
+; used regardless of this directive.
+; Default Value: On
+; Development Value: Off
+; Production Value: Off
+; http://php.net/short-open-tag
+short_open_tag = Off
+
+; The number of significant digits displayed in floating point numbers.
+; http://php.net/precision
+precision = 14
+
+; Output buffering is a mechanism for controlling how much output data
+; (excluding headers and cookies) PHP should keep internally before pushing that
+; data to the client. If your application's output exceeds this setting, PHP
+; will send that data in chunks of roughly the size you specify.
+; Turning on this setting and managing its maximum buffer size can yield some
+; interesting side-effects depending on your application and web server.
+; You may be able to send headers and cookies after you've already sent output
+; through print or echo. You also may see performance benefits if your server is
+; emitting less packets due to buffered output versus PHP streaming the output
+; as it gets it. On production servers, 4096 bytes is a good setting for performance
+; reasons.
+; Note: Output buffering can also be controlled via Output Buffering Control
+; functions.
+; Possible Values:
+; On = Enabled and buffer is unlimited. (Use with caution)
+; Off = Disabled
+; Integer = Enables the buffer and sets its maximum size in bytes.
+; Note: This directive is hardcoded to Off for the CLI SAPI
+; Default Value: Off
+; Development Value: 4096
+; Production Value: 4096
+; http://php.net/output-buffering
+output_buffering = 4096
+
+; You can redirect all of the output of your scripts to a function. For
+; example, if you set output_handler to "mb_output_handler", character
+; encoding will be transparently converted to the specified encoding.
+; Setting any output handler automatically turns on output buffering.
+; Note: People who wrote portable scripts should not depend on this ini
+; directive. Instead, explicitly set the output handler using ob_start().
+; Using this ini directive may cause problems unless you know what script
+; is doing.
+; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"
+; and you cannot use both "ob_gzhandler" and "zlib.output_compression".
+; Note: output_handler must be empty if this is set 'On' !!!!
+; Instead you must use zlib.output_handler.
+; http://php.net/output-handler
+;output_handler =
+
+; URL rewriter function rewrites URL on the fly by using
+; output buffer. You can set target tags by this configuration.
+; "form" tag is special tag. It will add hidden input tag to pass values.
+; Refer to session.trans_sid_tags for usage.
+; Default Value: "form="
+; Development Value: "form="
+; Production Value: "form="
+;url_rewriter.tags
+
+; URL rewriter will not rewrite absolute URL nor form by default. To enable
+; absolute URL rewrite, allowed hosts must be defined at RUNTIME.
+; Refer to session.trans_sid_hosts for more details.
+; Default Value: ""
+; Development Value: ""
+; Production Value: ""
+;url_rewriter.hosts
+
+; Transparent output compression using the zlib library
+; Valid values for this option are 'off', 'on', or a specific buffer size
+; to be used for compression (default is 4KB)
+; Note: Resulting chunk size may vary due to nature of compression. PHP
+; outputs chunks that are few hundreds bytes each as a result of
+; compression. If you prefer a larger chunk size for better
+; performance, enable output_buffering in addition.
+; Note: You need to use zlib.output_handler instead of the standard
+; output_handler, or otherwise the output will be corrupted.
+; http://php.net/zlib.output-compression
+zlib.output_compression = Off
+
+; http://php.net/zlib.output-compression-level
+;zlib.output_compression_level = -1
+
+; You cannot specify additional output handlers if zlib.output_compression
+; is activated here. This setting does the same as output_handler but in
+; a different order.
+; http://php.net/zlib.output-handler
+;zlib.output_handler =
+
+; Implicit flush tells PHP to tell the output layer to flush itself
+; automatically after every output block. This is equivalent to calling the
+; PHP function flush() after each and every call to print() or echo() and each
+; and every HTML block. Turning this option on has serious performance
+; implications and is generally recommended for debugging purposes only.
+; http://php.net/implicit-flush
+; Note: This directive is hardcoded to On for the CLI SAPI
+implicit_flush = Off
+
+; The unserialize callback function will be called (with the undefined class'
+; name as parameter), if the unserializer finds an undefined class
+; which should be instantiated. A warning appears if the specified function is
+; not defined, or if the function doesn't include/implement the missing class.
+; So only set this entry, if you really want to implement such a
+; callback-function.
+unserialize_callback_func =
+
+; When floats & doubles are serialized, store serialize_precision significant
+; digits after the floating point. The default value ensures that when floats
+; are decoded with unserialize, the data will remain the same.
+; The value is also used for json_encode when encoding double values.
+; If -1 is used, then dtoa mode 0 is used which automatically select the best
+; precision.
+serialize_precision = -1
+
+; open_basedir, if set, limits all file operations to the defined directory
+; and below. This directive makes most sense if used in a per-directory
+; or per-virtualhost web server configuration file.
+; Note: disables the realpath cache
+; http://php.net/open-basedir
+;open_basedir =
+
+; This directive allows you to disable certain functions for security reasons.
+; It receives a comma-delimited list of function names.
+; http://php.net/disable-functions
+disable_functions =
+
+; This directive allows you to disable certain classes for security reasons.
+; It receives a comma-delimited list of class names.
+; http://php.net/disable-classes
+disable_classes =
+
+; Colors for Syntax Highlighting mode. Anything that's acceptable in
+; would work.
+; http://php.net/syntax-highlighting
+;highlight.string = #DD0000
+;highlight.comment = #FF9900
+;highlight.keyword = #007700
+;highlight.default = #0000BB
+;highlight.html = #000000
+
+; If enabled, the request will be allowed to complete even if the user aborts
+; the request. Consider enabling it if executing long requests, which may end up
+; being interrupted by the user or a browser timing out. PHP's default behavior
+; is to disable this feature.
+; http://php.net/ignore-user-abort
+;ignore_user_abort = On
+
+; Determines the size of the realpath cache to be used by PHP. This value should
+; be increased on systems where PHP opens many files to reflect the quantity of
+; the file operations performed.
+; Note: if open_basedir is set, the cache is disabled
+; http://php.net/realpath-cache-size
+;realpath_cache_size = 4096k
+
+; Duration of time, in seconds for which to cache realpath information for a given
+; file or directory. For systems with rarely changing files, consider increasing this
+; value.
+; http://php.net/realpath-cache-ttl
+;realpath_cache_ttl = 120
+
+; Enables or disables the circular reference collector.
+; http://php.net/zend.enable-gc
+zend.enable_gc = On
+
+; If enabled, scripts may be written in encodings that are incompatible with
+; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such
+; encodings. To use this feature, mbstring extension must be enabled.
+; Default: Off
+;zend.multibyte = Off
+
+; Allows to set the default encoding for the scripts. This value will be used
+; unless "declare(encoding=...)" directive appears at the top of the script.
+; Only affects if zend.multibyte is set.
+; Default: ""
+;zend.script_encoding =
+
+;;;;;;;;;;;;;;;;;
+; Miscellaneous ;
+;;;;;;;;;;;;;;;;;
+
+; Decides whether PHP may expose the fact that it is installed on the server
+; (e.g. by adding its signature to the Web server header). It is no security
+; threat in any way, but it makes it possible to determine whether you use PHP
+; on your server or not.
+; http://php.net/expose-php
+expose_php = On
+
+;;;;;;;;;;;;;;;;;;;
+; Resource Limits ;
+;;;;;;;;;;;;;;;;;;;
+
+; Maximum execution time of each script, in seconds
+; http://php.net/max-execution-time
+; Note: This directive is hardcoded to 0 for the CLI SAPI
+max_execution_time = 30
+
+; Maximum amount of time each script may spend parsing request data. It's a good
+; idea to limit this time on productions servers in order to eliminate unexpectedly
+; long running scripts.
+; Note: This directive is hardcoded to -1 for the CLI SAPI
+; Default Value: -1 (Unlimited)
+; Development Value: 60 (60 seconds)
+; Production Value: 60 (60 seconds)
+; http://php.net/max-input-time
+max_input_time = 60
+
+; Maximum input variable nesting level
+; http://php.net/max-input-nesting-level
+;max_input_nesting_level = 64
+
+; How many GET/POST/COOKIE input variables may be accepted
+;max_input_vars = 1000
+
+; Maximum amount of memory a script may consume (128MB)
+; http://php.net/memory-limit
+memory_limit = 128M
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Error handling and logging ;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; This directive informs PHP of which errors, warnings and notices you would like
+; it to take action for. The recommended way of setting values for this
+; directive is through the use of the error level constants and bitwise
+; operators. The error level constants are below here for convenience as well as
+; some common settings and their meanings.
+; By default, PHP is set to take action on all errors, notices and warnings EXCEPT
+; those related to E_NOTICE and E_STRICT, which together cover best practices and
+; recommended coding standards in PHP. For performance reasons, this is the
+; recommend error reporting setting. Your production server shouldn't be wasting
+; resources complaining about best practices and coding standards. That's what
+; development servers and development settings are for.
+; Note: The php.ini-development file has this setting as E_ALL. This
+; means it pretty much reports everything which is exactly what you want during
+; development and early testing.
+;
+; Error Level Constants:
+; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0)
+; E_ERROR - fatal run-time errors
+; E_RECOVERABLE_ERROR - almost fatal run-time errors
+; E_WARNING - run-time warnings (non-fatal errors)
+; E_PARSE - compile-time parse errors
+; E_NOTICE - run-time notices (these are warnings which often result
+; from a bug in your code, but it's possible that it was
+; intentional (e.g., using an uninitialized variable and
+; relying on the fact it is automatically initialized to an
+; empty string)
+; E_STRICT - run-time notices, enable to have PHP suggest changes
+; to your code which will ensure the best interoperability
+; and forward compatibility of your code
+; E_CORE_ERROR - fatal errors that occur during PHP's initial startup
+; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's
+; initial startup
+; E_COMPILE_ERROR - fatal compile-time errors
+; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
+; E_USER_ERROR - user-generated error message
+; E_USER_WARNING - user-generated warning message
+; E_USER_NOTICE - user-generated notice message
+; E_DEPRECATED - warn about code that will not work in future versions
+; of PHP
+; E_USER_DEPRECATED - user-generated deprecation warnings
+;
+; Common Values:
+; E_ALL (Show all errors, warnings and notices including coding standards.)
+; E_ALL & ~E_NOTICE (Show all errors, except for notices)
+; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)
+; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
+; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
+; Development Value: E_ALL
+; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
+; http://php.net/error-reporting
+error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
+
+; This directive controls whether or not and where PHP will output errors,
+; notices and warnings too. Error output is very useful during development, but
+; it could be very dangerous in production environments. Depending on the code
+; which is triggering the error, sensitive information could potentially leak
+; out of your application such as database usernames and passwords or worse.
+; For production environments, we recommend logging errors rather than
+; sending them to STDOUT.
+; Possible Values:
+; Off = Do not display any errors
+; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
+; On or stdout = Display errors to STDOUT
+; Default Value: On
+; Development Value: On
+; Production Value: Off
+; http://php.net/display-errors
+display_errors = Off
+
+; The display of errors which occur during PHP's startup sequence are handled
+; separately from display_errors. PHP's default behavior is to suppress those
+; errors from clients. Turning the display of startup errors on can be useful in
+; debugging configuration problems. We strongly recommend you
+; set this to 'off' for production servers.
+; Default Value: Off
+; Development Value: On
+; Production Value: Off
+; http://php.net/display-startup-errors
+display_startup_errors = Off
+
+; Besides displaying errors, PHP can also log errors to locations such as a
+; server-specific log, STDERR, or a location specified by the error_log
+; directive found below. While errors should not be displayed on productions
+; servers they should still be monitored and logging is a great way to do that.
+; Default Value: Off
+; Development Value: On
+; Production Value: On
+; http://php.net/log-errors
+log_errors = On
+
+; Set maximum length of log_errors. In error_log information about the source is
+; added. The default is 1024 and 0 allows to not apply any maximum length at all.
+; http://php.net/log-errors-max-len
+log_errors_max_len = 1024
+
+; Do not log repeated messages. Repeated errors must occur in same file on same
+; line unless ignore_repeated_source is set true.
+; http://php.net/ignore-repeated-errors
+ignore_repeated_errors = Off
+
+; Ignore source of message when ignoring repeated messages. When this setting
+; is On you will not log errors with repeated messages from different files or
+; source lines.
+; http://php.net/ignore-repeated-source
+ignore_repeated_source = Off
+
+; If this parameter is set to Off, then memory leaks will not be shown (on
+; stdout or in the log). This has only effect in a debug compile, and if
+; error reporting includes E_WARNING in the allowed list
+; http://php.net/report-memleaks
+report_memleaks = On
+
+; This setting is on by default.
+;report_zend_debug = 0
+
+; Store the last error/warning message in $php_errormsg (boolean). Setting this value
+; to On can assist in debugging and is appropriate for development servers. It should
+; however be disabled on production servers.
+; This directive is DEPRECATED.
+; Default Value: Off
+; Development Value: Off
+; Production Value: Off
+; http://php.net/track-errors
+;track_errors = Off
+
+; Turn off normal error reporting and emit XML-RPC error XML
+; http://php.net/xmlrpc-errors
+;xmlrpc_errors = 0
+
+; An XML-RPC faultCode
+;xmlrpc_error_number = 0
+
+; When PHP displays or logs an error, it has the capability of formatting the
+; error message as HTML for easier reading. This directive controls whether
+; the error message is formatted as HTML or not.
+; Note: This directive is hardcoded to Off for the CLI SAPI
+; Default Value: On
+; Development Value: On
+; Production value: On
+; http://php.net/html-errors
+html_errors = On
+
+; If html_errors is set to On *and* docref_root is not empty, then PHP
+; produces clickable error messages that direct to a page describing the error
+; or function causing the error in detail.
+; You can download a copy of the PHP manual from http://php.net/docs
+; and change docref_root to the base URL of your local copy including the
+; leading '/'. You must also specify the file extension being used including
+; the dot. PHP's default behavior is to leave these settings empty, in which
+; case no links to documentation are generated.
+; Note: Never use this feature for production boxes.
+; http://php.net/docref-root
+; Examples
+;docref_root = "/phpmanual/"
+
+; http://php.net/docref-ext
+;docref_ext = .html
+
+; String to output before an error message. PHP's default behavior is to leave
+; this setting blank.
+; http://php.net/error-prepend-string
+; Example:
+;error_prepend_string = ""
+
+; String to output after an error message. PHP's default behavior is to leave
+; this setting blank.
+; http://php.net/error-append-string
+; Example:
+;error_append_string = ""
+
+; Log errors to specified file. PHP's default behavior is to leave this value
+; empty.
+; http://php.net/error-log
+; Example:
+;error_log = php_errors.log
+; Log errors to syslog (Event Log on Windows).
+;error_log = syslog
+
+; The syslog ident is a string which is prepended to every message logged
+; to syslog. Only used when error_log is set to syslog.
+;syslog.ident = php
+
+; The syslog facility is used to specify what type of program is logging
+; the message. Only used when error_log is set to syslog.
+;syslog.facility = user
+
+; Set this to disable filtering control characters (the default).
+; Some loggers only accept NVT-ASCII, others accept anything that's not
+; control characters. If your logger accepts everything, then no filtering
+; is needed at all.
+; Allowed values are:
+; ascii (only base ASCII characters)
+; no_ctrl (all characters except control characters)
+; all (all characters)
+;syslog.filter = ascii
+
+;windows.show_crt_warning
+; Default value: 0
+; Development value: 0
+; Production value: 0
+
+;;;;;;;;;;;;;;;;;
+; Data Handling ;
+;;;;;;;;;;;;;;;;;
+
+; The separator used in PHP generated URLs to separate arguments.
+; PHP's default setting is "&".
+; http://php.net/arg-separator.output
+; Example:
+;arg_separator.output = "&"
+
+; List of separator(s) used by PHP to parse input URLs into variables.
+; PHP's default setting is "&".
+; NOTE: Every character in this directive is considered as separator!
+; http://php.net/arg-separator.input
+; Example:
+;arg_separator.input = ";&"
+
+; This directive determines which super global arrays are registered when PHP
+; starts up. G,P,C,E & S are abbreviations for the following respective super
+; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty
+; paid for the registration of these arrays and because ENV is not as commonly
+; used as the others, ENV is not recommended on productions servers. You
+; can still get access to the environment variables through getenv() should you
+; need to.
+; Default Value: "EGPCS"
+; Development Value: "GPCS"
+; Production Value: "GPCS";
+; http://php.net/variables-order
+variables_order = "GPCS"
+
+; This directive determines which super global data (G,P & C) should be
+; registered into the super global array REQUEST. If so, it also determines
+; the order in which that data is registered. The values for this directive
+; are specified in the same manner as the variables_order directive,
+; EXCEPT one. Leaving this value empty will cause PHP to use the value set
+; in the variables_order directive. It does not mean it will leave the super
+; globals array REQUEST empty.
+; Default Value: None
+; Development Value: "GP"
+; Production Value: "GP"
+; http://php.net/request-order
+request_order = "GP"
+
+; This directive determines whether PHP registers $argv & $argc each time it
+; runs. $argv contains an array of all the arguments passed to PHP when a script
+; is invoked. $argc contains an integer representing the number of arguments
+; that were passed when the script was invoked. These arrays are extremely
+; useful when running scripts from the command line. When this directive is
+; enabled, registering these variables consumes CPU cycles and memory each time
+; a script is executed. For performance reasons, this feature should be disabled
+; on production servers.
+; Note: This directive is hardcoded to On for the CLI SAPI
+; Default Value: On
+; Development Value: Off
+; Production Value: Off
+; http://php.net/register-argc-argv
+register_argc_argv = Off
+
+; When enabled, the ENV, REQUEST and SERVER variables are created when they're
+; first used (Just In Time) instead of when the script starts. If these
+; variables are not used within a script, having this directive on will result
+; in a performance gain. The PHP directive register_argc_argv must be disabled
+; for this directive to have any affect.
+; http://php.net/auto-globals-jit
+auto_globals_jit = On
+
+; Whether PHP will read the POST data.
+; This option is enabled by default.
+; Most likely, you won't want to disable this option globally. It causes $_POST
+; and $_FILES to always be empty; the only way you will be able to read the
+; POST data will be through the php://input stream wrapper. This can be useful
+; to proxy requests or to process the POST data in a memory efficient fashion.
+; http://php.net/enable-post-data-reading
+;enable_post_data_reading = Off
+
+; Maximum size of POST data that PHP will accept.
+; Its value may be 0 to disable the limit. It is ignored if POST data reading
+; is disabled through enable_post_data_reading.
+; http://php.net/post-max-size
+post_max_size = 8M
+
+; Automatically add files before PHP document.
+; http://php.net/auto-prepend-file
+auto_prepend_file =
+
+; Automatically add files after PHP document.
+; http://php.net/auto-append-file
+auto_append_file =
+
+; By default, PHP will output a media type using the Content-Type header. To
+; disable this, simply set it to be empty.
+;
+; PHP's built-in default media type is set to text/html.
+; http://php.net/default-mimetype
+default_mimetype = "text/html"
+
+; PHP's default character set is set to UTF-8.
+; http://php.net/default-charset
+default_charset = "UTF-8"
+
+; PHP internal character encoding is set to empty.
+; If empty, default_charset is used.
+; http://php.net/internal-encoding
+;internal_encoding =
+
+; PHP input character encoding is set to empty.
+; If empty, default_charset is used.
+; http://php.net/input-encoding
+;input_encoding =
+
+; PHP output character encoding is set to empty.
+; If empty, default_charset is used.
+; See also output_buffer.
+; http://php.net/output-encoding
+;output_encoding =
+
+;;;;;;;;;;;;;;;;;;;;;;;;;
+; Paths and Directories ;
+;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; UNIX: "/path1:/path2"
+;include_path = ".:/php/includes"
+;
+; Windows: "\path1;\path2"
+;include_path = ".;c:\php\includes"
+;
+; PHP's default setting for include_path is ".;/path/to/php/pear"
+; http://php.net/include-path
+
+; The root of the PHP pages, used only if nonempty.
+; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
+; if you are running php as a CGI under any web server (other than IIS)
+; see documentation for security issues. The alternate is to use the
+; cgi.force_redirect configuration below
+; http://php.net/doc-root
+doc_root =
+
+; The directory under which PHP opens the script using /~username used only
+; if nonempty.
+; http://php.net/user-dir
+user_dir =
+
+; Directory in which the loadable extensions (modules) reside.
+; http://php.net/extension-dir
+;extension_dir = "./"
+; On windows:
+;extension_dir = "ext"
+
+; Directory where the temporary files should be placed.
+; Defaults to the system default (see sys_get_temp_dir)
+;sys_temp_dir = "/tmp"
+
+; Whether or not to enable the dl() function. The dl() function does NOT work
+; properly in multithreaded servers, such as IIS or Zeus, and is automatically
+; disabled on them.
+; http://php.net/enable-dl
+enable_dl = Off
+
+; cgi.force_redirect is necessary to provide security running PHP as a CGI under
+; most web servers. Left undefined, PHP turns this on by default. You can
+; turn it off here AT YOUR OWN RISK
+; **You CAN safely turn this off for IIS, in fact, you MUST.**
+; http://php.net/cgi.force-redirect
+;cgi.force_redirect = 1
+
+; if cgi.nph is enabled it will force cgi to always sent Status: 200 with
+; every request. PHP's default behavior is to disable this feature.
+;cgi.nph = 1
+
+; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape
+; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
+; will look for to know it is OK to continue execution. Setting this variable MAY
+; cause security issues, KNOW WHAT YOU ARE DOING FIRST.
+; http://php.net/cgi.redirect-status-env
+;cgi.redirect_status_env =
+
+; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
+; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
+; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
+; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting
+; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
+; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
+; http://php.net/cgi.fix-pathinfo
+;cgi.fix_pathinfo=1
+
+; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside
+; of the web tree and people will not be able to circumvent .htaccess security.
+;cgi.discard_path=1
+
+; FastCGI under IIS supports the ability to impersonate
+; security tokens of the calling client. This allows IIS to define the
+; security context that the request runs under. mod_fastcgi under Apache
+; does not currently support this feature (03/17/2002)
+; Set to 1 if running under IIS. Default is zero.
+; http://php.net/fastcgi.impersonate
+;fastcgi.impersonate = 1
+
+; Disable logging through FastCGI connection. PHP's default behavior is to enable
+; this feature.
+;fastcgi.logging = 0
+
+; cgi.rfc2616_headers configuration option tells PHP what type of headers to
+; use when sending HTTP response code. If set to 0, PHP sends Status: header that
+; is supported by Apache. When this option is set to 1, PHP will send
+; RFC2616 compliant header.
+; Default is zero.
+; http://php.net/cgi.rfc2616-headers
+;cgi.rfc2616_headers = 0
+
+; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #!
+; (shebang) at the top of the running script. This line might be needed if the
+; script support running both as stand-alone script and via PHP CGI<. PHP in CGI
+; mode skips this line and ignores its content if this directive is turned on.
+; http://php.net/cgi.check-shebang-line
+;cgi.check_shebang_line=1
+
+;;;;;;;;;;;;;;;;
+; File Uploads ;
+;;;;;;;;;;;;;;;;
+
+; Whether to allow HTTP file uploads.
+; http://php.net/file-uploads
+file_uploads = On
+
+; Temporary directory for HTTP uploaded files (will use system default if not
+; specified).
+; http://php.net/upload-tmp-dir
+;upload_tmp_dir =
+
+; Maximum allowed size for uploaded files.
+; http://php.net/upload-max-filesize
+upload_max_filesize = 2M
+
+; Maximum number of files that can be uploaded via a single request
+max_file_uploads = 20
+
+;;;;;;;;;;;;;;;;;;
+; Fopen wrappers ;
+;;;;;;;;;;;;;;;;;;
+
+; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
+; http://php.net/allow-url-fopen
+allow_url_fopen = On
+
+; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
+; http://php.net/allow-url-include
+allow_url_include = Off
+
+; Define the anonymous ftp password (your email address). PHP's default setting
+; for this is empty.
+; http://php.net/from
+;from="john@doe.com"
+
+; Define the User-Agent string. PHP's default setting for this is empty.
+; http://php.net/user-agent
+;user_agent="PHP"
+
+; Default timeout for socket based streams (seconds)
+; http://php.net/default-socket-timeout
+default_socket_timeout = 60
+
+; If your scripts have to deal with files from Macintosh systems,
+; or you are running on a Mac and need to deal with files from
+; unix or win32 systems, setting this flag will cause PHP to
+; automatically detect the EOL character in those files so that
+; fgets() and file() will work regardless of the source of the file.
+; http://php.net/auto-detect-line-endings
+;auto_detect_line_endings = Off
+
+;;;;;;;;;;;;;;;;;;;;;;
+; Dynamic Extensions ;
+;;;;;;;;;;;;;;;;;;;;;;
+
+; If you wish to have an extension loaded automatically, use the following
+; syntax:
+;
+; extension=modulename
+;
+; For example:
+;
+; extension=mysqli
+;
+; When the extension library to load is not located in the default extension
+; directory, You may specify an absolute path to the library file:
+;
+; extension=/path/to/extension/mysqli.so
+;
+; Note : The syntax used in previous PHP versions ('extension=.so' and
+; 'extension='php_.dll') is supported for legacy reasons and may be
+; deprecated in a future PHP major version. So, when it is possible, please
+; move to the new ('extension=) syntax.
+;
+; Notes for Windows environments :
+;
+; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
+; extension folders as well as the separate PECL DLL download (PHP 5+).
+; Be sure to appropriately set the extension_dir directive.
+;
+;extension=bz2
+;extension=curl
+;extension=fileinfo
+;extension=gd2
+;extension=gettext
+;extension=gmp
+;extension=intl
+;extension=imap
+;extension=interbase
+;extension=ldap
+;extension=mbstring
+;extension=exif ; Must be after mbstring as it depends on it
+;extension=mysqli
+;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
+;extension=odbc
+;extension=openssl
+;extension=pdo_firebird
+;extension=pdo_mysql
+;extension=pdo_oci
+;extension=pdo_odbc
+;extension=pdo_pgsql
+;extension=pdo_sqlite
+;extension=pgsql
+;extension=shmop
+
+; The MIBS data available in the PHP distribution must be installed.
+; See http://www.php.net/manual/en/snmp.installation.php
+;extension=snmp
+
+;extension=soap
+;extension=sockets
+;extension=sodium
+;extension=sqlite3
+;extension=tidy
+;extension=xmlrpc
+;extension=xsl
+
+;;;;;;;;;;;;;;;;;;;
+; Module Settings ;
+;;;;;;;;;;;;;;;;;;;
+
+[CLI Server]
+; Whether the CLI web server uses ANSI color coding in its terminal output.
+cli_server.color = On
+
+[Date]
+; Defines the default timezone used by the date functions
+; http://php.net/date.timezone
+;date.timezone =
+
+; http://php.net/date.default-latitude
+;date.default_latitude = 31.7667
+
+; http://php.net/date.default-longitude
+;date.default_longitude = 35.2333
+
+; http://php.net/date.sunrise-zenith
+;date.sunrise_zenith = 90.583333
+
+; http://php.net/date.sunset-zenith
+;date.sunset_zenith = 90.583333
+
+[filter]
+; http://php.net/filter.default
+;filter.default = unsafe_raw
+
+; http://php.net/filter.default-flags
+;filter.default_flags =
+
+[iconv]
+; Use of this INI entry is deprecated, use global input_encoding instead.
+; If empty, default_charset or input_encoding or iconv.input_encoding is used.
+; The precedence is: default_charset < input_encoding < iconv.input_encoding
+;iconv.input_encoding =
+
+; Use of this INI entry is deprecated, use global internal_encoding instead.
+; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
+; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
+;iconv.internal_encoding =
+
+; Use of this INI entry is deprecated, use global output_encoding instead.
+; If empty, default_charset or output_encoding or iconv.output_encoding is used.
+; The precedence is: default_charset < output_encoding < iconv.output_encoding
+; To use an output encoding conversion, iconv's output handler must be set
+; otherwise output encoding conversion cannot be performed.
+;iconv.output_encoding =
+
+[imap]
+; rsh/ssh logins are disabled by default. Use this INI entry if you want to
+; enable them. Note that the IMAP library does not filter mailbox names before
+; passing them to rsh/ssh command, thus passing untrusted data to this function
+; with rsh/ssh enabled is insecure.
+;imap.enable_insecure_rsh=0
+
+[intl]
+;intl.default_locale =
+; This directive allows you to produce PHP errors when some error
+; happens within intl functions. The value is the level of the error produced.
+; Default is 0, which does not produce any errors.
+;intl.error_level = E_WARNING
+;intl.use_exceptions = 0
+
+[sqlite3]
+;sqlite3.extension_dir =
+
+[Pcre]
+; PCRE library backtracking limit.
+; http://php.net/pcre.backtrack-limit
+;pcre.backtrack_limit=100000
+
+; PCRE library recursion limit.
+; Please note that if you set this value to a high number you may consume all
+; the available process stack and eventually crash PHP (due to reaching the
+; stack size limit imposed by the Operating System).
+; http://php.net/pcre.recursion-limit
+;pcre.recursion_limit=100000
+
+; Enables or disables JIT compilation of patterns. This requires the PCRE
+; library to be compiled with JIT support.
+;pcre.jit=1
+
+[Pdo]
+; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
+; http://php.net/pdo-odbc.connection-pooling
+;pdo_odbc.connection_pooling=strict
+
+;pdo_odbc.db2_instance_name
+
+[Pdo_mysql]
+; Default socket name for local MySQL connects. If empty, uses the built-in
+; MySQL defaults.
+pdo_mysql.default_socket=
+
+[Phar]
+; http://php.net/phar.readonly
+;phar.readonly = On
+
+; http://php.net/phar.require-hash
+;phar.require_hash = On
+
+;phar.cache_list =
+
+[mail function]
+; For Win32 only.
+; http://php.net/smtp
+SMTP = localhost
+; http://php.net/smtp-port
+smtp_port = 25
+
+; For Win32 only.
+; http://php.net/sendmail-from
+;sendmail_from = me@example.com
+
+; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
+; http://php.net/sendmail-path
+;sendmail_path =
+
+; Force the addition of the specified parameters to be passed as extra parameters
+; to the sendmail binary. These parameters will always replace the value of
+; the 5th parameter to mail().
+;mail.force_extra_parameters =
+
+; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
+mail.add_x_header = Off
+
+; The path to a log file that will log all mail() calls. Log entries include
+; the full path of the script, line number, To address and headers.
+;mail.log =
+; Log mail to syslog (Event Log on Windows).
+;mail.log = syslog
+
+[ODBC]
+; http://php.net/odbc.default-db
+;odbc.default_db = Not yet implemented
+
+; http://php.net/odbc.default-user
+;odbc.default_user = Not yet implemented
+
+; http://php.net/odbc.default-pw
+;odbc.default_pw = Not yet implemented
+
+; Controls the ODBC cursor model.
+; Default: SQL_CURSOR_STATIC (default).
+;odbc.default_cursortype
+
+; Allow or prevent persistent links.
+; http://php.net/odbc.allow-persistent
+odbc.allow_persistent = On
+
+; Check that a connection is still valid before reuse.
+; http://php.net/odbc.check-persistent
+odbc.check_persistent = On
+
+; Maximum number of persistent links. -1 means no limit.
+; http://php.net/odbc.max-persistent
+odbc.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent). -1 means no limit.
+; http://php.net/odbc.max-links
+odbc.max_links = -1
+
+; Handling of LONG fields. Returns number of bytes to variables. 0 means
+; passthru.
+; http://php.net/odbc.defaultlrl
+odbc.defaultlrl = 4096
+
+; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
+; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
+; of odbc.defaultlrl and odbc.defaultbinmode
+; http://php.net/odbc.defaultbinmode
+odbc.defaultbinmode = 1
+
+[Interbase]
+; Allow or prevent persistent links.
+ibase.allow_persistent = 1
+
+; Maximum number of persistent links. -1 means no limit.
+ibase.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent). -1 means no limit.
+ibase.max_links = -1
+
+; Default database name for ibase_connect().
+;ibase.default_db =
+
+; Default username for ibase_connect().
+;ibase.default_user =
+
+; Default password for ibase_connect().
+;ibase.default_password =
+
+; Default charset for ibase_connect().
+;ibase.default_charset =
+
+; Default timestamp format.
+ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
+
+; Default date format.
+ibase.dateformat = "%Y-%m-%d"
+
+; Default time format.
+ibase.timeformat = "%H:%M:%S"
+
+[MySQLi]
+
+; Maximum number of persistent links. -1 means no limit.
+; http://php.net/mysqli.max-persistent
+mysqli.max_persistent = -1
+
+; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
+; http://php.net/mysqli.allow_local_infile
+;mysqli.allow_local_infile = On
+
+; Allow or prevent persistent links.
+; http://php.net/mysqli.allow-persistent
+mysqli.allow_persistent = On
+
+; Maximum number of links. -1 means no limit.
+; http://php.net/mysqli.max-links
+mysqli.max_links = -1
+
+; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
+; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
+; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
+; at MYSQL_PORT.
+; http://php.net/mysqli.default-port
+mysqli.default_port = 3306
+
+; Default socket name for local MySQL connects. If empty, uses the built-in
+; MySQL defaults.
+; http://php.net/mysqli.default-socket
+mysqli.default_socket =
+
+; Default host for mysql_connect() (doesn't apply in safe mode).
+; http://php.net/mysqli.default-host
+mysqli.default_host =
+
+; Default user for mysql_connect() (doesn't apply in safe mode).
+; http://php.net/mysqli.default-user
+mysqli.default_user =
+
+; Default password for mysqli_connect() (doesn't apply in safe mode).
+; Note that this is generally a *bad* idea to store passwords in this file.
+; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
+; and reveal this password! And of course, any users with read access to this
+; file will be able to reveal the password as well.
+; http://php.net/mysqli.default-pw
+mysqli.default_pw =
+
+; Allow or prevent reconnect
+mysqli.reconnect = Off
+
+[mysqlnd]
+; Enable / Disable collection of general statistics by mysqlnd which can be
+; used to tune and monitor MySQL operations.
+mysqlnd.collect_statistics = On
+
+; Enable / Disable collection of memory usage statistics by mysqlnd which can be
+; used to tune and monitor MySQL operations.
+mysqlnd.collect_memory_statistics = Off
+
+; Records communication from all extensions using mysqlnd to the specified log
+; file.
+; http://php.net/mysqlnd.debug
+;mysqlnd.debug =
+
+; Defines which queries will be logged.
+;mysqlnd.log_mask = 0
+
+; Default size of the mysqlnd memory pool, which is used by result sets.
+;mysqlnd.mempool_default_size = 16000
+
+; Size of a pre-allocated buffer used when sending commands to MySQL in bytes.
+;mysqlnd.net_cmd_buffer_size = 2048
+
+; Size of a pre-allocated buffer used for reading data sent by the server in
+; bytes.
+;mysqlnd.net_read_buffer_size = 32768
+
+; Timeout for network requests in seconds.
+;mysqlnd.net_read_timeout = 31536000
+
+; SHA-256 Authentication Plugin related. File with the MySQL server public RSA
+; key.
+;mysqlnd.sha256_server_public_key =
+
+[OCI8]
+
+; Connection: Enables privileged connections using external
+; credentials (OCI_SYSOPER, OCI_SYSDBA)
+; http://php.net/oci8.privileged-connect
+;oci8.privileged_connect = Off
+
+; Connection: The maximum number of persistent OCI8 connections per
+; process. Using -1 means no limit.
+; http://php.net/oci8.max-persistent
+;oci8.max_persistent = -1
+
+; Connection: The maximum number of seconds a process is allowed to
+; maintain an idle persistent connection. Using -1 means idle
+; persistent connections will be maintained forever.
+; http://php.net/oci8.persistent-timeout
+;oci8.persistent_timeout = -1
+
+; Connection: The number of seconds that must pass before issuing a
+; ping during oci_pconnect() to check the connection validity. When
+; set to 0, each oci_pconnect() will cause a ping. Using -1 disables
+; pings completely.
+; http://php.net/oci8.ping-interval
+;oci8.ping_interval = 60
+
+; Connection: Set this to a user chosen connection class to be used
+; for all pooled server requests with Oracle 11g Database Resident
+; Connection Pooling (DRCP). To use DRCP, this value should be set to
+; the same string for all web servers running the same application,
+; the database pool must be configured, and the connection string must
+; specify to use a pooled server.
+;oci8.connection_class =
+
+; High Availability: Using On lets PHP receive Fast Application
+; Notification (FAN) events generated when a database node fails. The
+; database must also be configured to post FAN events.
+;oci8.events = Off
+
+; Tuning: This option enables statement caching, and specifies how
+; many statements to cache. Using 0 disables statement caching.
+; http://php.net/oci8.statement-cache-size
+;oci8.statement_cache_size = 20
+
+; Tuning: Enables statement prefetching and sets the default number of
+; rows that will be fetched automatically after statement execution.
+; http://php.net/oci8.default-prefetch
+;oci8.default_prefetch = 100
+
+; Compatibility. Using On means oci_close() will not close
+; oci_connect() and oci_new_connect() connections.
+; http://php.net/oci8.old-oci-close-semantics
+;oci8.old_oci_close_semantics = Off
+
+[PostgreSQL]
+; Allow or prevent persistent links.
+; http://php.net/pgsql.allow-persistent
+pgsql.allow_persistent = On
+
+; Detect broken persistent links always with pg_pconnect().
+; Auto reset feature requires a little overheads.
+; http://php.net/pgsql.auto-reset-persistent
+pgsql.auto_reset_persistent = Off
+
+; Maximum number of persistent links. -1 means no limit.
+; http://php.net/pgsql.max-persistent
+pgsql.max_persistent = -1
+
+; Maximum number of links (persistent+non persistent). -1 means no limit.
+; http://php.net/pgsql.max-links
+pgsql.max_links = -1
+
+; Ignore PostgreSQL backends Notice message or not.
+; Notice message logging require a little overheads.
+; http://php.net/pgsql.ignore-notice
+pgsql.ignore_notice = 0
+
+; Log PostgreSQL backends Notice message or not.
+; Unless pgsql.ignore_notice=0, module cannot log notice message.
+; http://php.net/pgsql.log-notice
+pgsql.log_notice = 0
+
+[bcmath]
+; Number of decimal digits for all bcmath functions.
+; http://php.net/bcmath.scale
+bcmath.scale = 0
+
+[browscap]
+; http://php.net/browscap
+;browscap = extra/browscap.ini
+
+[Session]
+; Handler used to store/retrieve data.
+; http://php.net/session.save-handler
+session.save_handler = files
+
+; Argument passed to save_handler. In the case of files, this is the path
+; where data files are stored. Note: Windows users have to change this
+; variable in order to use PHP's session functions.
+;
+; The path can be defined as:
+;
+; session.save_path = "N;/path"
+;
+; where N is an integer. Instead of storing all the session files in
+; /path, what this will do is use subdirectories N-levels deep, and
+; store the session data in those directories. This is useful if
+; your OS has problems with many files in one directory, and is
+; a more efficient layout for servers that handle many sessions.
+;
+; NOTE 1: PHP will not create this directory structure automatically.
+; You can use the script in the ext/session dir for that purpose.
+; NOTE 2: See the section on garbage collection below if you choose to
+; use subdirectories for session storage
+;
+; The file storage module creates files using mode 600 by default.
+; You can change that by using
+;
+; session.save_path = "N;MODE;/path"
+;
+; where MODE is the octal representation of the mode. Note that this
+; does not overwrite the process's umask.
+; http://php.net/session.save-path
+;session.save_path = "/tmp"
+
+; Whether to use strict session mode.
+; Strict session mode does not accept an uninitialized session ID, and
+; regenerates the session ID if the browser sends an uninitialized session ID.
+; Strict mode protects applications from session fixation via a session adoption
+; vulnerability. It is disabled by default for maximum compatibility, but
+; enabling it is encouraged.
+; https://wiki.php.net/rfc/strict_sessions
+session.use_strict_mode = 0
+
+; Whether to use cookies.
+; http://php.net/session.use-cookies
+session.use_cookies = 1
+
+; http://php.net/session.cookie-secure
+;session.cookie_secure =
+
+; This option forces PHP to fetch and use a cookie for storing and maintaining
+; the session id. We encourage this operation as it's very helpful in combating
+; session hijacking when not specifying and managing your own session id. It is
+; not the be-all and end-all of session hijacking defense, but it's a good start.
+; http://php.net/session.use-only-cookies
+session.use_only_cookies = 1
+
+; Name of the session (used as cookie name).
+; http://php.net/session.name
+session.name = PHPSESSID
+
+; Initialize session on request startup.
+; http://php.net/session.auto-start
+session.auto_start = 0
+
+; Lifetime in seconds of cookie or, if 0, until browser is restarted.
+; http://php.net/session.cookie-lifetime
+session.cookie_lifetime = 0
+
+; The path for which the cookie is valid.
+; http://php.net/session.cookie-path
+session.cookie_path = /
+
+; The domain for which the cookie is valid.
+; http://php.net/session.cookie-domain
+session.cookie_domain =
+
+; Whether or not to add the httpOnly flag to the cookie, which makes it
+; inaccessible to browser scripting languages such as JavaScript.
+; http://php.net/session.cookie-httponly
+session.cookie_httponly =
+
+; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF)
+; Current valid values are "Lax" or "Strict"
+; https://tools.ietf.org/html/draft-west-first-party-cookies-07
+session.cookie_samesite =
+
+; Handler used to serialize data. php is the standard serializer of PHP.
+; http://php.net/session.serialize-handler
+session.serialize_handler = php
+
+; Defines the probability that the 'garbage collection' process is started
+; on every session initialization. The probability is calculated by using
+; gc_probability/gc_divisor. Where session.gc_probability is the numerator
+; and gc_divisor is the denominator in the equation. Setting this value to 1
+; when the session.gc_divisor value is 100 will give you approximately a 1% chance
+; the gc will run on any given request.
+; Default Value: 1
+; Development Value: 1
+; Production Value: 1
+; http://php.net/session.gc-probability
+session.gc_probability = 1
+
+; Defines the probability that the 'garbage collection' process is started on every
+; session initialization. The probability is calculated by using the following equation:
+; gc_probability/gc_divisor. Where session.gc_probability is the numerator and
+; session.gc_divisor is the denominator in the equation. Setting this value to 100
+; when the session.gc_probability value is 1 will give you approximately a 1% chance
+; the gc will run on any given request. Increasing this value to 1000 will give you
+; a 0.1% chance the gc will run on any given request. For high volume production servers,
+; this is a more efficient approach.
+; Default Value: 100
+; Development Value: 1000
+; Production Value: 1000
+; http://php.net/session.gc-divisor
+session.gc_divisor = 1000
+
+; After this number of seconds, stored data will be seen as 'garbage' and
+; cleaned up by the garbage collection process.
+; http://php.net/session.gc-maxlifetime
+session.gc_maxlifetime = 1440
+
+; NOTE: If you are using the subdirectory option for storing session files
+; (see session.save_path above), then garbage collection does *not*
+; happen automatically. You will need to do your own garbage
+; collection through a shell script, cron entry, or some other method.
+; For example, the following script would is the equivalent of
+; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
+; find /path/to/sessions -cmin +24 -type f | xargs rm
+
+; Check HTTP Referer to invalidate externally stored URLs containing ids.
+; HTTP_REFERER has to contain this substring for the session to be
+; considered as valid.
+; http://php.net/session.referer-check
+session.referer_check =
+
+; Set to {nocache,private,public,} to determine HTTP caching aspects
+; or leave this empty to avoid sending anti-caching headers.
+; http://php.net/session.cache-limiter
+session.cache_limiter = nocache
+
+; Document expires after n minutes.
+; http://php.net/session.cache-expire
+session.cache_expire = 180
+
+; trans sid support is disabled by default.
+; Use of trans sid may risk your users' security.
+; Use this option with caution.
+; - User may send URL contains active session ID
+; to other person via. email/irc/etc.
+; - URL that contains active session ID may be stored
+; in publicly accessible computer.
+; - User may access your site with the same session ID
+; always using URL stored in browser's history or bookmarks.
+; http://php.net/session.use-trans-sid
+session.use_trans_sid = 0
+
+; Set session ID character length. This value could be between 22 to 256.
+; Shorter length than default is supported only for compatibility reason.
+; Users should use 32 or more chars.
+; http://php.net/session.sid-length
+; Default Value: 32
+; Development Value: 26
+; Production Value: 26
+session.sid_length = 26
+
+; The URL rewriter will look for URLs in a defined set of HTML tags.
+;