Sunhillフレームワークは、MVC(Model -View -Controller)パターンを使用して、より最新のアプリケーションを開発できるシンプルで高速で強力なPHPアプリ開発フレームワークです。
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コントローラーを呼び出し、 3パラメーターでupdateメソッドを実行します。
コントローラーは、ユーザーアクション(フォームの送信、リンクのクリックなど)に応答します。コントローラーは、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 " ... " ;
}または(1つのレコード用):
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クラス)が含まれます。
キャッシュシステムは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クラスをご覧ください。