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, Bootstrap 등)을이 폴더에 업로드하십시오. 사용자 정의보기는이 파일을 사용합니다.
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 컨트롤러를 호출하고 3 매개 변수로 update 메소드를 실행합니다.
컨트롤러는 사용자 작업에 응답합니다 (양식 제출, 링크 클릭 등). 컨트롤러는 Core 컨트롤러 클래스를 확장하는 클래스입니다.
컨트롤러는 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 폴더에서 이동합니다. 데이터베이스 액세스 또는 그와 비슷한 것은보기 파일에서 발생하지 않아야합니다.
Views는 CoreView Class를 확장하고 View (Page)에 데이터베이스 액세스가 필요한 경우 컨트롤러 파일에서 값이 전달됩니다.
여러 레코드의 파일 컨텐츠보기 (내부 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 controllerSunDB PDO 클래스 사용 직접 :
$ result = ( $ this -> pdo )-> select ( ' table_name ' )
-> run (); // select all records from the table
return $ result ; // return the result to the controller자세한 사용은 SunDB PDO 클래스를 참조하십시오.
프레임 워크에는 특수 페이지 캐싱 시스템 (SunCache Class)이 포함됩니다.
캐싱 시스템은 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 클래스를 참조하십시오.