有几种Web服务支持多个用Laravel编写的android应用程序。每个Web服务都包含多个模块。董事会决定将所有Web服务作为模块移至一个Laravel安装中。因此,webServer1
是一个独立的Web服务,必须成为集成到一个Laravel安装中的Web服务集合的模块。
由于某些Web服务足够大,可以容纳模块,并且它们是由nwidart
包实现的,因此我必须像在此新集成中那样实现它。因此,实现它的唯一方法是拥有子模块。
我想知道nwidart
支持这样的事情吗?以及我该怎么做?
除此之外,对这样的事情总的来说是个好主意吗?也许我可以劝说他的董事会:)
谢谢。
答案 0 :(得分:1)
您不需要任何第三方软件包就可以使Laravel应用程序模块化,而我认为这样做会引入不必要的依赖关系。 Composer允许您通过PSR4自动加载功能在特定名称空间下自动加载所需的任何文件夹。
有时,将一些代码放入不同的软件包中,并在需要时使用Composer将它们拉入也可能是有意义的。可以将任何VCS存储库用作软件包的源,因此,如有必要,您的模块可以位于私有存储库中。
通常,使代码更具模块化是一个好主意,因为它允许代码重用。例如,如果您构建了一些对其他项目有用的功能,则可以将其单独放置在一个程序包中,并使用Composer进行使用。
答案 1 :(得分:1)
例如,您可以使用作曲家来做
"psr-4": {
"App\\": "app/",
"SubModule\\": "SubModule/Path"
}
然后创建服务提供商 在您的模块内部,例如
<?php
namespace Your\Directory\Here;
use Illuminate\Support\ServiceProvider;
class CustomServiceProvider extends ServiceProvider
{
protected $defer = true;
/**
* Bootstrap the application events.
*
* @return void
*/
public function boot()
{
$this->loadViewsFrom(__DIR__ . '/resources/views', 'YOuCanNameHereAnyThing');
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->mergeConfigFrom(__DIR__ . '/config/config.php', 'config');
}
}