”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在纯 PHP 项目中使用 Laravel Blade 模板引擎?

如何在纯 PHP 项目中使用 Laravel Blade 模板引擎?

发布于2024-07-31
浏览:930

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如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何在 Node.js 中将 JSON 文件读入服务器内存?
    如何在 Node.js 中将 JSON 文件读入服务器内存?
    在 Node.js 中将 JSON 文件读入服务器内存为了增强服务器端代码性能,您可能需要读取 JSON 对象从文件到内存以便快速访问。以下是在 Node.js 中实现此目的的方法:同步方法:对于同步文件读取,请利用 fs(文件系统)中的 readFileSync() 方法模块。此方法将文件内容作为...
    编程 发布于2024-11-03
  • 人工智能可以提供帮助
    人工智能可以提供帮助
    我刚刚意识到人工智能对开发人员有很大帮助。它不会很快接管我们的工作,因为它仍然很愚蠢,但是,如果你像我一样正在学习编程,可以用作一个很好的工具。 我要求 ChatGpt 为我准备 50 个项目来帮助我掌握 JavaScript,它带来了令人惊叹的项目,我相信当我完成这些项目时,这些项目将使我成为 J...
    编程 发布于2024-11-03
  • Shadcn UI 套件 - 管理仪表板和网站模板
    Shadcn UI 套件 - 管理仪表板和网站模板
    Shadcn UI 套件是预先设计的多功能仪表板、网站模板和组件的综合集合。它超越了 Shadcn 的标准产品,为那些不仅仅需要基础知识的人提供更先进的设计和功能。 独特的仪表板模板 Shadcn UI Kit 提供了各种精心制作的仪表板模板。目前,有 7 个仪表板模板可用,随着时间...
    编程 发布于2024-11-03
  • 如何使用正则表达式捕获多行文本块?
    如何使用正则表达式捕获多行文本块?
    匹配多行文本块的正则表达式匹配跨多行的文本可能会给正则表达式构造带来挑战。考虑以下示例文本:some Varying TEXT DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF [more of the above, ending with a newline] [yep, t...
    编程 发布于2024-11-03
  • 软件开发中结构良好的日志的力量
    软件开发中结构良好的日志的力量
    日志是了解应用程序底层发生的情况的关键。 简单地使用 console.log 打印所有值并不是最有效的日志记录方法。日志的用途不仅仅是显示数据,它们还可以帮助您诊断问题、跟踪系统行为以及了解与外部 API 或服务的交互。在您的应用程序在没有用户界面的情况下运行的情况下,例如在系统之间处理和传输数据的...
    编程 发布于2024-11-03
  • 如何在单个命令行命令中执行多行Python语句?
    如何在单个命令行命令中执行多行Python语句?
    在单个命令行命令中执行多行Python语句Python -c 选项允许单行循环执行,但在命令中导入模块可能会导致语法错误。要解决此问题,请考虑以下解决方案:使用 Echo 和管道:echo -e "import sys\nfor r in range(10): print 'rob'&qu...
    编程 发布于2024-11-03
  • 查找数组/列表中的重复元素
    查找数组/列表中的重复元素
    给定一个整数数组,找到所有重复的元素。 例子: 输入:[1,2,3,4,3,2,5] 输出:[2, 3] 暗示: 您可以使用 HashSet 来跟踪您已经看到的元素。如果某个元素已在集合中,则它是重复的。为了保留顺序,请使用 LinkedHashSet 来存储重复项。 使用 HashSet 的 Ja...
    编程 发布于2024-11-03
  • JavaScript 回调何时异步?
    JavaScript 回调何时异步?
    JavaScript 回调:是否异步?JavaScript 回调并非普遍异步。在某些场景下,例如您提供的 addOne 和 simpleMap 函数的示例,代码会同步运行。浏览器中的异步 JavaScript基于回调的 AJAX 函数jQuery 中通常是异步的,因为它们涉及 XHR (XMLHtt...
    编程 发布于2024-11-03
  • 以下是根据您提供的文章内容生成的英文问答类标题:

Why does `char` behave differently from integer types in template instantiation when comparing `char`, `signed char`, and `unsigned char`?
    以下是根据您提供的文章内容生成的英文问答类标题: Why does `char` behave differently from integer types in template instantiation when comparing `char`, `signed char`, and `unsigned char`?
    char、signed char 和 unsigned char 之间的行为差​​异下面的代码可以成功编译,但 char 的行为与整数类型不同。cout << getIsTrue< isX<int8>::ikIsX >() << endl; cou...
    编程 发布于2024-11-03
  • 如何在动态生成的下拉框中设置默认选择?
    如何在动态生成的下拉框中设置默认选择?
    确定下拉框中选定的项目使用 标签创建下拉列表时,您可以可能会遇到需要将特定选项设置为默认选择的情况。这在预填写表单或允许用户编辑其设置时特别有用。在您呈现的场景中, 标记是使用 PHP 动态生成的,并且您希望根据值存储在数据库中。实现此目的的方法如下:设置选定的属性要在下拉框中设置选定的项目,您需...
    编程 发布于2024-11-03
  • Tailwind CSS:自定义配置
    Tailwind CSS:自定义配置
    介绍 Tailwind CSS 是一种流行的开源 CSS 框架,近年来在 Web 开发人员中广受欢迎。它提供了一种独特的可定制方法来创建美观且现代的用户界面。 Tailwind CSS 区别于其他 CSS 框架的关键功能之一是它的可定制配置。在这篇文章中,我们将讨论 Tailwin...
    编程 发布于2024-11-03
  • 使用 jQuery
    使用 jQuery
    什么是 jQuery? jQuery 是一个快速的 Javascript 库,其功能齐全,旨在简化 HTML 文档遍历、操作、事件处理和动画等任务。 “少写多做” MDN 状态: jQuery使得编写多行代码和tsk变得更加简洁,甚至一行代码.. 使用 jQuery 处理事件 jQuery 的另一个...
    编程 发布于2024-11-03
  • CONCAT() 如何增强 MySQL 搜索功能以实现完整名称匹配?
    CONCAT() 如何增强 MySQL 搜索功能以实现完整名称匹配?
    WHERE 子句中使用 MySQL CONCAT() 函数进行高效搜索一种常见的数据库操作是跨多列搜索数据。然而,当分别使用名字和姓氏字段搜索姓名时,可能会存在一些限制,例如捕获不完整的匹配。为了克服这个问题,可以使用 MySQL CONCAT() 函数将列组合成一个用于搜索的单个字段。这提供了更加...
    编程 发布于2024-11-03
  • [每日套餐] ms
    [每日套餐] ms
    多发性硬化症 ms 将各种时间格式转换为毫秒,反之亦然。 /* time format to milliseconds */ ms('2 days') // 172800000 ms('1d') // 86400000 ms('10h') // 36000000...
    编程 发布于2024-11-03
  • 考虑将 WordPress 数据库从本地迁移到生产环境的注意事项
    考虑将 WordPress 数据库从本地迁移到生产环境的注意事项
    将数据库从本地环境迁移到生产服务器可能会让人感到不知所措,但如果采用正确的方法,则不必如此。在本指南中,我将介绍确保迁移过程顺利进行时需要考虑的关键点。 数据库迁移的关键注意事项 1。方案(协议) 示例:http 或 https 2.域名 本地示例:localhost、localho...
    编程 发布于2024-11-03

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3