如何正确地将Red Bean PHP添加到我的项目中

时间:2017-09-24 15:30:07

标签: php rest slim redbean slim-3

我对php项目结构不是很有经验,我找到了这个非常棒的简单教程:https://arjunphp.com/creating-restful-api-slim-framework/如何创建简单的瘦身休息应用程序。

这实际上是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

2 个答案:

答案 0 :(得分:3)

您可以将用于设置库的代码放在将要包含在每个请求中的任何文件中,因此假设您使用的是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(或任何将要使用此类的文件)

答案 1 :(得分:0)

如果您使用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); 
   }
}
?>

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