最新公告
  • 欢迎您光临三优资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 一、 当前 app\Custom 目录为二开目录,所有编程规范 基于 Laravel 框架, Guestbook 模块为开发demo 可作为参考,不实现任何功能。

    步骤1. 新建模块目录,目录名自定义

    exp: Guestbook

    步骤2. 新建模块路由文件, routes.php (文件名不可修改)

    • 2.1 新建路由,PC、mobile、api 路由 exp:
      <?php
      // Guestbook
      Route::group(['namespace' => 'Guestbook\Controllers', 'prefix' => 'gb'], function () {
      
       // pc
       Route::middleware('web')->group(function () {
           Route::get('/', 'IndexController@index')->name('guestbook.index');
           Route::get('add', 'IndexController@add')->name('guestbook.add');
           Route::post('save', 'IndexController@save')->name('guestbook.save');
       });
      
       // mobile
       Route::middleware('web')->prefix('mobile')->group(function () {
           Route::get('/', 'MobileController@index')->name('mobile.guestbook.index');
           Route::get('add', 'MobileController@add')->name('mobile.guestbook.add');
           Route::post('save', 'MobileController@save')->name('mobile.guestbook.save');
       });
      
       // api
       Route::middleware('api')->prefix('api')->group(function () {
           Route::get('/', 'ApiController@index')->name('api.guestbook.index');
           Route::get('add', 'ApiController@add')->name('api.guestbook.add');
           Route::post('save', 'ApiController@save')->name('api.guestbook.save');
       });
      });
    • 2.2 如果涉及修改现有路由,建议采用 新建一个 Common 模块,再在此模块下新建 routes.php 覆盖原路由。 exp: 原路由 admin/goods.php 需要将路由引入开发模块来
      <?php
      //  继承平台后台模块
      Route::group(['namespace' => 'Guestbook\Controllers\Common', 'prefix' => 'admin'], function () {
        Route::any('goods.php', 'GoodsController@index')->name('admin.goods.index');
      });
      

      此时访问 admin/goods.php 会进入 Common\GoodsController 中的index方法

    步骤3. 新建模块控制器目录 Controllers,然后新建控制器文件 如 IndexController.php

    所有开发前台控制器 需要继承 App\Custom\Controller, 后台控制器 需要继承 App\Custom\BaseAdminController, api 控制器 需要继承 App\Api\Foundation\Controllers\Controller

    exp:

    web前台:

    <?php
    
    namespace App\Custom\Guestbook\Controllers;
    
    use App\Custom\Controller as FrontController;
    
    class IndexController extends FrontController
    {
    
    }

    web后台:

    <?php
    
    namespace App\Custom\Guestbook\Controllers;
    
    use App\Custom\BaseAdminController as BaseController;
    
    class AdminController extends BaseController
    {
    
    }

    api:

    <?php
    
    namespace App\Custom\Guestbook\Controllers;
    
    use App\Api\Foundation\Controllers\Controller as FrontController;
    
    class ApiController extends FrontController
    {
    
    }

    步骤4. 新建模块模型目录 Models, 然后新建模型文件 模型文件命名以数据表名为依据, 如果是系统已有数据模型,可以继承已有模型。

    exp:

    <?php
    
    namespace App\Custom\Guestbook\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    /**
     * Class Guestbook
     * @package App\Custom\Guestbook\Models
     */
    class Guestbook extends Model
    {
        protected $table = 'guestbook';
    
        protected $primaryKey = 'id';
    
        public $timestamps = false;
    }

    步骤5. 新建模块模板目录 Views,Views下新建 .blade.php 模板文件,命名规则: app/Custom/模块名/Views/控制器名/控制器方法名.blade.php

    exp: app/Custom/Guestbook/Views/index/index.blade.php

    引入规则: 如果 resources/views/ 目录下 有 index.blade.php 则引入,否则在当前开发目录下查找引入

    // 引入 app/Custom/Guestbook/Views/index/index.blade.php
     @include('guestbook.views.index.index')
    
    // 引入同目录下nav模板文件
     @include('index.nav')

    步骤6. 新建模块 Services 服务目录, 新建Services服务文件, 命名规则:CustomService.php

    步骤7. 新建模块 Repositories 容器目录, 新建 Repositories 容器文件, 命名规则:CustomRepository.php (可选但推荐,对接 Models 依赖注入提供给 Services, 然后再到 Controllers )

    步骤8. 新建模块 database 目录,再新建两个子目录 migrations(数据迁移)和 seeds (数据填充), 主要用于此模块下 需要新建数据表,修改数据表,填充初始数据等操作。 详见 demo README.md

    步骤9. 开发场景:每个开发模块需要独立修改或添加现在的平台、商家后台菜单 以及菜单语言包、权限

    exp: 新建 menu.php、 lang.php、 priv.php、 priv_seller.php 四个文件,文件名固定

    • 9.1 添加菜单 menu.php
      // 子菜单
      $modules['26_custom']['01_custom'] = 'gb';
      
      // 左侧菜单分类
      $menu_top['custom_top'] = '26_custom';
    • 9.2 添加语言包 lang.php (平台与商家共用)
      $_LANG['26_custom'] = '开发菜单管理';
      $_LANG['01_custom'] = '开发子菜单';
    • 9.3 添加平台菜单权限 priv.php
      $purview['01_custom'] = 'custom';
    • 9.4 添加商家菜单权限 priv_seller.php
      $purview['01_custom'] = 'custom';

      步骤10. 前端样式 css、js、image 文件等 可以在 public 目录下 新建 custom/assets 目录,分别按模块建 对应的 css、js、image 目录 即可。

    exp: blade模板中使用

    {{ assets('custom/assets/guestbook/css/style.css') }}
    {{ assets('custom/assets/guestbook/js/index.js') }}
    {{ assets('custom/assets/guestbook/image/image.png') }}
    1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3165260857@qq.com
    2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
    3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!


    三优资源网 » 大商创X二次开发基本规范与流程

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    三优资源网
    一个高级程序员模板开发平台

    发表评论

    发表评论

    • 87会员总数(位)
    • 707资源总数(个)
    • 2本周发布(个)
    • 0 今日发布(个)
    • 126稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情