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

Pra*_*nna 5 php laravel

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

Ant*_*iro 5

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

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>
Run Code Online (Sandbox Code Playgroud)

和.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>
Run Code Online (Sandbox Code Playgroud)

然后,您可以拥有您的URL:

http://myapp
Run Code Online (Sandbox Code Playgroud)

http://myapp/subapp
Run Code Online (Sandbox Code Playgroud)

您甚至可以通过直接在Laravel代码中要求它们来使Laravel导入某些类:

require "../../../classes/Class.php";
Run Code Online (Sandbox Code Playgroud)

如果您的应用程序基于Laravel之类的Composer,则可以执行以下操作来自动加载类:

require "../../../vendor/autoload.php";
Run Code Online (Sandbox Code Playgroud)

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

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

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