Sunhill Framework ist ein einfaches, schnelles und leistungsstarkes PHP -App -Entwicklungs -Framework, mit dem Sie mithilfe von MVC -Muster (Modell - View - Controller) modernere Anwendungen entwickeln können.
htaccess.txt -Datei in den .htaccess (wichtig).System/Config.php und bearbeiten Sie Ihre Datenbank-, Cache- und Systemeinstellungen.Weitere Informationen finden Sie weiter unten.
root
├── App
│ ├── Controllers
│ │ ├── Error.php
│ │ └── Home.php
│ ├── Models
│ │ ├── Error.php
│ │ └── Home.php
│ └── Views
│ ├── Error.php
│ └── Home.php
├── Core
│ ├── App.php
│ ├── Controller.php
│ ├── Model.php
│ └── View.php
├── Public
│ ├── cache
│ ├── css
│ ├── img
│ └── js
├── System
│ ├── Config.php
│ ├── SunCache.php
│ ├── SunDB.php
│ └── SunSitemap.php
├── .htaccess
├── index.php
└── init.php
App/Controller : Erstellen Sie Ihre benutzerdefinierten Controller in diesem Ordner.
App/Models : Erstellen Sie Ihre benutzerdefinierten Modelle in diesem Ordner.
App/Views : Erstellen Sie Ihre benutzerdefinierten Ansichten in diesem Ordner.
Core : Dieser Ordner enthält die Haupt -App-, Modell-, Ansichts- und Controller -Dateien. Alle benutzerdefinierten Modell-, Ansichts- und Controller -Dateien erben aus diesen. Nehmen Sie keine Änderungen an diesen Dateien vor, wenn Sie es nicht wirklich benötigen.
Public : Laden Sie alle Ihre benutzerdefinierten Dateien (CSS, JS, IMG, Bootstrap usw.) in diesen Ordner hoch. Ihre benutzerdefinierten Ansichten verwenden diese Dateien.
System : Dieser Ordner enthält Systemklassen und Konfigurationsdateien. Nehmen Sie Ihre Änderungen nur in der Konfigurationsdatei vor.
Öffnen Sie die Datei System/Config.php und nehmen Sie Ihre Änderungen vor.
Datenbankeinstellungen:
define ( ' DB_HOST ' , ' localhost ' ); // database host
define ( ' DB_PORT ' , ' 3306 ' ); // database port
define ( ' DB_DBNAME ' , '' ); // database name
define ( ' DB_USERNAME ' , '' ); // database username
define ( ' DB_PASSWORD ' , '' ); // database passwordCache -Einstellungen:
$ cacheConfig = [
' cacheDir ' => ' /../Public/cache ' , // cache folder path
' fileExtension ' => ' html ' , // cache file extension
' storageTime ' => 24 * 60 * 60 , // storage time (seconds)
' contentMinify ' => true , // content minification
' showTime ' => true , // show page load time
' sefUrl ' => true // website sef url status
];Systemeinstellungen:
define ( ' SYS_PHPERR ' , true ); // php errors (show or hide, true / false)
define ( ' SYS_SYSERR ' , false ); // system errors (shor or hide, true / false)
define ( ' SYS_PGCACHE ' , false ); // page caching (true / false)
define ( ' SYS_CHEXCLUDE ' , []); // excluded pages for page caching (array)
define ( ' SYS_HOMEPAGE ' , ' home ' ); // home page (index, home, main, etc.)
define ( ' SYS_ERRPAGE ' , ' error ' ); // error page (if requested page does not exist, redirect to this page)Probe -URL:
https://www.web_address.com/[controller_name]/[method_name]/[parameters]
Rufen Sie eine Seite (Controller) an:
https://www.sunhillint.com/user
Diese Adresse ruft den User an.
Rufen Sie eine Seite (Controller) mit Aktion (Methode) an:
https://www.sunhillint.com/user/list
Diese Adresse ruft die User auf und führt die list aus.
Rufen Sie eine Seite (Controller) mit Aktion (Methode) und Parametern auf:
https://www.sunhillint.com/user/update/3
Diese Adresse ruft den User auf und führt die update mit 3 Parameter aus.
Controller antworten auf Benutzeraktionen (Senden von Formularen, Klicken auf Links usw.). Controller sind Klassen, die die Core Controller -Klasse erweitern.
Controller werden im Ordner App/Controllers gespeichert. Eine Probe -Home- und Fehlercontroller sind enthalten. Controller -Klassen müssen sich im App/Controllers -Namespace befinden. Sie können Unterverzeichnisse hinzufügen, um Ihre Controller zu organisieren. Wenn Sie also eine Route für diese Controller hinzufügen, müssen Sie den Namespace angeben.
Beispiel -Controller -Dateiinhalt (ohne Datenbankzugriff, statische Seite):
public function show () {
require_once ( $ this -> view ); // include view file (with $result content)
}Beispiel -Controller -Dateiinhalt (mit Datenbankzugriff, dynamische Seite):
public function show () {
if (! empty ( $ this -> model )) { // if this page needs database
$ result = ( $ this -> model )-> show (); // call model class' show method
}
require_once ( $ this -> view ); // include view file (with $result content)
}Controller -Klassen enthalten Methoden, die die Aktionen sind. Um eine Aktion zu erstellen, fügen Sie den Methodennamen in den Controller hinzu und verwenden Sie diese in die URL (Routenparameter).
Probe -URL:
https://www.web_address.com/[controller_name]
Alle Seiten müssen über eine Controller -Datei verfügen und die Methode show sein.
Ansichten werden verwendet, um Informationen anzuzeigen. Anzeigendateien finden Sie im Ordner App/Views . In einer Ansichtsdatei sollte kein Datenbankzugriff oder ähnliches stattfinden.
Ansichten erweitern die CoreView -Klasse und wenn Ihre Ansicht (Seite) Datenbankzugriff benötigt, werden Ihre Werte aus der Controller -Datei weitergeleitet.
Beispielansicht Dateiinhalt für mehrere Datensätze (in HTML -Tags):
foreach ( $ result as $ row ) {
echo " ... " ;
}oder (für einen Datensatz):
echo $ result [ 0 ][ ' content ' ];Alle Seiten müssen eine Ansichtsdatei haben.
Modelle werden verwendet, um Daten in Ihrer Anwendung zu erhalten und zu speichern. Sie wissen nichts darüber, wie diese Daten in den Ansichten dargestellt werden. Modelle erweitern die CoreModel -Klasse und verwenden PDO, um auf die Datenbank zuzugreifen (einschließlich Sundb -Klasse). Sie werden im App/Models -Ordner gespeichert.
Alle Seiten müssen über eine Modelldatei verfügen (auch wenn sie leer ist) und die Methode show muss darin enthalten sein.
Verwenden Sie die Sundb -PDO -Klasse über Hauptmodell:
$ result = $ this -> query ( ' SELECT * FROM table_name ' ); // send query to the main model
return $ result ; // return the result to the controllerVerwenden Sie direkt mit der Sundb -PDO -Klasse:
$ result = ( $ this -> pdo )-> select ( ' table_name ' )
-> run (); // select all records from the table
return $ result ; // return the result to the controllerWeitere detaillierte Verwendung finden Sie in der Sundb -PDO -Klasse.
Das Framework enthält ein spezielles Seits -Caching -System (Suncache -Klasse).
Das Caching -System kann in System/Config.php -Datei aktiviert/deaktiviert werden:
define ( ' SYS_PGCACHE ' , true ); // page caching (true / false) Ausgeschlossene Seiten können in System/Config.php -Datei definiert werden:
define ( ' SYS_CHEXCLUDE ' , [ ' home ' , ' error ' ]); // excluded pages for page caching (array) Cache -Einstellungen können in der Datei System/Config.php geändert werden:
$ cacheConfig = [
' cacheDir ' => ' /../Public/cache ' , // cache folder path
' fileExtension ' => ' html ' , // cache file extension
' storageTime ' => 24 * 60 * 60 , // storage time (seconds)
' contentMinify ' => true , // content minification
' showTime ' => true , // show page load time
' sefUrl ' => true // website sef url status
];In der Suncache -Klasse finden Sie eine detaillierte Verwendung.