| assets | ||
| helper | ||
| route | ||
| storage | ||
| system | ||
| vendor | ||
| view | ||
| webapp | ||
| bootstrap.707.sh | ||
| bootstrap.sh | ||
| CDN_HOWTO.md | ||
| cli.php | ||
| composer.json | ||
| fixindent.sh | ||
| FUNDING.yml | ||
| index.php | ||
| KOREAN.MD | ||
| lgplv3-147x51.png | ||
| LICENSE | ||
| README.md | ||
| SECURITY.md | ||
| VERSION.MD | ||
| welcome.bat | ||
| welcome.sh | ||
ReasonableFramework
- ReasonableFramework is
RVHMstructured PHP framework with common security - Prefix code:
RSF(ReasonableFramework) - Old prefix code:
VSPF(Very Simple PHP Framework)
Note: This project has been assigned a registration number by the Korea Copyright Commission Software Copyright Registration System. It was registered on June 3, 2020, with registration number C-2020-018490 for version v1.6.5.1-kcc. This registration does not affect the open source license applied to this project.
Security policy
Specification
- Database connection (via PDO, MySQLi (MySQL Improved), MySQL Tranditional, MySQL CLI, Oracle(OCI))
- RVHM structure:
Ris Route (like ascontroller),Vis View,His Helper (like asimporton Python/Go/NodeJS),Mis Model and implemented withKV bind(like asMapdata structure), Model is not required. - Controllable shared variables: Minimize abuse of global variables (Inspired by the
scopeof AngularJS, andSharedPreferencesof Android Framework)
Compatible
- Tested in PHP 5.3.3
- Tested in PHP 7.x
How to use
- Extract or clone this project to your (restrictive) shared web hosting.
- You can intergrate all of PHP projects (linear, modular (ex.
autoloader), or others) without complicated extensions. - You can write your code and rewrite by
routeparameter without heavy framework. (like ascontroller) - You can add your custom
ini.phpconfiguration file inconfigdirectory. - Enjoy it!
Map of structure
Quick Start
- git clone https://github.com/gnh1201/reasonableframework.git
- edit database configuration:
/storage/config/database.ini.php - create new file:
/route/example.php - go to
http://:base_url/?route=exampleorhttp://:base_url/example/(if set.htaccess) in the web browser. - code it.
Use cases
- Send severities from Zabbix to Grafana
- REST API Integration (Papago Translation REST API)
- Payment Gateway Integration
Remote logging
- Remote logging feature based on RFC3164(The BSD Syslog Protocol)
Compatible of free web hostings
| Provider | Pass? | Tested version | Note |
|---|---|---|---|
| vultr.com (Vultr Holdings Co.) | ✔️ Passed | v1.6.5.2 | Paid, Pre-configured LAMP server |
| cafe24.com (Cafe24 Inc.) | ✔️ Passed | v1.6.2 | Paid |
| woobi.co.kr (MyCGI) | ✔️ Passed | v1.6.2 | |
| dothome.co.kr (Anysecure Inc.) | ✔️ Passed | v1.5 | |
| ivyro.net (Smileserv Inc.) | ✔️ Passed | v1.5 | |
| 000webhost.com | ⚠️ Warn | v1.5 | Advertising logo |
| freewebhostingarea.com | ✔️ Passed | v1.5 | |
| infinityfree.net | ⚠️ Warn | v1.5 | Anti-crawling |
| freehosting.io | ✔️ Passed | v1.5 | |
| freehostingeu.com | ⚠️ Warn | v1.5 | CURL blocked |
| freehostingnoads.net | ⚠️ Warn | v1.5 | CURL blocked |
| awardspace.com | ⚠️ Warn | v1.5 | CURL blocked |
How to use CLI (Command-line interface)
$ php cli.php --route :route --session-id :session_id
Comment about PSR standards
Many people are saying that this project seems to be distant from the PSR standards, and that claim is correct.
The coding convention of this project is similar to the CGI style that was widely used in the early 2000s. Moreover, this style is still observed in solutions written in PHP that are sold in markets such as WordPress plugins, a local-optimized CMS solution, or Codecanyon in 2023.
Although this project hardly uses object-oriented concepts and does not use package managers like Composer much, it still incorporates concepts such as Model, View, Controller, Router, and Helper that are proposed in modern frameworks, and we have made efforts to provide a similar experience as much as possible.
We made efforts to address common security vulnerabilities (XSS, CSRF, SQL injection) in web applications, and included many code snippets that were designed to minimize reliance on specific DBMS or communication drivers
The specifications that this project offers are still in demand in enterprise environments, so it can be a useful solution if you happen to be in such a situation.
If you want to comply with the PSR standards and your colleagues are also ready to learn them humbly, we recommend that you consider Codeigniter (which has a similar structure to this project) or Silm Framework.

