」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在純 PHP 專案中使用 Laravel Blade 模板引擎?

如何在純 PHP 專案中使用 Laravel Blade 模板引擎?

發佈於2024-07-31
瀏覽:901

How to Use Laravel Blade Templating Engine with a Pure Vanilla PHP Project?

今天,我挑戰自己使用純 PHP 實作 Laravel MVC(模型、視圖、控制器)方法。為了解決這個問題,我在專案的視圖部分使用了標準的 Laravel Blade 模板引擎,但沒有安裝 Laravel,因為我的專案是純粹的 PHP。以下是我實現這種整合的方法;

我首先使用以下 Composer 指令安裝一個名為 Blade 的軟體包,作者是 JensSegers

composer require jenssegers/blade

這個套件允許 Blade 模板引擎作為獨立套件使用,使其與任何 PHP 專案相容,而不僅僅是 Laravel。

接下來,我運行以下命令將包的照亮/視圖依賴項更新到版本 11.7.0,因為該包無法在 11.7.0 以下的版本中正常工作:

composer require illuminate/view:11.7.0

然後,我建立了一個名為「pdotest」的資料庫,其中包含一個名為「post」的表,其中包含「name」和「body」列。我分別用數據填充此表(“這是使用Blade 模板引擎顯示的資料庫中的帖子名稱”,“這是使用Blade 模板引擎顯示的資料庫中的帖子正文”),並通過在我的根目錄中創建Database.php 檔案來連接到它專案並輸入以下程式碼:

host;dbname=$this->database",$this->username,$this->password);

        // $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        // $conn = $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


        return $conn;

    } catch (PDOException $e) {

        echo "Connection failed: " . $e->getMessage();

    }
}

}


?>

接下來,我為所有資料庫操作建立了一個名為「Models」的目錄。在這個目錄中,我建立了一個名為 Post.php 的檔案來處理「post」表上的操作。在此文件中,我定義了一個名為 post 的方法,用於透過 ID 檢索帖子,如下所示:

conn = (new Database)->connect(); // Access directly (less secure)
}


public function getPost($id){

    $stmt= "SELECT * FROM $this->table WHERE id = :id";

    $stmt =  $this->conn->prepare($stmt);

    $stmt->bindParam(':id', $id, PDO::PARAM_INT);

    $stmt->execute();

    return $result = $stmt->fetch();

}


}


?>

接下來,我創建了 index.php 來充當路由器,連接我的控制器、視圖和模型。在其中,我匯入了所有視圖和快取路徑,我將建立這些路徑來放置我的 Blade 視圖和快取檔案。然後這些路徑被傳遞給 Blade 類,該類是我們一開始安裝的 Blade 套件附帶的。然後,我將此 Blade 實例傳遞給我將創建的 PostController 類,並呼叫該類的 post 方法以在將來透過其 ID 取得貼文。

post();

?>

然後,我在專案的根目錄下建立了一個「controllers」目錄。在其中,我從index.php(路由器)接收了 Blade 變量,調用 Post 模型的 getPost 方法以通過其 ID 獲取帖子,並將該帖子傳遞到名為“homepage”的 Blade 視圖。

blade = $blade;
    }

  public function post(){

    $post = (new Post)->getPost(1);

    echo $this->blade->render('homepage', ['post' => $post]);


  }

}




?>

然後,我在專案的根目錄下建立了一個名為「views」的目錄和一個名為 homepage.blade.php 的檔案。在這個文件中,我只是顯示了從 PostController 傳遞的帖子的名稱,如下所示:

{{$post['name']}}

最後,我在專案的根目錄中建立了一個「cache」目錄來儲存 Blade 快取文件,這有助於提高專案的效能。

現在,當您在瀏覽器中造訪http://localhost/laravel-blade-without-laravel/index.php 時,您將看到貼文的名稱顯示為「這是使用Blade 範本顯示的資料庫中的帖子名稱”引擎。 」

感謝您關注這篇關於在純 PHP 專案中使用 Laravel Blade 模板引擎的文章。我希望它對您的發展之旅有所幫助。我叫 Waziri Ally Amiri,是來自坦尚尼亞莫希的 Web 開發人員。我專注於使用 Laravel,並且喜歡幫助其他人開始使用這個強大的框架。如果您有任何疑問或需要進一步協助,請隨時與我們聯繫。

版本聲明 本文轉載於:https://dev.to/waziridev/how-to-use-laravel-blade-templating-engine-with-a-pure-vanilla-php-project-5h1a?1如有侵犯,請聯絡study_golang @163.com刪除
最新教學 更多>
  • C++跨平台如何取得當前時間和日期?
    C++跨平台如何取得當前時間和日期?
    在C 跨平台中獲取當前時間和日期C 標準庫現在提供了一種方便且可移植的方式來檢索當前時間並透過std::chrono::system_clock 類別取得日期。在 C 11 中引入,此類提供了一個獨立於系統的接口,用於存取高分辨率計時資訊。 文法:auto now = std::chrono::sy...
    程式設計 發佈於2024-12-23
  • JavaScript 物件解構如何簡化函數參數?
    JavaScript 物件解構如何簡化函數參數?
    解開函數參數中JavaScript 物件解構的語法如果你想用這樣的物件參數定義函數:function moo({ a, b, c }) { // valid syntax! print(a); // prints 4 }...你沒有出現幻覺。這種語法稱為解構,可讓您將物件屬性直接解壓縮到函數...
    程式設計 發佈於2024-12-23
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段中:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內...
    程式設計 發佈於2024-12-23
  • Node.js如何有效防範SQL注入攻擊?
    Node.js如何有效防範SQL注入攻擊?
    防範 Node.js 中的 SQL 注入攻擊在 Web 開發中,防範 SQL 注入攻擊至關重要。 Node.js 開發人員傳統上在這方面面臨困境,因為廣泛使用的 node-mysql 模組缺乏與 PHP 的預處理語句相媲美的內建保護。 Node-JS 可以防止 SQL 注入攻擊嗎? 幸運的是,nod...
    程式設計 發佈於2024-12-23
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-12-23
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-12-23
  • PHP 中如何檢查複選框是否被選取?
    PHP 中如何檢查複選框是否被選取?
    在 PHP 中讀取複選框狀態使用 HTML 表單時,通常需要知道複選框是否已選取。在 PHP 中,有多種方法可以實現此功能。 使用isset()如果您的HTML 程式碼包含具有以下結構的複選框:<input type="checkbox" name="test&q...
    程式設計 發佈於2024-12-23
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    程式設計 發佈於2024-12-23
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決「一般錯誤:2006 MySQL 伺服器已消失」介紹:將資料插入MySQL 資料庫有時會導致錯誤「一般錯誤:2006 MySQL 伺服器已消失」。當與伺服器的連線遺失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變數之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2024-12-23
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-12-23
  • HTML 格式標籤
    HTML 格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2024-12-23
  • 為什麼我的 Angular HTTP POST 值在 PHP 中未定義,如何修復它?
    為什麼我的 Angular HTTP POST 值在 PHP 中未定義,如何修復它?
    Angular HTTP POST 到PHP:處理未定義的POST 值在AngularJS 中,對PHP 端點執行HTTP POST 請求有時會導致未定義的值伺服器端的POST 值。當預期資料格式與 Angular 應用程式傳送的實際資料不符時,就會發生這種情況。 要解決此問題,確保正確設定 Con...
    程式設計 發佈於2024-12-23
  • Go可以存取初始標準輸入流嗎?
    Go可以存取初始標準輸入流嗎?
    在 Go 中,您可以存取初始標準輸入嗎? 在 Go 中,使用 os.Stdin 從原始標準輸入讀取應該會產生所需的結果,如圖所示通過這個代碼片段:package main import "os" import "log" import "io&quo...
    程式設計 發佈於2024-12-23
  • 極簡密碼管理器桌面應用程式:進軍 Golang 的 Wails 框架(第 2 部分)
    極簡密碼管理器桌面應用程式:進軍 Golang 的 Wails 框架(第 2 部分)
    Hi again, coders! In the first part of this short series we saw the creation and operation of a desktop application to store and encrypt our passwords...
    程式設計 發佈於2024-12-23
  • ES6 React 元件:何時使用基於類別與函數式?
    ES6 React 元件:何時使用基於類別與函數式?
    在ES6 基於類別和函數式ES6 React 元件之間做出選擇使用React 時,開發人員面臨著使用ES6 基於類別的選擇組件或功能ES6 組件。了解每種類型的適當用例對於最佳應用程式開發至關重要。 函數式 ES6 元件:無狀態且簡單函數式元件是無狀態的,這表示它們不維護任何內部狀態。他們只是接收道...
    程式設計 發佈於2024-12-23

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3