如何在外部应用程序中使用Laravel模型?

时间:2013-09-14 07:18:57

标签: php laravel laravel-4

我目前有两个应用程序在不同的虚拟主机下运行在同一台服务器上。第一个是Laravel 4应用程序,第二个是较旧的PHP项目,不使用框架,但遵循粗略的MVC模式。

我想找到一种与旧版PHP项目中的Laravel应用程序交互并使用其中一些模型的方法。

显然它不会像包含模型文件一样简单,因为它们会有各种依赖关系,所以在尝试这样做时我应该考虑一些通用的方法或模式吗?

2 个答案:

答案 0 :(得分:5)

您可以将illuminate/database添加到composer.json。这样你就可以使用laravel的数据库模块而无需安装整个框架。

阅读README.md中的说明以获取代码示例和更多详细信息。

答案 1 :(得分:2)

Can Vural 是对的,你可以使用这些组件,看看http://www.slimframework.com/news/slim-and-laravel-eloquent-orm

以下是主要摘录:

安装

首先,准备composer.json文件,以便下拉并安装Slim Framework和Eloquent ORM。 composer.json文件应如下所示:

{
    "require": {
        "slim/slim": "*",
        "illuminate/database": "*"
    }
}

完成后,运行composer install以安装应用程序依赖项。

BOOTSTRAP THE ELOQUENT ORM

接下来,我告诉Composer通过要求Composer的autoload.php文件自动加载应用程序的依赖项。

<?php
// Autoload our dependencies with Composer
require '../vendor/autoload.php';

现在我引导Eloquent ORM并将其传递给我的数据库连接信息(确保添加自己的用户名,密码和数据库名称)。

<?php
// Database information
$settings = array(
    'driver' => 'mysql',
    'host' => '127.0.0.1',
    'database' => '',
    'username' => '',
    'password' => '',
    'collation' => 'utf8_general_ci',
    'prefix' => ''
);

// Bootstrap Eloquent ORM
$connFactory = new \Illuminate\Database\Connectors\ConnectionFactory();
$conn = $connFactory->make($settings);
$resolver = new \Illuminate\Database\ConnectionResolver();
$resolver->addConnection('default', $conn);
$resolver->setDefaultConnection('default');
\Illuminate\Database\Eloquent\Model::setConnectionResolver($resolver);

现在Eloquent ORM被引导,我可以创建和使用扩展Eloquent抽象模型的模型。此示例假定您的数据库包含一个名为books的表,其中包含列标题和作者。

<?php
class Book extends \Illuminate\Database\Eloquent\Model
{

}

从上述网站中提取的摘录,如果它被删除,则信息仍然存在。

要从其他项目加载,您很可能必须使用自定义自动加载器自动加载模型。如果您在模型中有依赖关系,请包含Laravel框架中的自动加载器。