Sunhill Framework - это простая, быстрая и мощная структура разработки приложений PHP, которая позволяет вам разрабатывать более современные приложения, используя шаблон MVC (Model - View - Controller).
htaccess.txt на .htaccess (важно)System/Config.php и отредактируйте свою базу данных, кэш и настройки системы.Смотрите ниже для более подробной информации.
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 : Создайте пользовательские контроллеры в этой папке.
App/Models : Создайте свои пользовательские модели в этой папке.
App/Views : Создайте свои пользовательские представления в этой папке.
Core : эта папка содержит основное приложение, модель, просмотр и файлы контроллера. Все пользовательские модели, просмотр и файлы контроллера наследуют от них. Не вносите изменения в эти файлы, если не нужно.
Public : загрузите все свои пользовательские файлы (CSS, JS, IMG, начальная загрузка и т. Д.) В эту папку. Ваши пользовательские представления будут использовать эти файлы.
System : эта папка содержит системные классы и файлы конфигурации. Внесите свои изменения только в файле конфигурации.
Откройте файл System/Config.php и внесите свои изменения.
Настройки базы данных:
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 passwordНастройки кеша:
$ 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
];Настройки системы:
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:
https://www.web_address.com/[controller_name]/[method_name]/[parameters]
Вызовите страницу (контроллер):
https://www.sunhillint.com/user
Этот адрес позвонит User контроллеру.
Вызовите страницу (контроллер) с помощью действия (метод):
https://www.sunhillint.com/user/list
Этот адрес вызовет User контроллер и метод выполнения list .
Вызовите страницу (контроллер) с помощью действия (метод) и параметров:
https://www.sunhillint.com/user/update/3
Этот адрес вызовет User контроллер и выполняет метод update с помощью 3 параметра.
Контроллеры отвечают на действия пользователя (отправляя формы, щелкнув ссылки и т. Д.). Контроллеры - это классы, которые расширяют класс Core Controller.
Контроллеры хранятся в папке App/Controllers . Образец контроллеров домов и ошибок включен. Классы контроллера должны быть в пространстве имен App/Controllers . Вы можете добавить подкатарии для организации ваших контроллеров, поэтому при добавлении маршрута для этих контроллеров вам необходимо указать пространство имен.
Содержание файла файла контроллера образца (без доступа к базе данных, статическая страница):
public function show () {
require_once ( $ this -> view ); // include view file (with $result content)
}Содержание файла файла контроллера образца (с доступом к базе данных, динамической странице):
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)
}Классы контроллера содержат методы, которые являются действиями. Чтобы создать действие, добавьте имя метода в контроллере и используйте его в URL (параметры маршрута).
Пример URL:
https://www.web_address.com/[controller_name]
Все страницы должны иметь файл контроллера, и в нем должны быть метод show .
Просмотры используются для отображения информации. Просмотр файлов Перейдите в папке App/Views . Никакого доступа к базе данных или что -то в этом роде не должно происходить в файле просмотра.
Просмотры расширяют класс CoreView , и если ваше представление (страница) требует доступ к базе данных, ваши значения будут пересылать из файла контроллера.
Пример просмотра содержимого файла для нескольких записей (внутри тегов HTML):
foreach ( $ result as $ row ) {
echo " ... " ;
}или (для одной записи):
echo $ result [ 0 ][ ' content ' ];Все страницы должны иметь файл представления.
Модели используются для получения и хранения данных в вашем приложении. Они ничего не знают о том, как эти данные будут представлены в представлениях. Модели расширяют класс CoreModel и используют PDO для доступа к базе данных (включая класс SUNDB). Они хранятся в папке App/Models .
Все страницы должны иметь модельный файл (даже если он пуст), и в нем должен быть метод show .
Используя класс Sundb PDO через основную модель:
$ result = $ this -> query ( ' SELECT * FROM table_name ' ); // send query to the main model
return $ result ; // return the result to the controllerИспользуя класс Sundb PDO напрямую:
$ result = ( $ this -> pdo )-> select ( ' table_name ' )
-> run (); // select all records from the table
return $ result ; // return the result to the controllerПожалуйста, смотрите Sundb PDO Class для подробного использования.
Структура включает в себя специальную систему кэширования страницы (класс Suncache).
Система кэширования может быть активирована/деактивирует в файле System/Config.php :
define ( ' SYS_PGCACHE ' , true ); // page caching (true / false) Исключенные страницы могут быть определены в файле System/Config.php :
define ( ' SYS_CHEXCLUDE ' , [ ' home ' , ' error ' ]); // excluded pages for page caching (array) Настройки кэша могут быть изменены в файле 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
];Пожалуйста, смотрите класс Suncache для подробного использования.