Version 3.x

Features

01

MVC Architecture

Model-View-Controller pattern untuk struktur kode yang terorganisir

02

Built-in Security

Perlindungan SQL injection, XSS prevention, dan manajemen session yang aman

03

Error Handling

Error logging yang komprehensif dan custom error pages

04

Dark Mode

UI modern dengan fungsi toggle dark mode

05

Responsive Design

Interface responsive berbasis Bootstrap

06

DataTables

Interface datatables berbasis Bootstrap

07

Database Support

Koneksi database MySQL dan MySQLi

Project Structure

sfrw_3/
├── .htaccess
├── index.php
├── env.php
├── app/
│ ├── Models/
│ │ ├── Forgotlink.php
│ │ └── Users.php
│ ├── app.php
│ └── storage/
├── bootstrap/
│ └── theme/
├── library/
│ ├── captcha/
│ ├── classes/
│ └── error/
├── logs/
│ └── error.log
├── mvc/
│ ├── controller/
│ ├── model/
│ └── view/
├── skin/
├── vendor/
│ ├── logcarbon/
│ └── sfrw/
└── web/
└── route.php

Configuration

Environment Settings (env.php)

define('ENVIRONMENT', 'local'); // local, maintenance, production
define('DEBUG', 'true'); // Enable/disable debug mode
define('BASEURL', 'http://localhost/sfrw_3/');
define('DBNAME', ''); // Database name

Database Configuration (library/config.txt)

Format: host, username, password, database, driver

localhost, root, , framework, MySqli,

Email Configuration

define('MAILACTIVATE', 'false'); // Enable email functionality
define('MAILHOST', 'smtp.yourdomain.com');
define('MAILUSER', 'yourmail@yourdomain.com');
define('MAILPASS', '');
define('MAILPORT', '587');

Security Features

SQL Injection Protection

XSS Prevention

Session Security

Error Handling

UI Components

Dark Mode Support

Framework ini mencakup toggle dark mode bawaan:

Responsive Design

Form Components

Routing System

Routing ditangani di web/route.php:

// Homepage route
if(routeget('/', ROUTE)){
return Indexcontroller::index();
}

// Login route
if(routeget('login', ROUTE)){
require_once view('login');
}

// Logout route
if(routeget('signout', ROUTE)){
require_once view('signout');
}

// 404 fallback
{
require_once view('pagenotfound');
}

Models

User Model (app/Models/Users.php)

class Users extends Model {
static public function schemafillable() {
$fill = [
'id',
'fullname',
'email',
'username',
'passsword',
'active',
'role',
];
return implode(", ", $fill);
}
static public function schematable($table = "master_users") {
return $table;
}
}

Controller

Controller (mvc/controller/Controller.php)

class Indexcontroller extends Controller {
static public function index() {
require_once view('index', [
$data['title'] = "sfrw Framework",
]);
}
}

Utility Functions

Date & Time Functions

Security Functions

Helper Functions

Installation

Via GitHub Repository

Clone Sunda Framework dari repository resmi:

git clone https://github.com/Agunggum/sfrw.git
cd sfrw

Manual Installation

  1. Download file framework dari repository
  2. Extract ke direktori web server Anda
  3. Konfigurasi pengaturan database di library/config.txt
  4. Set environment variables di env.php
  5. Buat tabel database Anda
  6. Akses aplikasi melalui browser web

Aplikasi tambahan yang dibutuhkan

  1. xampp, lampp, WampServer, MAMP, AMPPS, EasyPHP, atau Laragon untuk kebutuhan virtual server
  2. Apache server atau MySQL server bisa juga install Apache server dan MySQL server
  3. VS Code atau Trae kebutuhan untuk menulis code

Requirements

Development

Menambahkan Route Baru

  1. Edit web/route.php
  2. Tambahkan kondisi route Anda
  3. Buat controller dan view yang sesuai

Membuat Controllers

  1. Buat file baru di mvc/controller/
  2. Extend kelas dasar Controller
  3. Implementasikan method Anda

Sample login.controller.php:

require_once model('login');

use app\Models\Users;

class Logincontroller extends Controller {
public static function loginform($uri) {
$loginModel = new Loginmodel;
return $loginModel->loginformmodel($uri);
}
}

Membuat Ekstensi Models

  1. Buat file baru di mvc/model/
  2. Extend kelas dasar Controller
  3. Implementasikan method Anda

Sample login.model.php:

require_once vendors('logcarbon/logcarbon');

use app\Models\Users;

use app\Models\Forgotlink; class Loginmodel extends Controller {
function loginformmodel($uri) {
if(isset($_POST['login']) and $_POST['login']=="MASUK"){

$password = anti_injection(md5($_POST['password']));
$username = anti_injection($_POST['username']);

$login = permintaanMysql("SELECT fullname, username, password, active, role FROM ".Users::schematable()." WHERE username='".$username."'");
$data = mysqlAmbilArray($login);

if(barisAngkaMysql($login) == 0){
Logcarbon::carbonlog($username." :: login denied : not found","logsignin");

$_SESSION['error'] = "true";
alert('warning', 'Attention..!', 'login denied.', $uri);
}
elseif($data['active'] == 'N'){
Logcarbon::carbonlog($username." :: login denied : inactive","logsignin");

$_SESSION['error'] = "true"; alert('warning', 'Attention..!', 'You are no longer able to log into this system.', $uri);
}
elseif($data['password'] != $password){
$_SESSION['usertrue'] = $username;

Logcarbon::carbonlog($username." :: login denied : wrong password","logsignin");

$_SESSION['error'] = "true"; alert('warning', 'Attention..!', 'Please re-check the Username/ email or Password you entered, make sure the data you entered is correct.', $uri);
}
else{
$_SESSION['error'] = "true";
if(ENVIRONMENT == 'maintenance' and $data['role'] != 'administrator'){
alert('warning', 'Attention..!', 'Login denied. system is under maintenance.', $uri);
}else{
$_SESSION['username'] = $data['username'];
$_SESSION['fullname'] = $data['fullname'];
$_SESSION['accessme'] = $data['role'];
Logcarbon::carbonlog($username." :: login success","logsignin");

//membuat sesi timeout $_SESSION['timeout'] = WAKTUINI+KADALUARSA;
$_SESSION['timelog'] = WAKTUINI+KADALUARSA+13;
$_SESSION['error'] = "false";
alert('success', '', '..Waiting to sign in..', $uri);
}
}
}
}
}

Membuat Models

  1. Buat file baru di app/Models/
  2. Extend kelas dasar Model
  3. Definisikan schema dan method Anda

Error Handling

Semua error dicatat ke logs/error.log dengan informasi detail:

License

Framework ini open-source dan tersedia untuk penggunaan personal dan komersial.

Sunda Framework (SFRW) v3.0 - Built with ❤️ for modern PHP development

 

saweria

Traktir saya ngopi