加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel App的结构(API,后台,前台)

发布时间:2020-12-14 19:42:34 所属栏目:大数据 来源:网络整理
导读:我需要帮助我的Laravel应用程序的结构. 我想要的基本上是这个结构: API 管理员面板 公共网站 我开始构建这个文件夹结构,我认为这是非常正确的: app/ Http/Controllers/ API/ Back/ Front/resources/ assets/ js/ back/ front/ sass/ back/ front/ views/ b
我需要帮助我的Laravel应用程序的结构.

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

> API
>管理员面板
>公共网站

我开始构建这个文件夹结构,我认为这是非常正确的:

app/
   Http/Controllers/
       API/
       Back/
       Front/
resources/
   assets/
       js/
          back/
          front/
       sass/
          back/
          front/
   views/
       back/
       front/

问题

Elixir:在运行gulp后,如何避免后端的库或资产包含在前端代码中,反之亦然?

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

路由:如何将路由与Controller的命名空间进行匹配?我知道我们能做到

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' => 'AppHttpControllersBackEnd'],function ($router) {
        require app_path('Http/routes-backend.php');
    });

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

    // api namespace
    $router->group(['namespace' => 'AppHttpControllersAPI'],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');

最后是观点:

How to use namespaces in Laravel views ? For example,pages1 in views/front/ blade-extending page2 will automatically search page2 inside view/front directory.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读