【问题标题】:How to properly add Red Bean PHP into my project如何正确地将 Red Bean PHP 添加到我的项目中
【发布时间】:2018-07-02 19:31:25
【问题描述】:

我对 php 项目结构不是很有经验,我发现这个很棒且简单的教程:https://arjunphp.com/creating-restful-api-slim-framework/ 如何创建简单的 slim rest 应用程序。

这实际上是 PHP SLIM 的官方项目结构,我的问题是添加和使用 RedBean php ORM 的最佳和正确方法是什么,我不想在每条路线上都包含这样的东西

use \RedBeanPHP\R as R;
R::setup( 'mysql:host=localhost;dbname=mydatabase', 'myusername', 'mypassword)

然后

$book = R::load( 'book', $id );

然后将 ReadBean 用于我的数据库内容。我想知道如何将 RedBeans 包含到项目中,然后在我需要的地方使用它。这是我的项目结构https://github.com/iarjunphp/creating-restful-api-slim-framework3

注意:我通过作曲家添加了红豆,就像这里描述的那样 https://github.com/gabordemooij/redbean

【问题讨论】:

  • 如果您使用的是 Slim 骨架应用程序,那么 dependencies.php 可能是放置设置代码的好地方。
  • 你能不能写一些代码示例让我看看我应该怎么做?
  • 你已经写好了代码!第一个代码块,use 语句和R::setup 调用只需将其移至src/dependencies.php。您是否在使用您决定在 SO 上询问的代码时遇到任何问题?你的代码看起来不错。
  • 我更新了我的问题,如您所见,我将所有内容添加到 dependencies.php 但在其他文件中,例如 route.php 我不能使用红豆
  • 现在您只需将use \RedBeanPHP\R as R; 也添加到您的 routes.php 中。只有一次,然后你可以在你的路由回调中使用R::load

标签: php rest slim redbean slim-3


【解决方案1】:

您可以将用于设置库的代码放在将包含在每个请求中的任何文件中,因此假设您使用的是slim/slim-skeletonsrc/dependencies.php 可能是您想要添加这两行的地方:

use \RedBeanPHP\R as R;
R::setup( 'mysql:host=localhost;dbname=njux_db', 'root', '');

然后您可以在路由回调中使用 ReadBeans,但您还需要将 use \RedBeanPHP\R as R; 语句添加到您的 src/routes.php(或将使用此类的任何文件)

【讨论】:

  • 添加“使用 \RedBeanPHP\R 作为 R;”解决了我的问题。谢谢
【解决方案2】:

如果您使用像 这样的 MVC 框架(我推荐),这很容易。

您只需将您的rb.php 复制到application/third_party 文件夹。

然后创建一个名为application/libraries/rb.php 的文件,其中包含类似这样的代码。

<?php
class Rb { 
  function __construct()    {
    include(APPPATH.'/config/database.php');
    include(APPPATH.'/third_party/rb.php');
    $host = $db[$active_group]['hostname'];
    $user = $db[$active_group]['username'];
    $pass = $db[$active_group]['password'];
    $db   = $db[$active_group]['database'];
    R::setup("mysql:host=$host;dbname=$db", $user, $pass); 
   }
}
?>

...然后瞧。 RedBean 将从 CodeIgniter 的标准文件application/config/database.php 中读取您的数据库配置,您将能够在代码中的任何位置使用任何R:: 命令。没有包含,不需要额外的代码:-)

【讨论】:

    猜你喜欢
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 2021-11-14
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 2013-11-08
    相关资源
    最近更新 更多