我已经从github克隆了一个项目,现在我需要集成该项目,那么如何处理laravel框架,我是否需要创建一个新项目然后需要替换文件夹?或任何其他替代方案?因为我是这个框架的新手......帮助我.
这是一个广泛的问题,因为它取决于您的项目,在这里我们不知道。
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应用程序,这是从头开始创建一个应用程序。