Php Laravel应用程序的结构(API、后台、前台) 我需要帮助我的Laravel应用程序的结构。

Php Laravel应用程序的结构(API、后台、前台) 我需要帮助我的Laravel应用程序的结构。,php,laravel,laravel-5,gulp,Php,Laravel,Laravel 5,Gulp,我想要的基本上是这个结构: 原料药 管理面板 公共网站 我开始构建我认为非常正确的文件夹结构: app/ Http/Controllers/ API/ Back/ Front/ resources/ assets/ js/ back/ front/ sass/ back/ front/ views/ back/

我想要的基本上是这个结构:

  • 原料药
  • 管理面板
  • 公共网站
我开始构建我认为非常正确的文件夹结构:

app/
   Http/Controllers/
       API/
       Back/
       Front/
resources/
   assets/
       js/
          back/
          front/
       sass/
          back/
          front/
   views/
       back/
       front/
问题 Elixir:在运行
gulp
后,如何避免后端的库或资产包含在前端的代码中,反之亦然

视图:如何在Laravel视图中使用名称空间?例如,给定
views/front/
中的
pages1
,这是一些
pages2
。我希望Blade在编译时自动搜索
page2
内部
views/front
目录(而不是在
views/back
中)

路由:如何将路由与控制器的名称空间匹配?我知道我们能做到

Route::group(['domain' => 'example.com'], function() {});
而且

Route::group(['namespace' => 'Admin'], function() {});

但是如何组合它们呢?

对于Elixir,您可以使用
Gulp
模块,然后使用
mix
变量根据需要分离资产。在本例中,gulp将
script.js
script2.js
合并到名为
public/backend/final.js
的最终文件中

// backend assets
elixir(function(mix){
    mix.scripts([
        'js/back/script.js',
        'js/back/script2.js',
    ], 'public/backend/final.js', 'resources/assets');

    // here you can declare another group of assets using 'mix'

});
对于控制器命名空间,您可以编辑
app/Providers/RouteServiceProvider
文件,并将每个命名空间声明为:

public function map(Router $router)
{
    // backend namespace
    $router->group(['namespace' => 'App\Http\Controllers\BackEnd'], function ($router) {
        require app_path('Http/routes-backend.php');
    });

    // frontend namespace
    $router->group(['namespace' => 'App\Http\Controllers\FrontEnd'], function ($router) {
        require app_path('Http/routes-frontend.php');
    });

    // api namespace
    $router->group(['namespace' => 'App\Http\Controllers\API'], function ($router) {
        require app_path('Http/routes-api.php');
    });
}
现在,创建三个文件:

  • app/Http/routes backend.php>后端路由
  • app/Http/routes frontend.php>前端路由
  • app/Http/routes-api.php>api路由
例如,如果您需要声明一个新的后端控制器,请在
app/Http/routes backend.php
中详细说明:

Route::get('dashboard', 'DashboardController@show');
最后,查看

如何在Laravel视图中使用名称空间?例如,views/front/blade extending page2中的pages1将自动在view/front目录中搜索page2


这是不可能的,没有明确的参考就无法自动加载
page1
page2。使用
@extends
就足够了,我个人建议使用这种结构,因为您可以通过更多的控制来跟踪视图

视图和路线要求并不难实现,但我不能简单地理解Exilir要求,当我执行
gulp
命令时,我的后端和前端的脚本和样式被编译在两个文件中:
app.css
app.js
。我不希望我的后端脚本从前端可用。。。那么,对于视图和路线问题,你有什么建议吗?哦,我明白了,让我给你看看长生不老药:好的,太好了。它将与我自己的资产文件一起工作。但是鲍尔图书馆呢?一些仅从后端使用的库也将包含在前端中。如果知道我使用elixir wiredep来填充我的视图文件,还有其他解决方案吗?视图:我想我要在` config/view.php'中添加我的前视图和后视图目录