Sunhill Framework es un marco de desarrollo de aplicaciones PHP simple, rápido y potente que le permite desarrollar aplicaciones más modernas mediante el uso del patrón MVC (Model - View - Controller).
htaccess.txt al .htaccess (importante)System/Config.php y edite su base de datos, caché y configuración del sistema.Vea a continuación para obtener más detalles.
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 : cree sus controladores personalizados en esta carpeta.
App/Models : cree sus modelos personalizados en esta carpeta.
App/Views : cree sus vistas personalizadas en esta carpeta.
Core : esta carpeta contiene la aplicación principal, el modelo, la vista y los archivos del controlador. Todos los archivos personalizados de modelo, vista y controlador heredan de estos. No realice cambios en estos archivos si no necesita realmente.
Public : Cargue todos sus archivos personalizados (CSS, JS, IMG, Bootstrap, etc.) en esta carpeta. Sus vistas personalizadas utilizarán estos archivos.
System : esta carpeta contiene clases de sistema y archivos de configuración. Haga sus cambios solo en el archivo de configuración.
Abra el archivo System/Config.php y realice sus cambios.
Configuración de la base de datos:
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 passwordConfiguración de caché:
$ 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
];Configuración del sistema:
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)URL de muestra:
https://www.web_address.com/[controller_name]/[method_name]/[parameters]
Llame a una página (controlador):
https://www.sunhillint.com/user
Esta dirección llamará al controlador User .
Llame a una página (controlador) con acción (método):
https://www.sunhillint.com/user/list
Esta dirección llamará al controlador User y ejecutará el método list .
Llame a una página (controlador) con acción (método) y parámetros:
https://www.sunhillint.com/user/update/3
Esta dirección llamará al controlador User y ejecutará el método update con 3 parámetro.
Los controladores responden a las acciones del usuario (enviar formularios, hacer clic en enlaces, etc.). Los controladores son clases que extienden la clase Core Controller.
Los controladores se almacenan en la carpeta App/Controllers . Se incluyen una muestra de hogar y controladores de errores. Las clases de controlador deben estar en el espacio de nombres de App/Controllers . Puede agregar subdirectorios para organizar sus controladores, por lo que al agregar una ruta para estos controladores necesita especificar el espacio de nombres.
Muestra de contenido del archivo del controlador (sin acceso a la base de datos, página estática):
public function show () {
require_once ( $ this -> view ); // include view file (with $result content)
}Muestra de contenido del archivo del controlador (con acceso a la base de datos, página dinámica):
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)
}Las clases de controlador contienen métodos que son las acciones. Para crear una acción, agregue el nombre del método en el controlador y use esto en la URL (parámetros de ruta).
URL de muestra:
https://www.web_address.com/[controller_name]
Todas las páginas deben tener un archivo de controlador y show el método debe estar en él.
Las vistas se utilizan para mostrar información. Ver archivos Van a la carpeta App/Views . No debe ocurrir acceso a la base de datos o algo así en un archivo de vista.
Las vistas extienden la clase CoreView y si su vista (página) necesita acceso a la base de datos, sus valores se reenviarán desde el archivo del controlador.
Muestra de contenido de archivo de vista para múltiples registros (dentro de etiquetas HTML):
foreach ( $ result as $ row ) {
echo " ... " ;
}o (para un registro):
echo $ result [ 0 ][ ' content ' ];Todas las páginas deben tener un archivo de vista.
Los modelos se utilizan para obtener y almacenar datos en su aplicación. No saben nada sobre cómo se presentarán estos datos en las vistas. Los modelos extienden la clase CoreModel y usan PDO para acceder a la base de datos (incluida la clase SUNDB). Se almacenan en la carpeta App/Models .
Todas las páginas deben tener un archivo de modelo (incluso si está vacío) y el método show debe estar en él.
Uso de la clase PDO SUNDB a través del modelo principal:
$ result = $ this -> query ( ' SELECT * FROM table_name ' ); // send query to the main model
return $ result ; // return the result to the controllerUso de la clase Sundb PDO directamente:
$ result = ( $ this -> pdo )-> select ( ' table_name ' )
-> run (); // select all records from the table
return $ result ; // return the result to the controllerConsulte la clase SUNDB PDO para un uso detallado.
El marco incluye un sistema de almacenamiento en caché de página especial (clase Suncache).
El sistema de almacenamiento en caché se puede activar/desactivar en el archivo System/Config.php :
define ( ' SYS_PGCACHE ' , true ); // page caching (true / false) Las páginas excluidas se pueden definir en el archivo System/Config.php :
define ( ' SYS_CHEXCLUDE ' , [ ' home ' , ' error ' ]); // excluded pages for page caching (array) La configuración de caché se puede cambiar en el archivo System/Config.php :
$ 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
];Consulte la clase Suncache para obtener un uso detallado.