2

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

我想找到一种方法来与旧 PHP 项目中的 Laravel 应用程序中的一些模型进行交互和使用。

显然,它不会像仅包含模型文件那么简单,因为它们将具有各种依赖关系,那么在尝试执行此操作时是否应该查看任何通用方法或模式?

4

2 回答 2

5

您可以添加illuminate/database到您的composer.json. 这样你就可以在不安装整个框架的情况下使用 laravel 的数据库模块。

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

于 2013-09-14T07:43:49.997 回答
2

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

以下是主要摘录:

安装

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

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

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

引导雄辩的 ORM

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

<?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 的表,其中包含 title 和 author 列。

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

}

摘自上述网站,如果它被删除,信息仍然存在。

要从不同的项目加载,您很可能必须使用自定义自动加载器自动加载模型。或者,如果您在模型中有依赖项,则包括 Laravel 框架中的自动加载器。

于 2013-09-16T10:55:07.687 回答