十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本教程示例代碼見:https://github.com/creazy412/yaf_2_eloquent_orm
?
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供秀洲網(wǎng)站建設(shè)、秀洲做網(wǎng)站、秀洲網(wǎng)站設(shè)計(jì)、秀洲網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、秀洲企業(yè)網(wǎng)站模板建站服務(wù),十多年秀洲做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
?
Yaf 是鳥哥(Laruence)在倆年前寫的一個PHP擴(kuò)展的MVC框架. 開發(fā)Yaf的目的是為了解決使用框架帶來的性能下降的經(jīng)典矛盾.
?
鏈接有一篇框架作者本人對 Yaf 框架的理解說明。
?
Yaf框架的一個特點(diǎn)就是輕量,很多東西比如ORM都沒有官方提供,而是交由開發(fā)者自己選擇自己喜歡的ORM或者自己開發(fā)一套ORM在框架中使用,而在此次項(xiàng)目中,我使用了Laravel框架的Eloquent ORM,目前Laravel已經(jīng)將自己的Eloquent ORM進(jìn)行了組件化,只需要使用composer就可以安裝,安裝完成后,在Yaf的bootstrap文件中,引入composer的autoload文件即可。
?
?
PHP 版本要求 >= 5.4,這是 Eloquent 的最低要求。
這里使用的 phpstudy 集成環(huán)境安裝包
下載 Yaf 框架,地址是 http://pecl.php.net/package/yaf ,下載完成后按照手冊安裝即可(http://www.laruence.com/manual/yaf.install.html#yaf.configure),配置好 HTTP 服務(wù)軟件,把網(wǎng)站跑起來。如果你已經(jīng)看到了以下畫面,就可以繼續(xù)往下做了:
?
?
??我們使用 Composer 來載入和管理 Eloquent。Composer 會生成一個自動加載('autoload')文件,我們只需要 'require' 這個文件,就可以使用所有通過 Composer 安裝的包?,F(xiàn)在我們要在 CodeIgniter 項(xiàng)目中使用 Composer,在其根目錄下新建 composer.json:
{
"require": {
"php": ">=5.4.0",
"illuminate/database": "*"
}
}
?
然后運(yùn)行 'composer update',稍等片刻,Composer 體系創(chuàng)建完成,同時(shí) illuminate/database 包也已經(jīng)安裝完成。
?
然后新建 'application/eloquent.php':
addConnection($db['eloquent']);
$capsule->bootEloquent();
?
這個文件將會幫我們引入 Composer 的自動加載文件,同時(shí)會幫我們初始化 Eloquent,這個文件載入了一個數(shù)據(jù)庫配置文件,在 'conf/database.php' 的最后新增(注意替換數(shù)據(jù)庫名稱和密碼):
'MySQL',
'host' => 'localhost',
'database' => 'yaf',
'username' => 'root',
'password' => '123123',
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
'prefix' => ''
];
?
接下來我們需要在 Yaf 應(yīng)用啟動的時(shí)候引入上面那個文件,在入口文件的‘index.php’ 的后部增加:
?
bootstrap() /*實(shí)例化Bootstrap, 依次調(diào)用Bootstrap中所有_init開頭的方法*/
->run();
?
然后,開始使用 Eloquent,修改 'application/controllers/Index.php' 中的 'bootstrapAction()' 為:
public function bootstrapAction()
{
$result = UserModel::all();
$this->getView()->assign("result", $result);
}
?
新建 'application/views/index/bootstrap.phtml' 文件(為了簡潔,直接使用bootstrap模版和響應(yīng)式表格):
Bootstrap 101 Template
?
現(xiàn)在讓我們向數(shù)據(jù)庫中填充需要使用的數(shù)據(jù),運(yùn)行 SQL 語句:
DROP TABLE IF EXISTS 'yaf';
CREATE TABLE 'yaf' (
'id' int(11) unsigned NOT NULL AUTO_INCREMENT,
'name' varchar(255) NOT NULL DEFAULT '',
'email' varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY ('id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
LOCK TABLES 'yaf' WRITE;
/*!40000 ALTER TABLE 'yaf' DISABLE KEYS */;
INSERT INTO 'yaf' ('name', 'email')
VALUES
('小明', 'xiaoming@qq.com'),
('小紅', 'xiaohong@qq.com');
/*!40000 ALTER TABLE 'yaf' ENABLE KEYS */;
UNLOCK TABLES;
?
然后建立模型,新建 'application/models/User.php' 文件:
?
?
至此,http://localhost:81/bd/yaf-demo/public/index.php/index/bootstrap 刷新頁面即可:
?
參考文獻(xiàn):https://lvwenhan.com/php/414.html