eureka2/g6k 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

eureka2/g6k

Composer 安装命令:

composer create-project eureka2/g6k

包简介

Generator of simulator of calculation (calculator)

README 文档

README

Software License SymfonyInsight Total Downloads

G6K is a tool that enables the creation and online publishing of calculation simulators without coding. It has a simulation engine and an administration module.

A calculation simulator is an online service made available to a user to enable them to calculate the results (taxes, social benefits, etc.) corresponding to their particular situation. The results are calculated on the basis of data supplied by the user, reference data (eg amount of a tax) and business rules reflecting the current legislation in the field of simulation.

Learn more

Table of contents

  1. Prerequisites for Symfony
  2. Prerequisites for G6K
  3. Installation
  4. Web server configuration
  5. Migration
  6. Documentation
  7. Code quality
  8. Innovation Award
  9. Copyright and license

Prerequisites for Symfony

  • PHP Version 7.1.3+
  • JSON enabled
  • ctype
  • date.timezone in php.ini
  • auto_detect_line_endings = On in php.ini
  • PHP-XML module
  • 2.6.21+ version of libxml
  • PHP tokenizer
  • Modules mbstring, iconv, POSIX (only on * nix), Intl with ICU 4+, and APCU 3.0.17+ APC (highly recommended) must be installed
  • recommended php.ini settings:
    • short_open_tag = Off
    • magic_quotes_gpc = Off
    • register_globals = Off
    • session.auto_start = Off

Prerequisites for G6K

  • PDO enabled
  • pdo_pgsql and/or pdo_sqlite and/or pdo_mysql activated
  • pgsql and/or sqlite3 activated
  • SimpleXML enabled
  • serialize_precision = -1 in php.ini
  • intl installed and activated

Installation

  1. If you plan to use MySQL or PostgreSQL, create a user with "CREATE DATABASE" and "CREATE TABLE" privileges using the administration tool of your RDBMS.
  2. Be placed in the <DOCUMENT_ROOT> Web Server
  3. Download composer.phar (https://getcomposer.org/download/) in <DOCUMENT_ROOT>. composer 1.7.2+ is required.
  4. Under a shell or DOS, execute: php -d memory_limit=-1 composer.phar create-project eureka2/g6k simulator/ 4.*
  5. Enter the parameter values required by the installer, including:
  • application environment [dev or prod] (prod) :
  • debug mode [0 or 1] (0) :
  • locale [en-GB, en-US, fr-FR, ...] (en-US) :
  • upload directory (%kernel.project_dir%/var/uploads) :
  • mailer URL (null://localhost) :
  • database engine [sqlite, mysql or pgsql] (sqlite) :
  • database name (g6k) :

for sqlite database only:

  • database version (3.15) :
  • database path (%kernel.project_dir%/var/data/databases/g6k.db) :

for mysql or pgsql database:

  • database host [localhost, ...] :
  • database port :
  • database user :
  • database password :
  • database character set [UTF8, LATIN1, ...] (UTF8) :

Web server configuration

Adding Rewrite Rules

G6K comes with a .htaccess file in the calcul/ directory that contains the rewrite rules.

/admin/... is rewritten in /admin.php/... and all other queries in /index.php/....

Thus, the admin.php and index.php front-end controllers can be omitted from the request urls.

Apache

You must add the AllowOverride All directive in the VirtualHost block of the server configuration.

Assuming G6K is installed in the directory /var/www/html/simulator :

<VirtualHost *:80>
    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/html/simulator
    <Directory /var/www/html/simulator>
        AllowOverride All
        Order Allow,Deny
        Allow from All
    </Directory>

    # other directives

</VirtualHost>

For best performance, rewrite rules can be moved from the .htaccess file to the VirtualHost block of the server configuration.

In this case, change AllowOverride All to AllowOverride None and delete the .htaccess file.

<VirtualHost *:80>
    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/html/simulator
    <Directory /var/www/html/simulator>
        AllowOverride None
        Order Allow,Deny
        Allow from All
    </Directory>
    <Directory /var/www/html/simulator/calcul>
        # rewrite rules from .htaccess
    </Directory>

    # other directives

</VirtualHost>

For security reasons, the <DOCUMENT_ROOT> can be set to the calcul/ directory : DocumentRoot /var/www/html/simulator/calcul

In this case, calcul/ should be omitted from the path of the request URL.

<VirtualHost *:80>
    ServerName domain.tld
    ServerAlias simulators.domain.tld

    DocumentRoot /var/www/html/simulator/calcul
    <Directory /var/www/html/simulator/calcul>
        # rewrite rules from .htaccess
        AllowOverride None
        Order Allow,Deny
        Allow from All
    </Directory>

    # other directives

</VirtualHost>

NGinx

Because NGinx does not have .htaccess files, all of the setup has to be managed within the server config file.

The following is fully working. There are probably a number of improvements which can be made, but this should be a good starting-point.

The most important point is that the /admin path has to be routed separately to the other app.

server {

  rewrite ^/index\.php/?(.*)$ /$1 permanent;

  ## Admin ##
  ## Required for the admin area (this is in .htaccess inside /calcul) ##
  location /admin {
    rewrite ^(.*)$ /admin.php/$1 last;
  }
  ## Main ##
  location @rewriteapp {
    rewrite ^(.*)$ /index.php/$1 last;
  }

  ## Symfony ##
  ## PRODUCTION ENV ##
  location ~ ^/(index|admin)\.php(/|$) {
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; #-> this needs to be your php-fpm location
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    internal;
  }

  # other directives

}

Migration

If you want to transfer simulators, their data sources and style sheets from a previous installation, do not copy them manually, use the following console command:

php bin/console g6k:simulator:copy -w abDatepicker -w abListbox -w AutoMoneyFormat all /var/www/html/simulator-old

assuming /var/www/html/simulator-old is the installation directory of the previous version.

This command performs all the necessary conversions to enable their use with this new version.

Note that in this command, the -w option sets widgets. abDatepicker, abListbox and AutoMoneyFormat are widgets that will automatically apply to 'date', choice (select), and money fields, respectively. You can omit those you do not want to use.

At the end of the copy, go to the administration interface to clear the development and production caches.

Documentation

Administrator's Guide

[ en ] [ fr ]

Classes

Documentation of G6K classes

Code quality

SymfonyInsight

Innovation Award

PHP Classes G6K By eureka2 PHP Programming Innovation award nominee
April 2018 Number 6
There are many sites that are useful because they provide means to let the users perform calculations of some kind from simple values entered in Web forms.
This package provides a Web interface to implement a generic system for designing and providing access to pages that provide several types of calculator tools.
Manuel Lemos

Copyright and license

© 2015-2019 Eureka2 - Jacques Archimède. Code released under the MIT license.

↑ back to table of contents

eureka2/g6k 适用场景与选型建议

eureka2/g6k 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 5.54k 次下载、GitHub Stars 达 23, 最近一次更新时间为 2015 年 01 月 31 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 eureka2/g6k 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 eureka2/g6k 我们能提供哪些服务?
定制开发 / 二次开发

基于 eureka2/g6k 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 5.54k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 23
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 23
  • Watchers: 6
  • Forks: 20
  • 开发语言: JavaScript

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-01-31