通过laravel框架整合现有项目?

时间:2014-04-25 12:50:52

标签: php laravel

我已经从github克隆了一个项目,现在我需要整合该项目,那么如何处理laravel框架,我是否需要创建一个新项目然后需要替换文件夹?或任何其他替代方案?因为我是这个框架的新手......帮助我。

1 个答案:

答案 0 :(得分:4)

这是一个广泛的问题,因为它取决于您的项目,我们在这里不知道。

Laravel不关心项目文件的位置,它允许您自由地为所有文件执行任何操作;人们对非Laravel项目与Laravel应用程序共享文件夹的大多数问题都与虚拟主机,.htaccess配置和/或他们尝试集成的应用程序有关。您必须非常了解这些Web服务器的工作原理如何使您的项目与Laravel应用程序很好地协同工作。

我的建议是:在项目中创建一个子文件夹,并在其上构建Laravel应用程序。配置一个虚拟主机别名,将Laravel应用程序的基本URL指向该文件夹,您应该很好。例如:

这将是myapp的子应用程序(Laravel)的别名:

Alias /subapp "/var/www/myapp/subapp/public"

<Directory /var/www/myapp/subapp>
  Options Indexes Includes FollowSymLinks MultiViews
  AllowOverride AuthConfig FileInfo
  Order allow,deny
  Allow from all
</Directory>

.htaccess:

<IfModule mod_rewrite.c>
    #Options -MultiViews
    RewriteEngine On
    RewriteBase /

    RewriteRule ^(.*)/$ /$1 [L,R=301]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /subapp/index.php?/$1 [L]
</IfModule>

然后您可以拥有自己的网址:

http://myapp

http://myapp/subapp

您甚至可以直接在Laravel代码中要求Laravel导入一些类:

require "../../../classes/Class.php";

如果您的应用程序基于像Laravel这样的Composer,您可以通过以下方式自动加载您的课程:

require "../../../vendor/autoload.php";

但是如果你需要Laravel和你的应用程序之间的真正集成,你有两个(或更多)选项:

1)在API(或在其中创建API)中转换其中一个,并在客户端中将另一个转换为此API。

2)创建一个全新的Laravel项目,并将您的遗留代码带入Laravel应用程序,这应该是从头开始创建应用程序。