Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ equal Public
forked from equalframework/equal

eQual is a versatile web-oriented framework, aiming to elegantly manage interactions between front-end Apps and Business Logic involved in modern Web Applications. It gives the ability to create instant REST API and reusable micro-services ready for low-code development.

License

Notifications You must be signed in to change notification settings

f7ed0/equal

 
 

Repository files navigation

Build Status License: LGPL v3 Maintainer PRs Welcome eQual - Create great Apps, your way!

Create great Apps, your way!

eQual is a versatile, language-agnostic and web-oriented framework, aiming to elegantly manage interactions between front-end Apps and Business Logic involved in modern Web Applications.

Benefits

Rock Solid Security Secure every API endpoint with User Management, Role-Based Access Controls, SSO Authentication, JWT, CORS, and OAuth.

Server-Side Scripting Implement custom logic on the request or response of any API endpoint or quickly build your own custom APIs with JavaScript V8, Node.js, or PHP.

Low-Code Instant APIs Automatically generate a complete set of REST APIs with live documentation for any SQL or NoSQL database, file storage system, or external service.

Example

CLI

$ ./equal.run --get=demo_first

HTTP

GET /?get=demo_first HTTP/1.1

Source

<?php
// Tired of steep learning curves?
echo "This Contoller is valid and generates a HTTP compliant response!";

Requirements

eQual requires the following environment:

  • PHP 7+ with extensions mysqli (mandatory) + gd opcache zip tidy (optional)
  • Apache 2+ or Nginx
  • MySQL 5+ compatible DBMS (tested up to MySQL 5.7 and MariaDB 10.3)

Install

Download code as ZIP:

wget https://github.com/equalframework/equal/archive/master.zip

or clone with Git :

git clone https://github.com/equalframework/equal.git

For more info, see : http://doc.equal.run/getting-started/installation

Code Coverage setup

Config for PHP 7.4 with xdebug

In dockerfile, xdebug can be added with following command

RUN pecl install xdebug-3.1.6

php.ini

zend_extension=xdebug

Create tests directory

mkdir tests

Create tests/CoverageTest.php file

<?php
use PHPUnit\Framework\TestCase;
use equal\test\Tester;
include('eq.lib.php');

final class CoverageTest extends TestCase {

	public function test(): void {
		$tests_path = "packages/core/tests";
		if(is_dir($tests_path)) {
			foreach (glob($tests_path."/*.php") as $filename) {
				include($filename);
				$tester = new Tester($tests);
				$tester->test()->toArray();
			}
		}
		$this->assertTrue(true);
	}

}

composer.json

{
    "require": {
    },
    "require-dev": {
        "phpunit/phpunit": "^9.5",
        "phpunit/php-code-coverage": "^9.2",
        "symplify/easy-coding-standard": "^11.1"
    }
}

Install composer and dependencies

./equal.run --do=init_composer

phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
         bootstrap="vendor/autoload.php"
         cacheResultFile="cache/test-results"
         executionOrder="depends,defects"
         forceCoversAnnotation="false"
         beStrictAboutCoversAnnotation="false"
         beStrictAboutOutputDuringTests="true"
         beStrictAboutTodoAnnotatedTests="true"
         convertDeprecationsToExceptions="true"
         failOnRisky="false"
         failOnWarning="true"
         verbose="true">
    <testsuites>
        <testsuite name="default">
            <directory>tests</directory>
        </testsuite>
    </testsuites>

    <coverage cacheDirectory="cache/code-coverage"
              processUncoveredFiles="true">
        <include>
            <directory suffix=".php">lib</directory>
        </include>
    </coverage>
</phpunit>

Alternate script generation:

./vendor/bin/phpunit --generate-configuration

Run coverage tests and HTML reporting

XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-html tests/report

About

eQual is a versatile web-oriented framework, aiming to elegantly manage interactions between front-end Apps and Business Logic involved in modern Web Applications. It gives the ability to create instant REST API and reusable micro-services ready for low-code development.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 70.5%
  • PHP 20.2%
  • TypeScript 4.3%
  • HTML 2.4%
  • SCSS 1.5%
  • CSS 0.7%
  • Other 0.4%