<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                當開發者第一次接觸 PHP 時,通常會使用類似下面的代碼來將數據庫的交互與表示層邏輯混在一起: ~~~ <ul> <?php foreach ($db->query('SELECT * FROM table') as $row) { echo "<li>".$row['field1']." - ".$row['field1']."</li>"; } ?> </ul> ~~~ 這從很多方面來看都是錯誤的做法,主要是由于它不易閱讀又難以測試和調試。而且如果你不加以限制的話,它會輸出非常多的字段。 其實還有許多不同的解決方案來完成這項工作 — 取決于你傾向于 [面向對象編程(OOP)](http://laravel-china.github.io/#object-oriented-programming)還是[函數式編程](http://laravel-china.github.io/#functional-programming) — 但必須有一些分離的元素。 來看一下最基本的做法: ~~~ <?php function getAllFoos($db) { return $db->query('SELECT * FROM table'); } foreach (getAllFoos($db) as $row) { echo "<li>".$row['field1']." - ".$row['field1']."</li>"; // BAD!! } ~~~ 這是一個不錯的開頭。將這兩個元素放入了兩個不同的文件于是你得到了一些干凈的分離。 創建一個類來放置上面的函數,你就得到了一個「Model」。創建一個簡單的`.php`文件來存放表示邏輯,你就得到了一個「View」。這已經很接近 [MVC](http://code.tutsplus.com/tutorials/mvc-for-noobs--net-10488) — 一個大多數[框架](http://laravel-china.github.io/#frameworks)常用的面向對象的架構。 foo.php ~~~ <?php $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'); // Make your model available include 'models/FooModel.php'; // Create an instance $fooModel = new FooModel($db); // Get the list of Foos $fooList = $fooModel->getAllFoos(); // Show the view include 'views/foo-list.php'; models/FooModel.php <?php class FooModel { protected $db; public function __construct(PDO $db) { $this->db = $db; } public function getAllFoos() { return $this->db->query('SELECT * FROM table'); } } ~~~ views/foo-list.php ~~~ <?php foreach ($fooList as $row): ?> <?= $row['field1'] ?> - <?= $row['field1'] ?> <?php endforeach ?> ~~~ 向大多數現代框架的做法學習是很有必要的,盡管多了一些手動的工作。你可以并不需要每一次都完全這么做,但將太多的表示邏輯層代碼和數據庫交互摻雜在一些將會為你在想要對程序進行[單元測試](http://laravel-china.github.io/#unit-testing)時帶來真正的麻煩。 [PHPBridge](http://phpbridge.org/) 具有一項非常棒的資源叫做[創建一個數據類](http://phpbridge.org/intro-to-php/creating_a_data_class)。它包含了非常相似的邏輯而且非常適合剛剛習慣數據庫交互概念的開發者使用。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看