一個超級簡單的PHP框架,用於Web開發!
V2即將開始...檢查Beta分支!
| 文件夾 | 描述 |
|---|---|
| 控制器 | 包含控制器代碼的結構和文件 |
| 模型 | 包含模型代碼的目錄和文件 |
| 看法 | 包含模板文件 |
| 快取 | 完整的可寫默認緩存存儲 |
| public_html | 包含index.php和.htaccess apache文件。您所有的訪問公共文件都留在這裡,例如CSS,JavaScript等。 |
| 系統 | 該框架最重要的文件夾。包含庫,類和其他功能,以改善Web應用程序的正確工作。 |
| 紀錄 | 包含調試和錯誤日誌 |
| config.php | 文件包含Web應用程序的所有基本配置,例如數據庫連接,郵件配置,目錄配置等。 |
在您的計算機/服務器中復製或克隆此存儲庫,然後編輯config.php文件。請參閱下面的配置文件基本選項。
這是一個簡單的Hello世界!對於此框架。
在控制器文件夾中,創建一個稱為common的文件夾,並創建一個名為home.php的文件。
編輯控制器/common/home.php這樣。
<?php
class ControllerCommonHome extends Controller {
public function index () {
$ this -> data [ ' variable ' ] = " Hello World! " ;
$ this -> out ();
}
}現在,創建一個名為Default的文件夾內部的文件夾和一個名為CONCOL和FILE home.twig的子文件夾。
像這樣編輯視圖/默認/common/home.twig 。
< h1 > {{ variable }} </ h1 >重命名config.dist.php到config.php並在文件config.php中編輯常數http_url和dir_application 。如果需要,編輯其他dir_*常數路徑。
<?php
define ( ' HTTP_URL ' , ' http://phacil.local/ ' );
define ( ' HTTPS_URL ' , HTTP_URL );
define ( ' HTTP_IMAGE ' , HTTP_URL );
define ( ' USE_DB_CONFIG ' , false );
define ( ' DEBUG ' , true );
$ configs = array (
' PatternSiteTitle ' => ' - ExacTI phacil ' ,
' config_mail_protocol ' => ' smtp ' ,
' config_error_display ' => 1 ,
' config_template ' => " default " ,
' config_error_filename ' => ' error.log ' );
//App folders
define ( ' DIR_APPLICATION ' , ' /Applications/MAMP/htdocs/phacil/ ' );
define ( ' DIR_LOGS ' , DIR_APPLICATION . ' logs/ ' );
define ( ' DIR_PUBLIC ' , DIR_APPLICATION . ' public_html/ ' );
define ( ' DIR_SYSTEM ' , DIR_APPLICATION . ' system/ ' );
define ( ' DIR_IMAGE ' , DIR_APPLICATION . ' public_html/imagens/ ' );
define ( ' DIR_TEMPLATE ' , DIR_APPLICATION . ' view/ ' );
define ( ' DIR_CACHE ' , DIR_APPLICATION . ' cache/ ' );將您的http/php服務器指向public_html文件夾,在您喜歡的瀏覽器中訪問您的Web應用程序,並享受此Hello Hello World!
所有路由都是帶有主要控制器類的映射類。在簡單的術語中,控制器中的類名稱是控制器文件夾文件名。
class ControllerFolderFile extends Controller { }
名為index()的公共函數是生成頁面的默認函數。
public function index() { }
數組$this->data以數組格式接收到要發送到模板的變量,在此示例中,稱為“變量” ,帶有字符串Hello World! 。
最後,我們完成了一個簡單的$this->out();指示輸出和過程模板文件。這是一種自動化機制,將該控制器與相應的觀看器聯繫起來。
此示例中的查看器是樹枝模板格式(Twig Page)。精確的Phacil框架允許使用各種PHP模板引擎,例如Twig,Mustache,Dwoo和Smarty。
config.php文件中默認常數配置的簡單描述。
| 持續的 | 類型 | 描述 | 必需的 |
|---|---|---|---|
| http_url | 細繩 | 包含此Web應用程序的URL | 是的 |
| https_url | 細繩 | 同樣此http_url,但以SSL格式 | |
| http_image | 細繩 | 圖像URL | |
| CDN | 細繩 | 用於靜態內容的CDN URL | |
| db_config | 布爾 | 允許在數據庫中直接使用配置。需要數據庫安裝。價值觀:正確或錯誤。 | 是的 |
| 偵錯 | 布爾 | 指示調試模式。 | 是的 |
$configs | 大批 | No-SQL配置 | |
| dir_application | 細繩 | 絕對通往應用程序文件夾的路徑 | 是的 |
| dir_logs | 細繩 | 到日誌文件夾的路徑 | |
| dir_public | 細繩 | 通往公共文件夾的路徑。該目錄是在HTTP服務器中配置的目錄。 | 是的 |
| dir_system | 細繩 | 系統目錄 | 是的 |
| dir_image | 細繩 | 圖像庫使用的圖像目錄。 | |
| dir_template | 細繩 | 帶有模板文件夾的目錄 | 是的 |
| dir_cache | 細繩 | 存儲生成的緩存的目錄。 | 是的 |
| cache_expire | 時間戳 | 以unix時間戳格式為有效緩存的秒。默認值為3600。 (1小時) | |
| USE_PHPFASTCACHE | 布爾 | 啟用用於緩存資源的PHPFASTCACHE庫。 | |
| cache_driver | 細繩 | phpfastcache的緩存方法。默認是文件。 | |
| cache_settings | 大批 | PHPFASTCACHE的設置(https://www.phpfastcache.com)。 | |
| dir_config | 細繩 | 帶有額外配置文件的目錄 | |
| DB_DRIVER | 細繩 | 驅動程序連接數據庫源。請參閱下面的默認驅動程序。 | |
| db_hostname | 細繩 | 數據庫主機 | |
| db_username | 細繩 | 連接數據庫的用戶名 | |
| db_password | 細繩 | 數據庫密碼 | |
| db_database | 細繩 | 數據庫名稱 | |
| sql_cache | 布爾 | 使用SQL選擇緩存系統 | |
| 路線 | 大批 | 指定手動路由 | |
| default_route | 細繩 | 定義使用初始頁面假設的默認路由。默認值是常見/主頁。 | |
| custom_db_config | 細繩 | 自定義SQL在數據庫中加載應用程序配置。 | |
| 未找到 | 細繩 | 自定義路由到未找到頁面。默認值為錯誤/not_found。 | |
| session_prefix | 細繩 | 自定義會話cookie名稱前綴。默認值為sess。 |
Phacil Framework使用三種用於輸出內容的方法計數: $this->response->setOutput() , $this->render()和$this->out() 。
當您調用$this->response->setOutput ,您可以在沒有模板的情況下為屏幕上的內容輸出。這對於JSON,XML或其他數據內容非常有用。
<?php
class ControllerDemoSample extends Controller {
public function index () {
$ variable = ' value ' ;
$ this -> response -> setOutput ( $ variable );
// prints "value" in screen
}
}$this->render只是用模板渲染控制器,但不會輸出此。需要指定一個$this->template以與模板文件關聯。它在兒童控制器(例如標頭和頁腳)中很廣泛使用。
<?php
class ControllerCommonHeader extends Controller {
public function index () {
$ variable = ' value ' ;
$ this -> template = ' default/common/header.twig ' ;
$ this -> render ();
}
}$this->out是輸出內容以篩選並將渲染與關聯模板相結合的明智方法。對於示例,如果您的文件中有一個名為sample.php的控制器,在demo控制器文件夾中和一個名為sample.twig的查看器內部的demo $this->template夾中的示例。如果您指定$this->out(false)自動兒童“標頭”和“頁腳”。
對於控制器內部與索引不同的功能,對於使用模板自動映射,必須在控制器名稱之後添加下劃線(_)並添加函數名稱(例如:contact_work.twig以與路由/聯繫人/contact/works鏈接,請參閱路由/工作,請參閱路由部分以獲取更多信息)。
<?php
class ControllerCommonContact extends Controller {
public function index () {
$ this -> document -> setTitle ( ' Contact Us ' );
$ this -> out ();
// automatically link with common/contact.twig template
}
public function work () {
$ this -> document -> setTitle ( ' Work with Us ' );
$ this -> out ();
// automatically link with common/contact_work.twig template
}
}該框架支持此PHP模板引擎:
要使用確定的模板引擎,只需在擴展名中創建一個帶有引擎名稱的文件,以便示例,如果您想使用樹枝,模板文件是demo.twig ,如果需要鬍鬚模板,請使用demo.mustache擴展文件。 Exacti Phacil框架允許在同一項目中使用各種模板引擎。
該框架非常專注於PHP中的敏捷,安全性和可重複使用的代碼。包含我們在下一部分中看到的非常utils的功能。
執行查詢:
$ variable = $ this -> db -> query ( " SELECT * FROM mundo " );沒有SQL緩存(如果啟用了配置):
$ variable = $ this -> db -> query ( " SELECT * FROM mundo " , false );逃脫值更多安全性(無SQL注入問題): $this->db->escape($value)
獲取這些行: $variable->rows ;
獲取一排: $variable->row ;
行數: $variable->num_rows ;
<?php
class ModelDemoSample extends Model {
public $ data = array ();
public function dataSample ( $ code ) {
$ variable = $ this -> db -> query ( " SELECT * FROM settings WHERE code = ' " . $ this -> db -> escape ( $ code ). " ' " );
$ this -> data [ ' rows ' ] = $ variable -> rows ;
$ this -> data [ ' totalRecords ' ] = $ variable -> num_rows ;
return $ this -> data ;
}
}| 司機 | 數據庫類型 | 描述 |
|---|---|---|
| DB_PDO | Mariadb | 優化的PDO連接可與Charset UTF8MB4一起使用MariaDB數據庫。也可以與MySQL一起工作。 |
| dbmysqli | mysql/mariadb | mysqli php連接 |
| MSSQL | MS SQL Server | 使用MSSQL PHP擴展程序連接到Microsoft SQL Server數據庫。 |
| mpdo | mysql | MySQL數據庫的PDO連接 |
| mysql | mysql | 傳統mysql擴展。僅在PHP 5中工作。 |
| Oracle | Oracle | 連接到Oracle數據庫 |
| 爆發 | Postgresql | 連接到PostgreSQL數據庫的驅動程序。 |
| SQLSRV | MS SQL Server | 將Microsoft SQL Server數據庫連接使用SQLSRV PHP擴展名。 |
| SQLSRVPDO | MS SQL Server | 使用PDO驅動程序連接到Microsoft SQL Server。 |
| sqlite3_db | Sqlite 3 | 使用SQLite 3數據庫 |
該框架包含phpfastCache(https://www.phpfastcache.com)庫,以提供具有許多可能性的最有效的高速緩存系統,例如Mencache,Redis,APC或簡單的文件緩存。要啟用此庫,請定義use_phpfastCache常數為true。它僅在PHP 7或更新中起作用。如果您不設置use_phpfastCache或使用舊版本的PHP,則PHACIL自動設置為簡單的內部文件緩存系統。
| 常規駕駛員 | 高性能驅動程序 | 開發驅動力 |
|---|---|---|
| APC(u) | 卡桑德拉 | Devnull |
| 餅乾 | scouchbase | Devfalse |
| 文件 | couchdb | Devtrue |
| LevelDB | mongodb | 備忘錄 |
| memcache(d) | 佩斯 | |
| sqlite | Redis | |
| Wincache | riak | |
| XCache | SSDB | |
| Zend磁盤緩存 | Zend內存緩存 |
要以二進制模式(最快)的存儲緩存,PHP需要Igbinary擴展名(https://github.com/igbinary/igbinary)。沒有igbinary,框架可以正常工作,但是使用序列化的PHP函數存儲了緩存的值。
您可以配置使用SQL_Cache Constant Configuration在SQL數據庫中使用自動緩存(請參見“配置”部分)。還可以用於手動庫中的手動庫中的控制器或模型中,帶有$this->cache->set($key, $value)來設置緩存和$this->cache->get($key) ,以獲取CACHEACH值。
使用Especial文檔類來操縱有關最終HTML的信息。
要調用文檔類,請在控制器內使用$this->document 。
添加CSS: $this->document->addStyle($href, $rel = 'stylesheet', $media = 'screen', $minify = true) ;
要添加JavaScript: $this->document->addScript($script, $sort = '0', $minify = true) ;
Facebook metatag: $this->document->addFBMeta($property, $content = '') ;
文檔html標題: $this->document->setTitle($title) ;
頁面描述: $this->document->setDescription($description) ;
<?php
class ControllerCommonHome extends Controller {
public function index () {
$ this -> document -> addStyle ( ' pipoca.css ' );
}
}該框架有很多實用程序,並使用自動加載格式接受了更多的系統文件夾。
在一個控制器中執行class()類。
$ cla = new Classes ();
var_dump ( $ cla -> classes ());在一個控制器中執行class()class()class()和調用function()。
$ cla = new Classes ( ' HTML ' );
var_dump ( $ cla -> functions ());注意: HTML參數是HTML樣式的輸出。是可選的。
在此框架中,裝載機是獲取資源在PHP代碼中使用的簡單方法。非常直觀,需要幾步。
對於示例而言,加載模型只是$this->load->model('folder/file');並且使用是$this->model_folder_file->object(); ,就像這個樣本一樣:
<?php
class ControllerSampleUse extends Controller {
public function index () {
$ this -> load -> model ( ' data/json ' );
$ this -> data [ ' totalData ' ] = $ this -> model_data_json -> total ();
$ this -> out ();
}
}您可以使用裝載機來:
如果您需要額外的數據庫連接或其他驅動程序/數據庫訪問,則可以使用$this->load->database($driver, $hostname, $username, $password, $database);方法(在本文檔的數據庫部分中,請參見有關數據庫功能的更多信息)。
數據庫的名稱是訪問數據庫函數的註冊對象。此負載很簡單,註冊表到原始對象。
<?php
class ModelDemoSample extends Model {
public function otherData () {
$ this -> load -> database ( ' mpdo ' , ' localhost ' , ' root ' , ' imtheking ' , ' nameDatabase ' );
$ sql = $ this -> db -> nameDatabase -> query ( " SELECT * FROM mundo " );
return $ sql -> rows ;
}
}該框架完全基於MVC(模型,視圖和控制器)。這些模型就像控制器一樣,並使用具有不同文件夾的相同結構。
要創建一個模型,請將模型文件夾放置一個目錄並使用代碼文件。
<?php
class ModelFolderFile extends Model {
public function SayMyName () {
return " Heisenberg " ;
}
}要在控制器中使用此模型,您可以使用loader 。
<?php
class ControllerFolderFile extends Controller {
public function index () {
$ this -> load -> model ( ' folder/file ' );
echo $ this -> model_folder_file -> SayMyName ();
// this output is "Heisenberg".
}
}在某些情況下,我們需要在課堂中添加__ -construct或__destruct,以更好地代碼實踐。要調用控制器和模型中的構造,請使用$registry父母:
public function __construct ( $ registry )
{
parent :: __construct ( $ registry );
// YOUR CODE HERE AFTER THIS LINE!
}要使用魔術請求系統,您只需要調用$this->request方法即可。對於示例,要獲取郵政值,請使用$this->request->post['field']以安全性獲取後值。對於$ _server預定義變量,請使用$this->request->server['VALUE']和$this->request->get[key] $ _get值。
對於REST服務,您可以使用$this->request->method來檢查是否是帖子,獲取,放置,刪除或其他HTTP方法。您可以使用輔助函數來確定HTTP方法,例如$this->request->isPUT()以返回put方法的true或false 。另外,其他方法具有您的功能,例如$this->request->isPOST() , $ this-> $this->request->isGET() , $this->request->isHEAD() , $this->request->isCONNECT() , $this->request->isOPTIONS() , $this->request->isTRACE() , $this->request->isPATCH() > is $this->request->isDELETE()所有這些都等同於請求中的“ IS”函數,例如此示例: $this->request->is('PUT')返回put http方法的true或false。
使用此請求的優勢而不是PHP的預定義變量的安全性,更安全性,可升級和Unicode值。
會話有點不同,您可以定義並與$this->session->data['name']一起使用。與Phacil一起進行的所有會議均適用於HTTPS和IP驗證,換句話說,我們使會話cookie偷走了更加困難,以減少會議劫持的機會。您可以在配置文件中使用Constant SESSION_PREFIX定義會話前綴名稱。默認情況下,前綴為“ sess”。
| 範圍 | 類型 | 描述 |
|---|---|---|
$this->template | 細繩 | 手動指定模板的路徑 |
$this->twig | 大批 | 創建樹枝附加功能。例如: $this->twig = array('base64' => function($str) { return base64_encode($str); }); |
$this->children | 大批 | 加載Web應用程序的其他渲染圖中的模板變量。使用$this->out()輸出時,兒童的頁腳和標頭默認加載。要在沒有此默認的兒童的情況下加載,請使用$this->out(false) 。 |
$this->redirect($url) | 細繩 | 創建一個標題以重定向到另一頁。 |
Exacti Phacil框架是一個簡單的路由器基礎,可以創建一個簡單而一致的Web導航。
如果沒有SEO URL,我們在包含Controller的方案文件夾/文件時調用一個帶路由的頁面獲取參數,例如: http://example.com/index.php? route=folder/file。
在示例案例中,我們有此控制器:
<?php
class ControllerFolderFile extends Controller {
public function index () {
echo " Index " ;
}
public function another () {
echo $ this -> foo ( $ this -> request -> get [ ' p ' ]);
}
private function foo ( $ parameter ) {
return ( $ parameter != 0 ) ? " another " : " other " ;
}
}如果我們訪問index.php? route =文件夾/文件,我們會看到“索引”消息。但是,就像樹一樣,如果我們訪問index.php? route =文件夾/文件/另一個帶有“其他”消息的功能代碼。
多個獲取參數很簡單,我們可以正常定義,例如: index.php? route =文件夾/文件/另一個&p = 2以打印“另一個”消息。
如果我們嘗試訪問index.php? route =文件夾/file/foo ,則私有和受保護功能僅用於內部使用,框架返回404 HTTP錯誤。
如果您需要精美的URL進行SEO或其他優化,則可以使用url_alias數據庫表。非常簡單,並且“翻譯” URL中的路線。
在數據庫中執行此SQL以創建一個url_alias表:
CREATE TABLE ` url_alias ` (
` url_alias_id ` int ( 11 ) NOT NULL AUTO_INCREMENT,
` query ` varchar ( 255 ) COLLATE utf8_bin NOT NULL ,
` get ` longtext COLLATE utf8_bin,
` keyword ` varchar ( 255 ) COLLATE utf8_bin NOT NULL ,
PRIMARY KEY ( ` url_alias_id ` ),
UNIQUE KEY ` keyword ` ( ` keyword ` )
) AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8 COLLATE = utf8_bin;想像一下此稱為url_alias的SQL表:
| url_alias_id | 詢問 | 得到 | 關鍵詞 |
|---|---|---|---|
| 1 | 聯繫/續 | 接觸 | |
| 2 | Web服務/站點地圖 | 站點地圖 |
使用url_alias,訪問路由http://example.com/index.php?route=contact/contato和http://example.com/contact是相同的! (非常漂亮!)。
您可以在沒有SQL數據庫配置的情況下創建URL。為此,您只需要使用帶有數組內容的路由常數在配置文件中指定路由,例如:
define ( ' ROUTES ' , array (
' magic ' => ' common/home/xml ' ,
' json ' => ' common/home/json ' ));我們有一個函數來創建一個嚴格而動態的鏈接自動: $this->url->link($route, $args = '', $connection = 'NONSSL') 。是一個簡單的功能,可以使用正確的URL編碼生成內部鏈接。
在上面的該表的示例中,如果我們有此代碼:
echo $ this -> url -> link ( ' contact/contato ' );我們在輸出中獲得此URL: http://example.com/contact
但是,如果您在url_alias表中沒有路由,請返回完整的路線。
echo $ this -> url -> link ( ' catalog/products ' );在輸出中返回此URL: http://example.com/index.php?route= catalog/products
使用額外的獲取參數:
$ fields = array ( ' foo ' => ' bar ' );
echo $ this -> url -> link ( ' contact/contato ' , $ fields );
echo $ this -> url -> link ( ' contact/contato/place ' , $ fields );我們在輸出中獲取此URL,並獲得參數:
http://example.com/contact?foo=bar
http://example.com/index.php?route=contact/contato/place&foo=bar
注意:有必要指定config_seo_url以正確函數此URL的功能。如果使用sql url_alias表,則需要在配置文件中指定USE_DB_CONFIG為true。
使用“ % ”字符及其變化(見下文)與通配符創建路線。 URL中的所有內容都將與通配符匹配,將您的控制器函數作為參數傳遞給您的控制器函數。
| 通配符 | 描述 |
|---|---|
| %d | 匹配等於[0-9]的任何十進制數字。 |
| %w | 匹配任何字母,數字或下劃線。等效於[A-ZA-Z0-9_]。不允許空間或其他角色。 |
| %一個 | 匹配有效ASCII範圍內的任何字符。不接受拉丁字符,例如“ç”或“” 。 |
| % | 接受任何角色。 |
define ( " ROUTES " , [
" produto/%d/%/promo " => " feriado/natal/presentes "
]
); <?php
class ControllerFeriadoNatal extends Controller {
public function presentes ( $ id , $ name ) {
echo $ id ;
echo $ name ;
}
}在上面的此示例中,想像一下URL http://yoursite.com/produto/droduto/droduto/droduto/dyproduto/dypromo/promo ,此URL發送到函數以呈現$id的值和$name參數的值,換句話說,換句話說, $id的值設置為87和$name to alfajor 。路由器中的通配符%d相對於$id參數定義僅是接受的數字值。
在這一刻,此資源僅在恆定路由方法中可用。 SQL路線目前不支持通配符。
如果您需要以另一種格式或其他響應輸出,則可以使用響應方法$this->response 。
對於示例,在輸出是JSON數據時創建控制器:
<?php
class ControllerApiData extends Controller {
public function index () {
$ record = array ( array ( " index " => 482 , " id " => 221 ), array ( " index " => 566 , " id " => 328 ));
$ json = json_encode ( $ record );
$ this -> response -> isJSON (); //Auto send the 'Content-Type: application/json' header
$ this -> response -> setOutput ( $ json );
}
} $this->response->isJSON負責將JSON Content-Type HTTP標頭髮送到瀏覽器。 $this->response->setOutput()可用於將變量,函數,常數等內容的輸出發送到瀏覽器。
我們有此輸出:
[{ "index" : 482 , "id" : 221 },{ "index" : 566 , "id" : 328 }]另一個示例,但使用XML數據:
<?php
class ControllerApiData extends Controller {
public function xml () {
$ test_array = array (
' bla ' => ' blub ' ,
' foo ' => ' bar ' ,
);
$ xml = new SimpleXMLElement ( ' <root/> ' );
array_walk_recursive ( $ test_array , array ( $ xml , ' addChild ' ));
$ this -> response -> addHeader ( ' Content-Type: text/xml ' );
$ this -> response -> setOutput ( $ xml -> asXML () );
}
} $this->response->addHeader具有將個性化HTTP標頭髮送到瀏覽器的函數,在這種情況下,指定內容類型信息。響應是:
<? xml version = " 1.0 " ?>
< root >
< blub >bla</ blub >
< bar >foo</ bar >
</ root > 作為響應,我們具有帶有參數的setoutput函數,用於JSON和REST使用。
參數為$this->response->setOutput($output, bool $isJSON, int $HTTPCODE, string $HTTPDESC);自動使用時,如果第二個參數為真,並在第三個參數中定義HTTP響應代碼,則應用JSON Content-Type標頭。如果需要,也可以發送HTTP代碼的說明。
除第一個參數外,其他參數是可選的。
<?php
class ControllerApiData extends Controller {
public function index () {
$ record = [
[
" index " => 482 ,
" id " => 221
],
[
" index " => 566 ,
" id " => 328
]
];
$ json = json_encode ( $ record );
$ this -> response -> setOutput ( $ json , true , 404 );
}
}Phacil Framework中的Config Librare獲得了以下網絡應用程序中使用的值:$ config.php文件中的$config Array,您已配置的數據庫中的設置表或兩者兼有。
基於鍵 - >值模式,具有序列化值之類的選項。
要使用配置值,只需調用$this->config->get('nameOfKey') 。
要存儲配置值,請使用稱為設置或數組的SQL表。
$ config = array (
" title " => " ExacTI Phacil Framework " ,
" config_error_display " => true ,
" config_error_log " => false ,
" phones " => array (
" BR " => ' +55 11 4115-5161 ' ,
" USA " => ' +1 (845) 579-0362 ' )
);| setter_id | 團體 | 鑰匙 | 價值 | 序列化 |
|---|---|---|---|---|
| 1 | 標題 | 精確的Phacil框架 | 0 | |
| 2 | config | config_error_display | 1 | 0 |
| 3 | config | config_error_log | 0 | 0 |
| 4 | 電話 | a:2:{s:2:“ br”; s:16:“+55 11 4115-5161”; s:3:“美國”; s:17:“+1(845)579-0362”;} | 1 |
此配置鍵保留用於框架。
$this->document->setTitle()函數,將%s替換為此值。 (細繩) CREATE TABLE ` settings ` (
` setting_id ` int ( 11 ) NOT NULL AUTO_INCREMENT,
` group ` varchar ( 32 ) COLLATE utf8_bin,
` key ` varchar ( 64 ) COLLATE utf8_bin NOT NULL DEFAULT ' ' ,
` value ` mediumtext COLLATE utf8_bin,
` serialized ` tinyint ( 1 ) NOT NULL DEFAULT ' 0 ' ,
PRIMARY KEY ( ` setting_id ` )
) AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8 COLLATE = utf8_bin; CREATE TABLE settings (
[setting_id] int NOT NULL IDENTITY PRIMARY KEY ,
[group] varchar ( 32 ),
[key] varchar ( 64 ) NOT NULL DEFAULT ' ' ,
[value] nvarchar(max),
[serialized] tinyint DEFAULT ' 0 ' ,
UNIQUE ([key])
);如果您需要註冊整個應用程序中使用的類或其他資源,則可以在系統文件夾中使用file Registrations.php創建。用於指定$this->registry->set('name', $function); (如果需要)。之後,只需使用$this->name即可在控制器或模型中訪問此註冊表。
在 /System /registrations.php中聲明
<?php
// use for register aditionals
$ criptoClass = new CriptoClass ( ' salt ' );
$ this -> registry -> set ( ' cripto ' , $ criptoClass );在/controler/demo/sample.php中使用
<?php
class ControllerDemoSample extends Controller {
public function index () {
$ value = 123 ;
$ use = $ this -> cripto -> function ( $ value );
echo $ use ;
}
}您也可以使註冊更複雜,用於示例,使用另一個數據庫或負載調用。
在 /System /registrations.php中聲明
<?php
//use for register aditionals
class DBne extends Controller {
public function __construct ( $ registry ) {
parent :: __construct ( $ registry );
$ database = " test " ;
$ this -> load -> database ( $ driver , $ hostname , $ username , $ password , $ database );
//see the load database method above for better comprehension
}
}
new DBne ( $ this -> registry );使用/controller/demo/sample.php
class ControllerDemoSample extends Controller {
public function index () {
$ this -> test -> query ( " SELECT * FROM mundo " );
}
}請注意:僅將註冊用於您需要從整個應用程序中訪問的對象。例如:如果您需要再連接一個數據庫,但是只需用於一個模型,則最好在模型中加載,以獲得出色的性能。
要添加新的類或功能,您可以使用autoLoad.php文件將文件夾放在系統目錄中。所有autoLoad.php文件都包含在自動的框架中。
Composer是PHP編程語言的應用程序級軟件包管理器,它提供了用於管理PHP軟件依賴性和所需庫的標準格式。
要使用Composer軟件包和自動加載,只需使用此供應商Dir:System/System/供應商配置您的Composer.json 。
{
"config" : {
"vendor-dir" : " ./system/vendor/ "
}
}該項目可用於使用GPLV3許可證的精確IT解決方案。