欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Yaf中使用LarvaelEloquentORM

本教程示例代碼見: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)在倆年前寫的一個(gè)PHP擴(kuò)展的MVC框架. 開發(fā)Yaf的目的是為了解決使用框架帶來的性能下降的經(jīng)典矛盾.
?
鏈接有一篇框架作者本人對(duì) Yaf 框架的理解說明。

?

Yaf框架的一個(gè)特點(diǎn)就是輕量,很多東西比如ORM都沒有官方提供,而是交由開發(fā)者自己選擇自己喜歡的ORM或者自己開發(fā)一套ORM在框架中使用,而在此次項(xiàng)目中,我使用了Laravel框架的Eloquent ORM,目前Laravel已經(jīng)將自己的Eloquent ORM進(jìn)行了組件化,只需要使用composer就可以安裝,安裝完成后,在Yaf的bootstrap文件中,引入composer的autoload文件即可。
?

基礎(chǔ)準(zhǔn)備

?
PHP 版本要求 >= 5.4,這是 Eloquent 的最低要求。
這里使用的 phpstudy 集成環(huán)境安裝包

下載 Yaf 框架,地址是 http://pecl.php.net/package/yaf ,下載完成后按照手冊(cè)安裝即可(http://www.laruence.com/manual/yaf.install.html#yaf.configure),配置好 HTTP 服務(wù)軟件,把網(wǎng)站跑起來。如果你已經(jīng)看到了以下畫面,就可以繼續(xù)往下做了:
Yaf 中使用 Larvael Eloquent ORM
?

開始嫁接

?
??我們使用 Composer 來載入和管理 Eloquent。Composer 會(huì)生成一個(gè)自動(dòng)加載('autoload')文件,我們只需要 'require' 這個(gè)文件,就可以使用所有通過 Composer 安裝的包。現(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':

<?php

// defined("APP_PATH") OR exit("No direct script access allowed");

use Illuminate\Database\Capsule\Manager as Capsule;

// Autoload 自動(dòng)載入

require APP_PATH . '../vendor/autoload.php';

// 載入數(shù)據(jù)庫配置文件

require_once APP_PATH . '\conf/database.php';

// Eloquent ORM

$capsule = new Capsule;

$capsule->addConnection($db['eloquent']);

$capsule->bootEloquent();

?
這個(gè)文件將會(huì)幫我們引入 Composer 的自動(dòng)加載文件,同時(shí)會(huì)幫我們初始化 Eloquent,這個(gè)文件載入了一個(gè)數(shù)據(jù)庫配置文件,在 'conf/database.php' 的最后新增(注意替換數(shù)據(jù)庫名稱和密碼):

<?php

return $db['eloquent'] = [

  'driver'    => 'MySQL',

  'host'      => 'localhost',

  'database'  => 'yaf',

  'username'  => 'root',

  'password'  => '123123',

  'charset'   => 'utf8',

  'collation' => 'utf8_general_ci',

  'prefix'    => ''

  ];

?
接下來我們需要在 Yaf 應(yīng)用啟動(dòng)的時(shí)候引入上面那個(gè)文件,在入口文件的‘index.php’ 的后部增加:
?

<?php

use Yaf\Application;
use Yaf\Exception;
use Yaf\Loader;

define("APP_PATH", realpath(dirname(__FILE__) . '/../')); /**/
// echo (APP_PATH);die;
$app = new Application(APP_PATH . "\conf\application.ini");
/*

 * --------------------------------------------------------------------

 * LOAD Laravel Eloquent ORM

 * --------------------------------------------------------------------

 *

 */
**require APP_PATH . '\application\eloquent.php';**

$app->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' 文件(為了簡(jiǎn)潔,直接使用bootstrap模版和響應(yīng)式表格):

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3個(gè)meta標(biāo)簽*必須*放在最前面,任何其他內(nèi)容都*必須*跟隨其后! -->
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
    <link  rel="stylesheet">

    <!-- HTML5 shim 和 Respond.js 是為了讓 IE8 支持 HTML5 元素和媒體查詢(media queries)功能 -->
    <!-- 警告:通過 file:// 協(xié)議(就是直接將 html 頁面拖拽到瀏覽器中)訪問頁面時(shí) Respond.js 不起作用 -->
    <!--[if lt IE 9]>
      <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <ul class="nav nav-pills">
    <li role="presentation" class="active"><a href="#">Home</a></li>
    <li role="presentation"><a href="#">Profile</a></li>
    <li role="presentation"><a href="#">Messages</a></li>
    </ul>

    <!-- 響應(yīng)式表格 -->
    <div class="table-responsive">
      <table class="table table-bordered">
        <thead>
          <tr>
            <th>#</th>
            <th>name</th>
            <th>email</th>
            <th>operation</th>
          </tr>
        </thead>
        <tbody>
      <?php foreach ($result as $key => $value) { ?>
          <tr>
            <th scope="row"><?php echo $key + 1; ?></th>
                                    <td><?php echo $value['name']; ?></td>
                                    <td><?php echo $value['email']; ?></td>
                                    <td>
                                            <a href="del?id=<?php echo $value['id']; ?>">delete</a> |
                                            <a href="edit?id=<?php echo $value['id']; ?>">edit</a>
                                    </td>
          </tr>
      <?php } ?>
        </tbody>
      </table>
    </div>

    <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依賴 jQuery,所以必須放在前邊) -->
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <!-- 加載 Bootstrap 的所有 JavaScript 插件。你也可以根據(jù)需要只加載單個(gè)插件。 -->
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  </body>
</html>

?
現(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' 文件:
?

<?php

class UserModel extends Illuminate\Database\Eloquent\Model
{
    protected $table = 'yaf';
}

?
至此,http://localhost:81/bd/yaf-demo/public/index.php/index/bootstrap 刷新頁面即可:
Yaf 中使用 Larvael Eloquent ORM

 
 
?
參考文獻(xiàn):https://lvwenhan.com/php/414.html

文章標(biāo)題:Yaf中使用LarvaelEloquentORM
文章位置:http://www.chinadenli.net/article34/piisse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)云服務(wù)器建站公司關(guān)鍵詞優(yōu)化網(wǎng)站策劃網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名